Изучаем оператор if else python
Содержание:
- if statement #
- Функции Python 3 — значения аргументов по умолчанию
- Nested if and if-else statement #
- Цикл while
- слово ‘elif’
- Вложенные условия
- 4.2. for Statements¶
- Условия в Python:
- Python Compound If Statement Example
- Nested conditions
- Зачем нужен else при работе с циклами?
- Basic Python if Command Example for Numbers
- Multiple Commands in If Condition Block using Indentation
- Оператор else if
- Встроенная мутация и другие побочные эффекты
- Пробелы в списках
- Сравнение строк
- Определение функции Python 3
- Словарь включений
if statement #
The syntax of if statement is as follows:
Syntax:
1 2 3 4 5 |
if condition <indented statement 1> <indented statement 2> <non-indented statement> |
The first line of the statement i.e is known as if clause and the is a boolean expression, that is evaluated to either or . In the next line, we have have block of statements. A block is simply a set of one or more statements. When a block of statements is followed by if clause, it is known as if block. Notice that each statement inside the if block is indented by the same amount to the right of the if keyword. Many languages like C, C++, Java, PHP, uses curly braces () to determine the start and end of the block but Python uses indentation. Each statement inside the if block must be indented by the same number of spaces. Otherwise, you will get syntax error. Python documentation recommends to indent each statement in the block by 4 spaces. We use this recommendation in all our programs throughout this course.
How it works:
When if statement executes, the condition is tested. If condition is true then all the statements inside the if block is executed. On the other hand, if the condition is false then all the statements in the if block is skipped.
The statements followed by the if clause which are not indented doesn’t belong to the if block. For example, is not the part of the if block, as a result, it will always execute no matter whether the condition in the if clause is true or false.
Here is an example:
python101/Chapter-09/if_statement.py
1 2 3 4 |
number = int(input("Enter a number: ")) if number > 10 print("Number is greater than 10") |
First Run Output:
1 2 |
Enter a number: 100 Number is greater than 10 |
Second Run Output:
Enter a number: 5
Notice that in the second run when condition failed, statement inside the if block is skipped. In this example the if block consist of only one statement, but you can have any number of statements, just remember to properly indent them.
Now consider the following code:
python101/Chapter-09/if_statement_block.py
1 2 3 4 5 6 7 |
number = int(input("Enter a number: ")) if number > 10 print("statement 1") print("statement 2") print("statement 3") print("Executes every time you run the program") print("Program ends here") |
First Run Output:
1 2 3 4 5 6 |
Enter a number: 45 statement 1 statement 2 statement 3 Executes every time you run the program Program ends here |
Second Run Output:
1 2 3 |
Enter a number: 4 Executes every time you run the program Program ends here |
The important thing to note in this program is that only statements in line 3,4 and 5 belongs to the if block. Consequently, statements in line 3,4 and 5 will execute only when the if condition is true, on the other hand statements in line 6 and 7 will always execute no matter what.
Python shell responds somewhat differently when you type control statements inside it. Recall that, to split a statement into multiple lines we use line continuation operator (). This is not the case with control statements, Python interpreter will automatically put you in multi-line mode as soon as you hit enter followed by an if clause. Consider the following example:
1 2 3 4 |
>>> >>> n = 100 >>> if n > 10 ... |
Notice that after hitting Enter key followed by if clause the shell prompt changes from to . Python shell shows for multi-line statements, it simply means the statement you started is not yet complete.
To complete the if statement, add a statement to the if block as follows:
1 2 3 4 5 |
>>> >>> n = 100 >>> if n > 10 ... print("n is greater than 10") ... |
Python shell will not automatically indent your code, you have to do that yourself. When you are done typing statements in the block hit enter twice to execute the statement and you will be taken back to the normal prompt string.
1 2 3 4 5 6 7 |
>>> >>> n = 100 >>> if n > 10 ... print("n is greater than 10") ... n is greater than 10 >>> |
The programs we have written so far ends abruptly without showing any response to the user if the condition is false. Most of the time we want to show the user a response even if the condition is false. We can easily do that using if-else statement
Функции Python 3 — значения аргументов по умолчанию
Также можно указать значения по умолчанию для обоих параметров. Создадим значение по умолчанию для параметра followers со значением 1:
profile.py def profile_info(username, followers=1): print("Имя Username: " + username) print("Followers: " + str(followers))
Теперь можно запустить функцию с параметром username, а число подписчиков по умолчанию будет 1. При желании можно изменить количество пользователей:
profile.py def profile_info(username, followers=1): print("Имя Username: " + username) print("Followers: " + str(followers)) profile_info(username="JOctopus") profile_info(username="sammyshark", followers=945)
Запустив программу командой python profile.py, получаем следующее:
Результат Username: JOctopus Followers: 1 Username: sammyshark Followers: 945
Определяя начальные параметры, не нужно устанавливать значения для каждого аргумента.
Nested if and if-else statement #
We can also write if or if-else statement inside another if or if-else statement. This can be better explained through some examples:
if statement inside another if statement.
Example 1: A program to check whether a student is eligible for loan or not
python101/Chapter-09/nested_if_statement.py
1 2 3 4 5 6 7 8 9 10 |
gre_score = int(input("Enter your GRE score: ")) per_grad = int(input("Enter percent secured in graduation: ")) if per_grad > 70 # outer if block if gre_score > 150 # inner if block print("Congratulations you are eligible for loan") else print("Sorry, you are not eligible for loan") |
Here we have written a if statement inside the another if statement. The inner if statement is known as nested if statement. In this case the inner if statement belong to the outer if block and the inner if block has only one statement which prints .
How it works:
First the outer if condition is evaluated i.e , if it is then the control of the program comes inside the outer if block. In the outer if block condition is tested. If it is then is printed to the console. If it is then the control comes out of the if-else statement to execute statements following it and nothing is printed.
On the other hand, if outer if condition is evaluated to , then execution of statements inside the outer if block is skipped and control jumps to the else (line 9) block to execute the statements inside it.
First Run Output:
1 2 3 |
Enter your GRE score: 160 Enter percent secured in graduation: 75 Congratulations you are eligible for loan |
Second Run Output:
1 2 3 |
Enter your GRE score: 160 Enter percent secured in graduation: 60 Sorry, you are not eligible for loan |
This program has one small problem. Run the program again and enter less than and greater than like this:
Output:
1 2 |
Enter your GRE score: 140 Enter percent secured in graduation: 80 |
As you can see program doesn’t output anything. This is because our nested if statement doesn’t have an else clause. We are adding an else clause to the nested if statement in the next example.
Example 2: if-else statement inside another if statement.
python101/Chapter-09/nested_if_else_statement.py
1 2 3 4 5 6 7 8 9 10 |
gre_score = int(input("Enter your GRE score: ")) per_grad = int(input("Enter percent secured in graduation: ")) if per_grad > 70 if gre_score > 150 print("Congratulations you are eligible for loan.") else print("Your GRE score is no good enough. You should retake the exam.") else print("Sorry, you are not eligible for loan.") |
Output:
1 2 3 |
Enter your GRE score: 140 Enter percent secured in graduation: 80 Your GRE score is no good enough. You should retake the exam. |
How it works:
This program works exactly like the above, the only difference is that here we have added an else clause corresponding to the nested if statement. As a result, if you enter a GRE score smaller than 150 the program would print «Your GRE score is no good enough. You should retake the exam.» instead of printing nothing.
When writing nested if or if-else statements always remember to properly indent all the statements. Otherwise you will get a syntax error.
if-else statement inside else clause.
Example 3: A program to determine student grade based upon marks entered.
python101/Chapter-09/testing_multiple_conditions.py
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
score = int(input("Enter your marks: ")) if score >= 90 print("Excellent ! Your grade is A") else if score >= 80 print("Great ! Your grade is B") else if score >= 70 print("Good ! Your grade is C") else if score >= 60 print("Your grade is D. You should work hard on you subjects.") else print("You failed in the exam") |
First Run Output:
1 2 |
Enter your marks: 92 Excellent ! Your grade is A |
Second Run Output:
1 2 |
Enter your marks: 75 Good ! Your grade is C |
Third Run Output:
1 2 |
Enter your marks: 56 You failed in the exam |
How it works:
When program control comes to the if-else statement, the condition in line 3 is tested. If the condition is , is printed to the console. If the condition is false, the control jumps to the else clause in line 5, then the condition (line 6) is tested. If it is true then is printed to the console. Otherwise, the program control jumps to the else clause in the line 8. Again we have an else block with nested if-else statement. The condition is tested. If it is True then is printed to the console. Otherwise control jumps again to the else block in line 11. At last, the condition is tested, If is then is printed to the console. On the other hand, if it is False, is printed to the console. At this point, the control comes out of the outer if-else statement to execute statements following it.
Although nested if-else statement allows us to test multiple conditions but they are fairly complex to read and write. We can make the above program much more readable and simple using if-elif-else statement.
Цикл while
Цикл while также используется для повторения частей кода, но вместо зацикливания на n количество раз, он выполняет работу до тех пор, пока не достигнет определенного условия. Давайте взглянем на простой пример:
Python
i = 0
while i < 10:
print(i)
i = i + 1
1 2 3 4 |
i= whilei<10 print(i) i=i+1 |
Цикл while является своего рода условным оператором. Вот что значит этот код: пока переменная i меньше единицы, её нужно выводить на экран. Далее, в конце, мы увеличиваем её значение на единицу. Если вы запустите этот код, он выдаст от 0 до 9, каждая цифра будет в отдельной строке, после чего задача будет выполнена. Если вы удалите ту часть, в которой мы увеличиваем значение i, то мы получим бесконечный цикл. Как правило – это плохо. Бесконечные циклы известны как логические ошибки, и их нужно избегать. Существует другой способ вырваться из цикла, для этого нужно использовать встроенную функцию break. Давайте посмотрим, как это работает:
Python
while i < 10:
print(i)
if i == 5:
break
i += 1
1 2 3 4 5 6 7 |
whilei<10 print(i) ifi==5 break i+=1 |
В этой части кода мы добавили условное выражение для проверки того, равняется ли когда-либо переменная i цифре 5. Если нет, тогда мы разрываем цикл. Как вы видите в выдаче кода, как только значение достигает пяти, код останавливается, даже если мы ранее указали while продолжать цикл, пока переменная не достигнет значения 10
Обратите внимание на то, что мы изменили то, как мы увеличиваем значение при помощи +=. Это удобный ярлык, который вы можете также использовать в других операциях, таких как вычитание -= и умножение *=
Встроенный break также известен как инструмент управления потока. Существует еще один, под названием continue, который в основном используется для пропуска итерации, или перейти к следующей итерации. Вот один из способов его применения:
Python
i = 0
while i < 10:
if i == 3:
i += 1
continue
print(i)
if i == 5:
break
i += 1
1 2 3 4 5 6 7 8 9 10 11 12 |
i= whilei<10 ifi==3 i+=1 continue print(i) ifi==5 break i+=1 |
Слегка запутанно, не так ли? Мы добавили второе условное выражение, которое проверяет, не равняется ли i трем. Если да, мы увеличиваем переменную и переходим к следующему циклу, который удачно пропускает вывод значения 3 на экран. Как и ранее, когда мы достигаем значения 5, мы разрываем цикл. Существует еще одна тема, касающаяся циклов, которую нам нужно затронуть – это оператор else.
слово ‘elif’
Если у вас есть более двух опций, которые можно разделить с помощью условного оператора, вы можете использовать .
Давайте покажем, как это работает, переписав пример с точкой (x, y) на плоскости и квадрантами сверху:
-5 7
x = int(input()) y = int(input()) if x > 0 and y > 0: print("Quadrant I") elif x > 0 and y < 0: print("Quadrant IV") elif y > 0: print("Quadrant II") else: print("Quadrant III")
В этом случае условия в и проверяются один за другим, пока не будет найдено первое истинное условие. Затем выполняется только истинный блок для этого условия. Если все условия ложны, блок «else» выполняется, если он присутствует.
Вложенные условия
Любая инструкция Python может быть помещена в «истинные» блоки и «ложный» блок, включая другой условный оператор. Таким образом, мы получаем вложенные условия. Блоки внутренних условий имеют отступы, используя в два раза больше пробелов (например, 8 пробелов). Давайте посмотрим пример. Если заданы координаты точки на плоскости, напечатайте ее квадрант.
2 -3
x = int(input()) y = int(input()) if x > 0: if y > 0: # x больше 0, y больше 0 print("Quadrant I") else: # x больше 0, y меньше или равно 0 print("Quadrant IV") else: if y > 0: # x меньше или равно 0, y больше 0 print("Quadrant II") else: # x меньше или равно 0, y меньше или равно 0 print("Quadrant III")
В этом примере мы используем комментарии: пояснительный текст, который не влияет на выполнение программы. Этот текст начинается с хеша и длится до конца строки.
4.2. for Statements¶
The statement in Python differs a bit from what you may be used
to in C or Pascal. Rather than always iterating over an arithmetic progression
of numbers (like in Pascal), or giving the user the ability to define both the
iteration step and halting condition (as C), Python’s statement
iterates over the items of any sequence (a list or a string), in the order that
they appear in the sequence. For example (no pun intended):
>>> # Measure some strings: ... words = 'cat', 'window', 'defenestrate' >>> for w in words ... print(w, len(w)) ... cat 3 window 6 defenestrate 12
Code that modifies a collection while iterating over that same collection can
be tricky to get right. Instead, it is usually more straight-forward to loop
over a copy of the collection or to create a new collection:
Условия в Python:
Теперь пришло время рассмотреть условия в языке программирования Python, здесь в отличие от C++ есть только одно, или , то есть switch нету. поэтому только это рассмотрим.
Для начала рассмотрим просто if, вот пример его использования:
Python
1 2 3 4 5 6 |
a=10 b=1 # Если a больше b ifa>b # Выводим надпись «a больше b» print(«a больше b») |
Этот код выводит «a больше b», если это верно, так как это всё таки верно, исходя из объявления переменных, то надпись появиться в терминале.
Если вам надо отработать ложное значение, если a меньше или равно , то добавьте , примерно так:
Python
1 2 3 4 5 6 7 |
# Если a больше b ifa>b # Выводим это в терминал print(«a больше b») else# Иначе # Выводим в терминал a меньше или равно b print(«a меньше или равно b») |
Теперь если перовое условии вернёт , то сработает код после , и выводиться надпись «a меньше или равно b».
Также вы можете более точно выводить результат в консоль, с помощью , вот пример с ним:
Python
1 2 3 4 5 6 7 8 9 10 |
# Если a больше b ifa>b # Выводим это в терминал print(«a больше b») elifa<b# если a меньше b # Выводим это в терминал print(«a меньше b») else# Иначе # Выводим в терминал a равно b print(«a равно b») |
Тут тоже всё просто, если первое условие вернуло , то проверяется второе, если оно верно то делается какое то действие внутри, если нет, то делается действие в .
Также скажу, что таких может быть сколько угодно, а не только одно, как было в примере выше.
Тернарная операция Python:
Последние что нужно разобрать про условия, это аналог тернарных операций в языке Python, там это реализовано через , вот не большой пример:
Python
1 2 3 |
a=10 b=1 print(«a больше b»)ifa>belseprint(«a меньше или равно b») |
Как видите тут не всё так просто на первый взгляд, в начале, перед мы делаем действие если условие вернёт , после у нас само условии, а поcлсе у нас действии если условие вернёт .
Для лучшего понимания, вот вам шаблон, как всё строится:
Python
1 | «Если условии True»ifУсловиеelse»Если условии False» |
Также вы можете присвоить результат переменной, делается это так:
Python
1 2 |
res=»a больше b»ifa>belse»a меньше или равно b» print(res) |
В целом с условиями это всё.
Python Compound If Statement Example
The following example shows how you can use compound conditional commands in the if statement.
# cat if7.py a = int(input("Enter a: ")) b = int(input("Enter b: ")) c = int(input("Enter c: ")) if a < b < c: print("Success. a < b < c")
In the above:
The print block will get executed only when the if condition is true. Here, we are using a compound expression for the if statement where it will be true only when a is less than b and b is less than c.
The following is the output when if condition becomes true.
# python if7.py Enter a: 10 Enter b: 20 Enter c: 30 Success. a < b < c
The following is the output when if condition becomes false.
# python if7.py Enter a: 10 Enter b: 10 Enter c: 20
Nested conditions
Any Python instruction may be put into ‘true’ blocks and ‘false’ block, including another conditional
statement. This way we get nested conditions. The blocks of inner conditions are indented
using twice more spaces (eg. 8 spaces). Let’s see an example. Given the coordinates of the point
on the plane, print its quadrant.
2 -3
x = int(input()) y = int(input()) if x > 0: if y > 0: # x is greater than 0, y is greater than 0 print("Quadrant I") else: # x is greater than 0, y is less or equal than 0 print("Quadrant IV") else: if y > 0: # x is less or equal than 0, y is greater than 0 print("Quadrant II") else: # x is less or equal than 0, y is less or equal than 0 print("Quadrant III")
In this example we use the comments: the explanatory text that has no effect on program execution.
This text starts with the hash and lasts till the end of the line.
Зачем нужен else при работе с циклами?
Оператор else в циклах выполняется только в том случае, если цикл выполнен успешно. Главная задача оператора else, это поиск объектов:
Python
my_list =
for i in my_list:
if i == 3:
print(«Item found!»)
break
print(i)
else:
print(«Item not found!»)
1 2 3 4 5 6 7 8 9 |
my_list=1,2,3,4,5 foriinmy_list ifi==3 print(«Item found!») break print(i) else print(«Item not found!») |
В этом коде мы разорвали цикл, когда i равно 3. Это приводит к пропуску оператора else. Если вы хотите провести эксперимент, вы можете изменить условное выражение, чтобы посмотреть на значение, которое находится вне списка, и которое приведет оператор else к выполнению. Честно, ни разу не видел, чтобы кто-либо использовал данную структуру за все годы работы. Большая часть примеров, которые я видел, приведена блогерами, которые пытаются объяснить, как это работает. Я видел несколько людей, которые использовали эту структуру для провоцирования ошибки, когда объект не удается найти в искомом цикле. Вы можете почитать статью, в которой вопрос рассматривается весьма детально. Статья написана одним из разработчиков ядра Python.
Basic Python if Command Example for Numbers
The following example illustrates how to use if command in python when we are doing a conditional testing using numbers.
# cat if1.py days = int(input("How many days are in March?: ")) if days == 31: print("You passed the test.") print("Thank You!")
In the above example:
- 1st line: Here, we are asking for user input. The input will be an integer, which will be stored in the variable days.
- 2nd line: This is the if command, where we are comparing whether the value of the variable days is equal to the numerical value 31. The colon at the end is part of the if command syntax, which should be given.
- 3rd line: This line starts with two space indent at the beginning. Any line (one or more) that follows the if statement, which has similar indentation at the beginning is considered part of the if statement block. In this example, we have only one line after if statement, which is this 3rd line, which has two spaces in the beginning for indent. So, this line will be executed when the condition of the if statement is true. i.e If the value of the variable days is equal to 31, this 3rd will get executed
- 4th line: This line is outside the if statement block. So, this will get executed whether the if statement is true or false.
The following is the output of the above example, when the if statement condition is true.
# python if1.py How many days are in March?: 31 You passed the test. Thank You!
The following is the output of the above example, when the if statement condition is false.
# python if1.py How many days are in March?: 30 Thank You!
If you are new to python, this will give you a excellent introduction to Python Variables, Strings and Functions
Multiple Commands in If Condition Block using Indentation
In the previous example, we had only one statement to be executed when the if condition is true.
The following example shows where multiple lines will get executed when the if condition is true. This is done by doing proper indentation at the beginning of the statements that needs to be part of the if condition block as shown below.
# cat if3.py code = raw_input("What is the 2-letter state code for California?: ") if code == 'CA': print("You passed the test.") print("State: California") print("Capital: Sacramento") print("Largest City: Los Angeles") print("Thank You!")
In the above:
- 1st line: Here we are getting the raw input from the user and storing it in the code variable. This will be stored as string.
- 2nd line: In this if command, we are comparing whether the value of the code variable is equal to the string ‘CA’. Please note that we have enclosed the static string value in single quote (not double quote). The : at the end is part of the if command syntax.
- 3rd line – 6th line: All these lines have equal indentation at the beginning of the statement. In this example, all these 4 print statements have 2 spaces at the beginning. So, these statements will get executed then the if condition becomes true.
- 4th line: This print statement doesn’t have similar indentation as the previous commands. So, this is not part of the if statement block. This line will get executed irrespective of whether the if command is true or false.
The following is the output of the above example, when the if statement condition is true. Here all those 4 print statements that are part of the if condition block gets executed.
# python if3.py What is the 2-letter state code for California?: CA You passed the test. State: California Capital: Sacramento Largest City: Los Angeles Thank You!
The following is the output of the above example, when the if statement condition is false.
# python if3.py What is the 2-letter state code for California?: NV Thank You!
Оператор else if
Часто нам нужна программа, которая оценивает более двух возможных результатов. Для этого мы будем использовать оператор else if, который указывается в Python как elif. Оператор elif или else if выглядит как оператор if и оценивает другое условие.
В примере с балансом банковского счета нам потребуется вывести сообщения для трех разных ситуаций:
- Баланс ниже 0.
- Баланс равен 0.
- Баланс выше 0.
Условие elif будет размещено между if и оператором else следующим образом:
if balance < 0: print("Balance is below 0, add funds now or you will be charged a penalty.") elif balance == 0: print("Balance is equal to 0, add funds soon.") else: print("Your balance is 0 or above.")
После запуска программы:
- Если переменная balance равна 0, мы получим сообщение из оператора elif («Balance is equal to 0, add funds soon»).
- Если переменной balance задано положительное число, мы получим сообщение из оператора else («Your balance is 0 or above»).
- Если переменной balance задано отрицательное число, выведется сообщение из оператора if («Balance is below 0, add funds now or you will be charged a penalty»).
А что если нужно реализовать более трех вариантов сообщения? Этого можно достигнуть, используя более одного оператора elif.
В программе grade.py создадим несколько буквенных оценок, соответствующих диапазонам числовых:
- 90% или выше эквивалентно оценке А.
- 80-89% эквивалентно оценке B.
- 70-79% — оценке C.
- 65-69% — оценке D.
- 64 или ниже эквивалентно оценке F.
Для этого нам понадобится один оператор if, три оператора elif и оператор else, который будет обрабатывать непроходные баллы.
Мы можем оставить оператор else без изменений.
if grade >= 90: print("A grade") elif grade >=80: print("B grade") elif grade >=70: print("C grade") elif grade >= 65: print("D grade") else: print("Failing grade")
Поскольку операторы elif будут оцениваться по порядку, можно сделать их довольно простыми. Эта программа выполняет следующие шаги:
- Если оценка больше 90, программа выведет «A grade». Если оценка меньше 90, программа перейдет к следующему оператору.
- Если оценка больше или равна 80, программа выведет «B grade». Если оценка 79 или меньше, программа перейдет к следующему оператору.
- Если оценка больше или равна 70, программа выведет «C grade». Если оценка 69 или меньше, программа перейдет к следующему оператору.
- Если оценка больше или равна 65, программа выведет «D grade». Если оценка 64 или меньше, программа перейдет к следующему оператору.
- Программа выведет «Failing grade», если все перечисленные выше условия не были выполнены.
Встроенная мутация и другие побочные эффекты
Прежде чем использовать списковые включения, нужно понять разницу между функциями, вызываемыми для их побочных эффектов (мутирующие или встроенные функции), которые обычно возвращают , и функции , которые возвращают интересное значение.
Многие функции (особенно чистые функции) просто берут объект и возвращают какой-то объект. Встроенная функция изменяет существующий объект, это называется побочным эффектом. Другие примеры включают операции ввода и вывода, такие как print.
сортирует список на месте (это означает , что он изменяет исходный список) и возвращает значение . Следовательно, это не будет работать так, как со списковыми включениями:
Вместо возвращает отсортированный , а не сортировку на месте:
Допускается использование включений для побочных эффектов, таких как ввод-вывод или встроенных функций. Тем не менее лучше использовать цикл . Так это работает в Python 3:
Вместо этого используйте:
В некоторых ситуациях функции побочных эффектов подходят для списковых включений. У есть побочный эффект изменения состояния генератора случайных чисел, но он также возвращает интересное значение. Кроме того, может вызываться на итераторе.
Следующий генератор случайных значений не является чистым, но имеет смысл, поскольку генератор случайных значений сбрасывается каждый раз, когда вычисляется выражение:
Пробелы в списках
Более сложные списки могут быть очень длинными или становиться менее читабельными. В приведённых примерах это встречается не так часто, но можно разбить списковые включения на несколько строк следующим образом:
Сравнение строк
Как вы видите,
сравнение двух числовых значений выполняется вполне очевидным образом. Но можно
ли, например, сравнивать строки между собой? Оказывается да, можно. Чтобы
определить, что одна строка больше другой, Python использует
«алфавитный» или «лексикографический» порядок. Другими словами, строки сравниваются
посимвольно. Например:
print('Я' > 'А' ) print( 'Кот' > 'Код' ) print( 'Сонный' > 'Сон' )
Алгоритм
сравнения двух строк довольно прост:
-
Сначала
сравниваются первые символы строк. -
Если первый
символ первой строки больше (меньше), чем первый символ второй, то первая
строка больше (меньше) второй. - Если первые
символы равны, то таким же образом сравниваются уже вторые символы строк.
Сравнение
продолжается, пока не закончится одна из строк. Если обе строки заканчиваются
одновременно, и все их соответствующие символы равны между собой, то строки считаются
равными. Иначе, большей считается более длинная строка.
В примерах выше
сравнение ‘Я’ > ‘А’ завершится на первом шаге, тогда как строки
«Кот» и «Код» будут сравниваться посимвольно:
- К равна К.
- о равна о.
- т больше чем д.
Определение функции Python 3
Начнем с превращения в функцию классический «Hello, World!». Создадим в текстовом редакторе новый файл и назовем его hello.py. Затем определим функцию.
Функция определяется с помощью ключевого слова def, за которым следует название и параметры функции в круглых скобках (могут быть пустыми). Строку заканчиваем двоеточием.
В нашем случае определяем функцию с названием hello():
hello.py def hello():
Мы создали начальную инструкцию для создания функции Python 3.
Теперь добавляем вторую строку, в которой устанавливаем инструкции для функции. В примере мы будем печатать в консоли «Hello, World»!
hello.py def hello(): print("Hello, World!")
Теперь строковая функция Python полностью определена, но если мы запустим программу, ничего не произойдет, так как мы не вызвали ее. Поэтому вызовем функцию с помощью hello():
hello.py def hello(): print("Hello, World!") hello()
Запускаем программу:
python hello.py
Должно получиться следующее:
Результат Hello, World!
Функции могут быть и сложнее, чем hello(). В блоке функции Python 3 можно использовать циклы for, условные инструкции и другое.
Например, следующая функция использует условную инструкцию для проверки того, содержит ли значение переменной name гласную, а затем применяет цикл for для итерации по буквам.
names.py # Определяем функцию names() def names(): # Задаем имя переменной с вводом name = str(input('Введите имя: ')) # Проверить, содержит ли имя гласную if set('aeiou').intersection(name.lower()): print('Имя содержит гласную.') else: print('Имя не содержит гласную.') # Итерация по имени for letter in name: print(letter) # Вызываем функцию names()
Вызов функции Python names(), которую мы определили, задает условную инструкцию и цикл for. Из этого примера видно, как можно организовать код в пределах функции. Также можно определить условное выражение и цикл for как две отдельные функции.
Словарь включений
Пример
Словарь включений аналогичен списковым включениям, за исключением того, что он создаёт объект словаря вместо списка.
Основной пример:
это просто еще один способ написания:
Как и в случае со списком, мы можем использовать условный оператор внутри словаря включения, чтобы получить только элементы словаря, удовлетворяющие заданному критерию.
Или переписать с помощью генераторного выражения.
Начиная со словаря и используя словарь в качестве фильтра пары ключ-значение
Переключение ключа и значения словаря (инвертировать словарь)
если вы хотели поменять местами ключи и значения, вы можете использовать несколько подходов в зависимости от вашего стиля кодирования: