Rozumiem...czyli w programowanie (False and True) daje False ale tylko jeśli te warunki są razem w nawiasie tak? To tak jakby pod False podstawić - a pod True + i - z + dają -.
Nie, Python widzi pierwszy False
, potem and
i ignoruje drugi parametr bo cokolwiek by tam nie było False
/True
wynik dla and
daje zawsze False
. Z plusem i minusem trochę nietrafione bo np. w przypadku mnożenia trzeba sprawdzić zawsze znak drugiego parametru bo ma wpływ na znak całości. To jest jak np. z pierwiastkowaniem: sqrt(a) + sqrt(b)
gdy a
jest ujemne nie obliczamy kolejnego pierwiastka tylko rzucamy wyjątek. Pierwiastka po plusie nie obliczamy bo już nie ma takiej potrzeby.
False
/True
and
False
/True
- wystarczy tylko stwierdzić, że pierwszy człon jest False wtedy całość jest False
obojętne co jest na drugie pozycji
False
/True
and
False
/True
and
False
/True
- j.w.
False
/True
and
False
/True
or
False
/True
- tutaj or
powoduje, że trzeci człon może mieć wpływ na całkowity wynik
Chodzi mi o pewien typ błędów, weźmy jeszcze taki przykład:
for i in range(10):
warunek1 = check(...)
if (warunek1 and get_bool_from_file(file)):
pass
W pętli 10 razy jest testowany warunek w if-ie. Jeżeli np. wydawało by ci się, że get_bool_from_file
odczyta 10 razy coś z pliku to możesz się zdziwić, bo jak python stwierdzi że warunek1
jest fałszem to tej funkcji nie wywoła. Takie "krótkozwarciowe" obliczanie warunków czasami może przysporzyć sporo kłopotów, jak się jest początkującym. Trzeba wtedy zmienić kolejność:
if (get_bool_from_file(file) and warunek1)
niby proste a jednak kolejność ma czasami znaczenie, nawiasy też czasami na nie wpływają przy bardziej skomplikowanych warunkach. Bez testowania się nie obędzie.
Teraz zaczynam Tuple(krotki) cokolwiek to jest. Zastanawiam się czy nie kupić jakiegoś szkolenia z podstaw Linuxa, bo skoro mam swój ambitny plan stworzenia MMORPG to znajomość linuxa jako serwera to podstawa pewnie. 2 dni w tygodniu poświęciłbym na naukę Linuxa a resztę na naukę programowania.
Krotki to w skrócie niemutowalne listy, do których po stworzeniu nie można dodawać ani odejmować elementów. Co to daje? np. może taka krotka posłużyć jako klucz w słowniku:
d = {}
d[1,2,3] = 1
d[1,1,1] = 2
print(d)
lista =1,1,1
print(d[lista])