Strona główna Polish Python Coders Group
   Strona główna   Pomoc Zaloguj się Rejestracja  
Witamy, Gość. Zaloguj się lub zarejestruj.
Czy dotarł do Ciebie email aktywacyjny?

Zaloguj się podając nazwę użytkownika, hasło i długość sesji

Aktualności:
Szukaj Szukaj
Strony: [1]   Do dołu
Drukuj
Wątek: Jak wykorzystac zwrocona wartosc True/False z funkcja if  (Przeczytany 1616 razy)
« : 22:09 24/04/17 »
Grzegorz899 Offline
Hello World!

Zobacz profil
*

Reputacja: 0
Wiadomości: 2


Witam serdecznie,

mam pytanie chodzi o prosty przykladowy kod ktory sprawdza czy liczba 5 zawiera sie w zbiorze s po czym zwraca wartosc True jesli sie zawiera False jesli nie :
Kod
items = [1,2,2,3,4,5,6]
print(items)
s = set(items)
print(s)
print(5 in s)

Jak moge wykorzystac ta wartosc True/False w funkcji if czyli jezeli wyskoczy wartosc true to program wyswietli jakis napis lub zrobi cokolwiek co bym potrzebowal i tak samo z false, Jakby miala wygladac dalsza czesc kodu aby to poprawnie dzialalo?

Z gory dziekuje za pomoc oraz pozdrawiam,
Grzegorz.
Zapisane
« Odpowiedz #1 : 22:58 24/04/17 »
sig Offline
Professional Python User

Zobacz profil
***

Reputacja: 84
Wiadomości: 388


Jak to wykorzystać? np tak

Kod
def sprawdz(x):
   items = [1, 2, 2, 3, 4, 5, 6]
   if x in items:
       print(x, "jest")
   else:
       print(x, "niema")
   return
 
 
sprawdz(5)
sprawdz(10)
 
Możesz też oczywiście wyświetlić True/False przez print(if 5 in items), ale zastosowania to raczej niema.
Zapisane
« Odpowiedz #2 : 02:41 25/04/17 »
Guaz Offline
Professional Python User

Zobacz profil
***

Reputacja: 41
Płeć: Mężczyzna
Wiadomości: 333


@sig
Gdy ta funkcja nic nie zwraca, to return chyba całkowicie zbędny, bo tak i tak wyjdzie z funkcji gdy skończą mu się instrukcje. To Python jest przecież, odpowiednikiem przykładowo w C byłaby deklaracja zwracanego "typu" void. Popraw mnie jeśli się mylę Uśmiech

Ale wracając do tematu, jeśli chcesz wykonać działanie ze względu na True lub False. Jeśli to będą powtarzalne działania, sposób sig'a jako ujęcie w funkcji jest bardzo dobry, o ile rozumiesz ich założenie. w przeciwnym wypadku, gdy działania nie będą jednakowe, tworzenie z jednej instrukcji definicji funkcji jest kiepskie.
Do jednoargumentowych funkcji na przyszłość polecam:
Kod
lambda_check_in = lambda your_value, your_list: your_value in your_list
items = [1, 2, 3, 4, 5, 6]
digit = 5
print(lambda_check_in(digit, items))
if lambda_check_in(digit, items):
 print(digit, "jest w zbiorze", items)
else:
 print(digit, "nie ma w zbiorze", items)
Ale krótszym i zdecydowanie preferowanym sposobem do prostych operacji na konkretnym przykładzie jest poniższy, także prezentujący jak wykorzystać zwracaną wartość true lub false.
Kod
if digit in items:
 print(digit, "jest w zbiorze", items)
else:
 print(digit, "nie ma w zbiorze", items)
Dzieje się tak ponieważ gdy wyrażenie logiczne ci zwraca True, to coś się wykona. Przykładowo spróbuj sobie przetestować co zwrócą ci wyrażenia typu:
2 == 2 ; 3 == 1 ; 2+1 == 3; "a" in "abc"; 2 in "231" (tu wyskoczy Error); True == False ; None == False

A następnie przed nimi daj sobie if:
np. if 2 == 2:
A po nich jakiś else, nawet gdy funkcja zwróci False.
Podepnij sobie do tego odpowiednie komunikaty żebyś wiedział co wyszło, bo sama instrukcja if nie printuje w terminalu co rozstrzygnęła. To drobne ćwiczenie może ci zobrazuje jak można działać na instrukcji warunkowej (czyli if'ie który wykonuje się dla True, a pomija krok dla Else. Zaś dla False przechodzi do kolenej instrukcji [elif] a w ostateczności jeśli podana jest taka instrukcja to do else która uwzględnia każdy przypadek w którym nie jest spełniony if oraz elify.
Zapisane

Python 3.5.2 / Mint
« Odpowiedz #3 : 18:38 25/04/17 »
Grzegorz899 Offline
Hello World!

Zobacz profil
*

Reputacja: 0
Wiadomości: 2


Dziekuje za szybka i profesjonalna odpowiedz obu Panom.

Pozdrawiam serdecznie,
Grzegorz.
Zapisane
Strony: [1]   Do góry
Drukuj
Skocz do:  

© 2007 - 2018 Polish Python Coders Group
Powered by SMF 1.1.21 | SMF © 2006-2009, Simple Machines | Theme by PixelSlot