Very often when you write code, you want to perform different actions for different decisions. In programming this is sometimes called variation, but more often decision making, because it allows the execution of various code fragments only when a certain condition is met (when the user makes a certain decision).
We will use conditional instructions to perform decision making.
The simplest example of decision making is the check box in the program: "Continue? y / n". The program only continues when the user presses the letter y.
It is difficult to imagine modern programming without conditional instructions, which allow the user to make choice, and thus give him a real possibility of influencing the "program flow" (control flow). So… let's learn conditional statements!
Introduction
If you've been following earlier passages of our series, you already know how to write a program that makes a short dialogue with the user: the program will ask the user for a name, remember it and reply with the greeting: Have a nice day, adding a name it remembered.
Let's try to expand our program to further ask the user for age. And let's set ourselves an ambitious task. We vary the response of the program depending on the given age.
Say you are building a program that "gives a prize" (whatever that prize might be) that is different for the older person and different for the younger person. If the user is 16 years old or older, the program generates the message: "You are receiving the X award". Otherwise (if the user is under 16), the program generates the message: "You are receiving the Y award".
As you can see, we use the word if. The word if is a keyword in the Python programming language. In other words, a word that belongs to the syntax of the language and allows you to build the command structure. With the if keyword, we create a conditional statement in Python.
Conditional statement — this is the topic of today's passage of our series. The conditional statement really isn't anything difficult. You will find out about it in a moment. In the future, you will use it hundreds and thousands of times without any problem.
The if — else conditional
The if—else conditional consists of a condition and a command that is executed when the condition fulfills, and a second command that is executed when the condition fails.
Conditions
A condition that "fulfills" is said to have a value: True.
A condition that "fails" is said to have a value: False.
We usually build conditions using equal (==), greater (>), less (<) operators. Python also defines not equal (! =), no-less (> =), and no-greater (<=) operators.
An example of checking the truthfulness of the condition (based on a short program with the input command):
print ('Enter number a:')
a=input()
print ('Enter number b:')
b=input()
Let's evaluate the truthfulness of the condition a>b
Let's be honest: it is not complicated at all, right?
Commands
Let's move on to the commands that are executed after the program checks the condition.
We have nothing special to say about these commands…
…They can be any command you wish, be it actions (e.g. order to print a message on the screen) or calculations.
Conditional statement (i.e. condition + commands)
Now comes the time to combine the condition with the commands and show what the conditional statement looks like:
if condition is True:
statement 1
else:
statement 2
Translating into human language we read this: if condition is True, execute statement 1, otherwise, execute statement 2.
What should you pay attention to?
Note the obligatory colon at the end of the first line (the one with the condition) and after the else. Also pay attention to the so-called indentation. Commands following the colon are indented four spaces from the preceding line.
Indentation is a very important part of Python syntax. They define the so-called code blocks. More about this in a moment.
Let's write the first program using the conditional statement:
print('Enter number a:')
a=input()
print ('Enter number b:')
b=input()
if a>b:
print ('The number a is greater.')
else:
print ('The number b is greater or the numbers are equal.')
Conditional instructions are not difficult, the above program is almost intuitive to read, right? The program asks for two numbers: a and b — and remembers their value. Then we tell the program: if you find that the number a is greater than b, write "The number a is greater", otherwise (else) write "The number b is greater or the numbers are equal".
OK. Maybe it's time to try to write something yourself? How about a little training?
Exercise 1. Try to write a short script that asks the user to enter two numbers (a and b). When these numbers are equal, the program will display the message: "The numbers are equal". Otherwise, the program will display the message: "The numbers are not equal".
Exercise 2. Write a short script asking the user to enter a color. The preferred color is white. Therefore, when the user enters the name "white", your program has to write "Great, you guessed it!" Otherwise, the program has to write: "Not that color."
You will find the answers to these two exercises at the end of the article.
Additional note:
The number of statements you put after a condition (after the line: "if condition …") is by no means limited to one. If your program requires it, you can indicate two or three (or more) commands to be executed when the condition is true. The same goes for commands after the word else. For example, if you want to give four statements after "if" and three statements after the else, the schema of the conditional statement would look like this:
if condition is True:
statement 1
statement 2
statement 3
statement 4
else:
statement 5
statement 6
statement 7
We are expanding our program from previous passages
Let us remind you that we want to expand our program from previous episodes, which asked the user for a name and then greeted him with that name. Now the program will additionally ask the user for age and will react differently depending on the answer given:
• if the user specifies the age of 16+, the program will generate the message: "You are receiving the X award".
• otherwise, the program will generate the message: "You are receiving the Y award".
In order to obtain the answer in two variants, we will of course use the if — else statement:
print ('Enter your name, please:')
a=input ()
print ('How old are you?')
age=int(input())
if age>=16:
print ('You are receiving the X award.')
else:
print ('You are receiving the Y award.')
print ('Have a nice day,' + a + '.')
Let's take a look at the script above. The first two lines ask for the first name and remember the user's answer. The answer is stored in the variable a. The next two lines are a request for age and (as before) — remembering the user's answer. The answer is stored in the age variable. Since we want the age to be stored as a number, we have wrapped the function input() with the function int(), which converts the text to a number (see Appendix to Passage 2).
Next we implement the if — else conditional statement. The commands after "if" and after "else" are indented by four spaces. The last line of code refers to the variable a (which holds the name) and prints the Have a nice day [name] greeting.
Is the else necessary?
You may be wondering if the "second part of the conditional", that is, the piece of code that starts with "else", is always — in any case — needed. After all, we can wish that the program would react only to the user indicating the age of 16+ (awarding a prize), and otherwise it would simply not award a prize — in short, it would not do anything. In this case, we can use the shortened version of the if statement (without the else part).
print ('Enter your name, please:')
a=input()
print ('How old are you?')
age=int(input())
if age>=16:
print ('You are getting a prize.')
print ('Have a nice day,' + a + '.')
If the user enters age 16+, the program will execute the snippet following if (a line indented by four spaces). Otherwise, the program will skip this piece of code.
Indentation
We promised to say a few more words about indentation in Python. Again, indenting is a very important part of Python syntax as it allows you to "overmark" blocks of code. Each programming language must contain (within its syntax) ways to define blocks of code. A code block is a set of commands that are logically or organizationally related to each other. The conditional if statement provides us with the first example to illustrate blocks of code.
Example
print ('Enter number a: ')
a=input()
print ('Enter number b: ')
b=input ()
if a> b:
print ('The number a is greater.')
print ('The number a is really bigger.')
print ('The number a is undoubtedly greater.')
print ('It's nice working with you.')
As you can see, after the condition checking "whether a is greater than b", we gave three commands, differing in the content of the printed message. There is also a fourth command ("It's nice working with you"), but it is not indented by four spaces. What does it all mean? All in all, even without knowing Python's syntax, it's easy to guess. Lines that follow the line with "condition" and are indented by four spaces are subject to this condition. To be more precise: they are only executed when the condition is True. That's why we call them "code block"[1].
The end of the block is marked out by the last indented line. The first unintended line means that we are already back in the main code (i.e. outside the conditional block), so the commands are executed regardless of whether the condition is met or not.
Try it out with the script example above (run the code as a Python file). If you specify number a greater than number b (e.g. 4 and 3), the program will generate the output in the form of four lines:
The number a is greater.
The number a is really bigger.
The number a is undoubtedly greater.
It's nice working with you.
However, when you enter number a less than number b (such as 3 and 4), only one line will be printed:
It's nice working with you.
The command: print ('It's nice working with you.') – as "unintended" – is independent of the given condition and is executed in both variants.
The use of indentation to mark blocks of code is a distinctive feature of Python. And proof of the genius of its creators. Indents provide great readability and clarity of the code. Most programming languages such as C, C ++, and Java use curly braces {} to define a block of code. And parentheses that are opened in different places and then closed in bulk in one (or vice versa) are what novice programmers hate the most.
Believe us. Guido van Rossum, inventing indentations, saved you from the "bracket thriller".
Finally something special "for dessert"
We decided to throw in a little topic additionally. In programming languages, the goal is to make the syntax as compact as possible. For this reason, various abbreviations are allowed. Experienced programmers praise them, beginners rather swear (until they get used to them).
For example, it is well established to replace i=i+1 with i+=1
Typically, you will often meet abbreviations that allow you to replace two lines of code with one line. We'll give you one of these abbreviations right now. As you may have noticed, input() statement is — almost always — preceded by a print() statement. Why? If you don't tell the user what to put into the program, how would they know? You have to indicate what the program is waiting for, whether to enter your name, date, or deposit amount, or any other data. Therefore, print and input must form an inseparable pair.
The Python developers thought: if so, why not write the message, what we ask the user, right in the input() command? print() will then become redundant and we will save one line of code.
Indeed, Python does allow this. In the input() command, you can put the so-called prompt, i.e. an incentive that tells the user what data we are waiting for.
Full form (traditional): print('Enter your name:') input() | Short form: input('Enter your name:') |
Instead of a summary
In this passage, we discussed the if statement. Instead of a summary, we thought we would present a short post on the if statement by a 13-year-old Python enthusiast. In terms of simplicity and brevity, the post is unbeatable. If you had any doubts about the if statements, they will disappear after reading the post. Enjoy reading …
Let's get to know the if statement
We will use the "if" statement very often. We use the keyword if in it. The if keyword in Python means exactly the same as in ordinary "human" language, and means that if something is true, the program must execute the command, but if it is not true, it must not execute the command.
x = input ('Did you buy me milk as I asked? yes / no')
if x == 'yes':
print ('Thanks') # Don't forget to indent
If we run this file, the output will look like this:
Did you buy me milk as I asked? yes / no
We answer yes or no
If we enter yes, the program will answer like this: Thanks
What if we type no? The program's response will be:
*emptiness*
So now we're going to improve our program to react to the second answer too!
Else
The else keyword is supposed to perform the second option. As we said a moment ago, if we type no after running the script, the program won't respond, so now we'll improve it.
x = input ('Did you buy me milk as I asked? yes / no')
if x == 'yes': # don't forget the colon
print ('Thanks') # don't forget to indent
else:
print ('Why?') # We also indent
If we run this file, the output will look like this:
Did you buy me milk as I asked? yes / no
We answer yes or no
If we enter yes, the program will answer like this: Thanks
And if we enter no, the program will respond as follows: Why?
Thanks for reading the article and best regards.
Answers for self-exercises
Exercise 1
print('Enter first number: ')
a=input()
print('Enter second number: ')
b=input()
if a==b:
print('The numbers are equal.')
else:
print('The numbers are not equal.')
Exercise 2
print('Specify a colour, please: ')
x=input()
if x=='white':
print('Great, you guessed it!')
else:
print('This is not the color.')
[1] these commands are organizationally related, they are linked by dependence on one and the same condition
Odcinek‑4
Odcinek 4: Instrukcje warunkowe
Witajcie.
Dziś o wariantowaniu w programowaniu. Wariantowanie nazywa się także "decision making", gdyż umożliwia realizację różnych fragmentów kodu tylko wówczas, gdy zostanie spełniony określony warunek (gdy użytkownik podejmie określoną decyzję). Najprostszy przykład to pole wyboru w programie: "Czy kontynuować? T/N". Program kontynuuje działanie tylko wówczas, jeśli użytkownik wciśnie literkę T.
Trudno sobie wyobrazić nowoczesne programowanie bez instrukcji warunkowych, które stwarzają możliwość wyboru po stronie użytkownika, a tym samym dają mu realną możliwość oddziaływania na "przepływ programu" (control flow)[1]. Zatem… uczymy się instrukcji warunkowych!
Wstęp
Jeśli śledzicie wcześniejsze odcinki naszego cyklu, wiecie już, jak napisać program, który przeprowadzi krótki dialog z użytkownikiem: poprosi go o podanie imienia, zapamięta je i odpowie pozdrowieniem: Miłego dnia, dodając zapamiętane imię.
Spróbujmy rozbudować nasz program, aby dalej zapytał użytkownika o wiek. I postawmy sobie ambitne zadanie. Zróżnicujemy reakcję programu zależnie od podanego wieku.
Powiedzmy, że budujesz program, który przyznaje nagrodę, inną dla osoby starszej, inną dla osoby młodszej.
Jeżeli użytkownik ma 16 lat lub więcej, program generuje komunikat: "Otrzymujesz nagrodę X".
W przeciwnym przypadku (jeżeli użytkownik ma mniej niż 16 lat), program generuje komunikat: "Otrzymujesz nagrodę Y".
Jak widzisz, posługujemy się słowem jeżeli. Słowo jeżeli (if) to słowo kluczowe w języku programowania Python. Inaczej mówiąc, słowo, które należy do składni języka i pozwala budować strukturę poleceń. Dzięki słowu kluczowemu if utworzymy w Pythonie instrukcję warunkową (conditional statement).
Instrukcja warunkowa – to właśnie jest temat dzisiejszego odcinka naszego cyklu. Instrukcja warunkowa naprawdę nie jest niczym trudnym. Przekonasz się o tym już za chwilę. W przyszłości będziesz z niej korzystał setki i tysiące razy bez najmniejszego problemu.
Instrukcja warunkowa if—else
Instrukcja warunkowa if—else składa się z warunku i polecenia, które jest wykonywane gdy warunek spełnia się, oraz drugiego polecenia, które jest wykonywane gdy warunek nie spełnia się.
Warunki
- O warunku, który "spełnia się" mówimy, że posiada wartość: Prawda (True).
- O warunku, który "nie spełnia się" mówimy, że posiada wartość: Fałsz (False).
Warunki budujemy zazwyczaj przy pomocy operatorów równy (==), większy (>), mniejszy (<).
Python definiuje także operatory różny (!=), nie-mniejszy (>=) oraz nie-większy (<=).
Przykład sprawdzania prawdziwości warunku (na podstawie krótkiego programu z poleceniem input):
print('Podaj liczbę a: ')
a=input()
print('Podaj liczbę b: ')
b=input()
Oceńmy prawdziwość warunku a>b
Mówiąc szczerze: łatwizna, prawda?
Polecenia
Przejdźmy do poleceń, które są wykonywane po sprawdzeniu przez program warunku.
Nie mamy nic specjalnego do powiedzenia na temat tych poleceń
Mogą to być dowolne polecenia jakie sobie życzysz, czy to akcje (np. rozkaz wydrukowania komunikatu na ekranie), czy obliczenia.
Instrukcja warunkowa (czyli warunek + polecenia)
Czas połączyć warunek z poleceniami i pokazać, jak wygląda instrukcja warunkowa:
if condition is True:
statement 1
else:
statement 2
Posłużyliśmy się schematem w języku angielskim, gdyż jest on najbliższy składni Pythona. Przekładając na ludzki język (human language) czytamy to: jeżeli condition ma wartość True, wykonaj statement 1, w przeciwnym razie wykonaj statement 2
Condition to warunek, którego prawdziwość jest sprawdzana, statement 1 i statement 2 to polecenia.
Na co należy zwrócić uwagę?
Zwróć uwagę na obligatoryjny dwukropek na końcu pierwszej linii (tej z warunkiem) oraz po else.
Zwróć także uwagę na tzw. wcięcia (indentation). Polecenia, użyte po dwukropku, są wcięte o cztery spacje w stosunku do linii poprzedzającej. Wcięcia to bardzo ważny element składni Pythona. Wyznaczają one tzw. bloki kodu. Szerzej o tym za moment.
Napiszmy pierwszy program z użyciem instrukcji warunkowej:
print('Podaj liczbę a: ')
a=input()
print('Podaj liczbę b: ')
b=input()
if a>b:
print('Liczba a jest większa')
else:
print('Liczba b jest większa albo liczby są równe')
Instrukcje warunkowe nie są trudne, powyższy program czyta się niemal intuicyjnie, prawda?
Program prosi o podanie dwóch liczb: a i b – i zapamiętuje ich wartość. Następnie nakazujemy programowi: jeśli stwierdzisz (if), że liczba a jest większa od b, napisz: "Liczba a jest większa", w przeciwnym razie (else) napisz "Liczba b jest większa albo liczby są równe".
OK. Może czas spróbować napisać coś samodzielnie? Co powiesz na mały trening?
Ćwiczenie 1. Spróbuj samodzielnie napisać krótki programik, który prosi użytkownika o podanie dwóch liczb (a i b). Gdy liczby te są równe, program będzie wyświetlał komunikat: "Liczby są równe". W przeciwnym razie program wyświetli komunikat: "Liczby nie są równe".
Ćwiczenie 2. Napisz krótki programik, który prosi użytkownika o podanie koloru. Premiowanym kolorem jest biały. Dlatego gdy użytkownik poda nazwę "biały", twój program ma w odpowiedzi napisać "Świetnie, zgadłeś!". W przeciwnym razie program ma napisać: "Nie ten kolor."
Odpowiedzi znajdziesz na końcu artykułu.
Dodatkowa uwaga:
Ilość poleceń, jakie umieszczasz po warunku (if condition…) nie jest bynajmniej ograniczona do jednego. Jeśli tego wymaga twój program, możesz z powodzeniem wskazać dwa lub trzy (lub więcej) poleceń wykonywanych, gdy warunek zostanie spełniony. To samo dotyczy poleceń po słowie else. Przykładowo gdy chcesz dać cztery polecenia po "if" i trzy polecenia po else, schemat instrukcji warunkowej wyglądał będzie tak:
if condition is True:
statement 1
statement 2
statement 3
statement 4
else:
statement 5
statement 6
statement 7
Rozbudowujemy nasz program z poprzednich odcinków
Przypomnijmy, że nasz program z poprzednich odcinków, który prosił użytkownika o podanie imienia, a następnie pozdrawiał go tym imieniem, chcemy obecnie rozbudować. Program prosił będzie użytkownika o podanie wieku i reagował w różny sposób, zależnie od udzielonej odpowiedzi:
- jeżeli użytkownik poda wiek 16+, program wygeneruje komunikat: "Otrzymujesz nagrodę X".
- w przeciwnym razie program wygeneruje komunikat: " Otrzymujesz nagrodę Y".
W celu uzyskania odpowiedzi w dwóch wariantach, posłużymy się oczywiście instrukcją if—else
print('Podaj twoje imię, proszę:')
a = input()
print('Ile masz lat?')
age = int(input())
if age>=16:
print('Otrzymujesz nagrodę X.')
else:
print('Otrzymujesz nagrodę Y.')
print('Miłego dnia, '+a+'.')
Przyjrzyjmy się powyższemu skryptowi. Pierwsze dwie linie to prośba o podanie imienia oraz zapamiętanie odpowiedzi użytkownika. Odpowiedź zostaje zapamiętana w zmiennej a.
Kolejne dwie linie to prośba o podanie wieku i (jak poprzednio) – zapamiętanie odpowiedzi użytkownika. Odpowiedź zostaje zapamiętana w zmiennej age. Ponieważ chcemy, aby wiek zapamiętany był jako liczba, funkcję input() opakowaliśmy dodatkowo funkcją int(), która konwertuje tekst na liczbę (porównaj Dodatek do odcinka 2).
Dalej wdrażamy instrukcję warunkową if—else. Polecenia po "if" i po "else" wcięte są o cztery spacje[2].
Ostatnia linia kodu odwołuje się do zmiennej a i drukuje pozdrowienie Miłego dnia [imię].
Czy else jest koniecznie potrzebne?
Być może zastanawiasz się, czy "druga część instrukcji warunkowej", czyli fragment kodu zaczynający się od "else", jest zawsze – w każdej sytuacji – potrzebny.
Możemy przecież życzyć sobie, aby program reagował jedynie na podanie przez użytkownika wieku 16+ (przyznawał nagrodę), zaś w przeciwnej sytuacji po prostu nie przyznawał nagrody – czyli, mówiąc krótko: nie robił nic.
W takiej sytuacji możemy posługiwać się skróconą wersją instrukcji if (bez części związanej z else).
print('Podaj twoje imię, proszę:')
a = input()
print('Ile masz lat?')
age = int(input())
if age>=16:
print('Otrzymujesz nagrodę.')
print('Miłego dnia, '+a+'.')
Jeżeli użytkownik wpisze wiek 16+, program wykona fragment kodu następujący po if (linia wcięta o cztery spacje). W przeciwnym razie program pominie ten fragment kodu.
Indentation czyli wcięcia
Obiecaliśmy powiedzieć kilka słów więcej na temat wcięć (indentation) w Pythonie.
Powtórzmy: wcięcia to bardzo ważny element składni Pythona, gdyż pozwalają "wyodrębnić" bloki kodu. Każdy język programowania musi zawierać (w ramach swojej składni) sposoby na definiowanie bloków kodu. Blok kodu to zestaw poleceń logicznie lub organizacyjnie ze sobą powiązanych.
Instrukcja warunkowa if dostarcza nam pierwszego przykładu na zilustrowanie bloków kodu.
Przykład
print('Podaj liczbę a: ')
a=input()
print('Podaj liczbę b: ')
b=input()
if a>b:
print('Liczba a jest większa.')
print('Liczba a jest naprawdę większa.')
print('Liczba a jest bez wątpienia większa.')
print('Miło się z Tobą pracuje.')
Jak widać, po warunku sprawdzającym "czy a jest większe od b", daliśmy trzy polecenia, różniące się treścią drukowanego komunikatu. Jest także czwarte polecenie (o treści: "Miło się z Tobą pracuje"), ale nie jest ono wcięte o cztery spacje.
Co to wszystko oznacza? W sumie, nawet nie znając składni Pythona, można łatwo się domyśleć. Wiersze, które następują po wierszu z "warunkiem" (condition) i są wcięte o cztery spacje, są niejako podporządkowane temu warunkowi. Wyrażając się precyzyjniej: są wykonywane tylko wówczas, gdy warunek przyjmuje wartość True. Dlatego nazywamy je "blokiem kodu"[3].
Koniec bloku kodu wyznacza ostatnia wcięta linia. Pierwsza – z następujących dalej – niewcięta linia, oznacza, że jesteśmy już z powrotem w kodzie głównym (czyli poza blokiem warunkowym), a zatem polecenia wykonywane są bez względu na spełnienie czy niespełnienie warunku.
Wypróbuj to na podanym wyżej przykładzie skryptu (uruchom kod jako plik Pythona). Jeśli podasz liczbę a większą od liczby b (np. 4 i 3), program wygeneruje output w postaci czterech linii:
Liczba a jest większa.
Liczba a jest naprawdę większa.
Liczba a jest bez wątpienia większa.
Miło się z Tobą pracuje.
Gdy jednak podasz liczbę a mniejszą od b (np. 3 i 4), wydrukowana zostanie tylko jedna linia.
Miło się z Tobą pracuje.
Polecenie: print('Miło się z Tobą pracuje.') jako "niewcięte" jest niezależne od podanego warunku i wykonywane w obydwu wariantach.
Stosowanie wcięć dla oznaczenia bloków kodu to charakterystyczny wyróżnik języka Python.
I dowód geniuszu jego twórców. Wcięcia dają bowiem ogromną czytelność i przejrzystość kodu.
Większość języków programowania, takich jak C, C++ i Java, używa nawiasów klamrowych {} do definiowania bloku kodu. A nawiasy, otwierane w różnych miejscach a potem hurtowo zamykane w jednym (albo na odwrót) są tym, czego początkujący programiści nienawidzą najbardziej. Uwierz nam. Guido van Rossum, wymyślając wcięcia, uratował Cię od "nawiasowego thrillera".
Jeszcze coś specjalnego "na deser"
Postanowiliśmy – niejako dodatkowo – wrzucić pewien mały temacik. W językach programowania dąży się do tego, aby składnia była możliwie zwarta, krótka i nierozwlekła. Z tego powodu dopuszcza się rozmaite skróty. Wytrawni programiści chwalą je sobie, początkujący raczej przeklinają (dopóki się z nimi nie oswoją).
Przykładowo, dobrze ugruntowane jest zastępowanie zapisu i=i+1 zapisem i+=1
Często spotyka się skróty, pozwalające zastąpić dwie linie kodu jedną linią. Jeden z takich skrótów podamy w tej chwili. Zauważyłeś pewnie, że polecenie input() jest – niemal zawsze – poprzedzane poleceniem print(). Dlaczego? Jeśli nie napiszesz użytkownikowi, co ma wprowadzić do programu, skąd miałby to wiedzieć? Musisz zasygnalizować, na co czeka program, czy na podanie imienia, czy daty, czy kwoty wpłaty, czy jakichkolwiek innych danych. Dlatego print i input muszą tworzyć nierozłączną parkę.
Twórcy Pythona pomyśleli sobie: skoro tak, czemu nie zapisać komunikatu, o co prosimy użytkownika, od razu w poleceniu input()? print() stanie się wówczas zbędne i zaoszczędzimy jedną linijkę kodu.
I rzeczywiście, Python dopuszcza taką możliwość. W poleceniu input() umieścić możesz tzw. prompt, czyli zachętę, komunikującą użytkownikowi, na podanie jakich danych czekamy.
Pełna forma (tradycyjna): print('Podaj twoje imię: ') input() | Forma skrócona: input('Podaj twoje imię: ') |
Zamiast podsumowania
W niniejszym odcinku zapoznaliśmy się z instrukcją warunkową if. Pomyśleliśmy, że zamiast podsumowania, zaprezentujemy krótki post, omawiający instrukcję warunkową if, napisany przez trzynastoletniego miłośnika Pythona. Pod względem prostoty i zwięzłości, post jest bezkonkurencyjny. Jeśli miałeś jeszcze jakieś wątpliwości w zakresie instrukcji if, po jego przeczytaniu na pewno znikną. Miłej lektury…
Poznajmy instrukcję if
Instrukcji „if” będziemy używać bardzo często. Wykorzystujemy w niej słowo kluczowe: właśnie if.
Słowo kluczowe if w Pythonie znaczy dokładnie to samo, co w zwykłym "ludzkim" języku i oznacza, że jeżeli coś jest prawdą, program ma wykonać polecenie, jednak jeżeli nie jest prawdą, ma nie wykonywać polecenia.
x = input('Czy kupiłeś mi mleko jak prosiłam? tak/nie ')
if x == 'tak':
print('Dzięki') # Nie zapominamy o wcięciu
Jeżeli uruchomimy ten plik, output będzie wyglądać tak:
Czy kupiłeś mi mleko jak prosiłam? tak/nie
Odpowiadamy tak lub nie
Jeśli wpiszemy tak odpowiedź programu będzie wyglądać:
Dzięki
A co jeśli wpiszemy nie ? odpowiedź programu będzie wyglądać:
*pustka*
Więc teraz ulepszymy nasz program żeby reagował też na drugą odpowiedź!
Else
Słowo kluczowe else ma wykonywać drugą opcję.
Jak przed chwilą mówiliśmy, jeżeli po uruchomieniu skryptu wpiszemy nie – program nie odpowie nic, więc teraz go ulepszymy.
x = input('Czy kupiłeś mi mleko jak prosiłam? tak/nie ')
if x == 'tak': # nie zapominamy o dwukropku
print('Dzięki') # nie zapominamy o wcięciu
else:
print('Dlaczego?') # Również dajemy wcięcie
Jeżeli uruchomimy ten plik, output będzie wyglądać tak:
Czy kupiłeś mi mleko jak prosiłam? tak/nie
Odpowiadamy tak lub nie
Jeśli wpiszemy tak odpowiedź programu będzie wyglądać:
Dzięki
A jeżeli wpiszemy nie odpowiedź programu będzie wyglądać:
Dlaczego?
Dziękuję za przeczytanie artykułu i pozdrawiam.
Odpowiedzi do samodzielnych ćwiczeń
Ćwiczenie 1
print('Enter first number: ')
a=input()
print('Enter second number: ')
b=input()
if a==b:
print('The numbers are equal.')
else:
print('The numbers are not equal.')
Ćwiczenie 2
print('Specify a color, please: ')
x=input()
if x=='white':
print('Great, you guessed it!')
else:
print('This is not the color.')
[1] Control flow – terminem tym określa się kolejność wykonywania poleceń w programie
[2] ale ostatnia linijka skryptu nie jest wcięta; dlaczego? do tematu "wcięć" za chwilę wrócimy
[3] polecenia te są organizacyjnie powiązane, wiąże je zależność od jednego i tego samego warunku