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:
Kopiuj
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ść:
Kopiuj
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:
Kopiuj
d = {}
d[1,2,3] = 1
d[1,1,1] = 2
print(d)
lista =1,1,1
print(d[lista])