Условный оператор if и составные условия
Содержание:
- if statement #
- Оператор elif
- Проверяет, что все элементы в последовательности True.
- 11 ответов
- Python if else if Command Example
- Функции, которые когда-нибудь можно выучить
- Создание класса в Python:
- Список
- Условия
- self
- Одиночные проверки
- Multiple Commands in If Condition Block using Indentation
- Цикл while
- Сравнение строк
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
Оператор elif
позволяет программе выбирать из нескольких вариантов. Это удобно, например, в том случае, если одну переменную необходимо многократно сравнить с разными величинами.
Такая конструкция может содержать сколь угодно большую последовательность условий, которые интерпретатор будет по порядку проверять.
Но помните, что первое условие всегда задается с
Также не стоит забывать, что как только очередное условие в операторе оказывается истинным, программа выполняет соответствующий блок инструкций, а после переходит к следующему выражению.
Из этого вытекает, что даже если несколько условий истинны, то исполнению подлежит все равно максимум один, первый по порядку, блок кода с истинным условием.
Если ни одно из условий для частей и не выполняется, то срабатывает заключительный блок под оператором (если он существует).
Проверяет, что все элементы в последовательности True.
Описание:
Функция возвращает значение , если все элементы в итерируемом объекте — истинны, в противном случае она возвращает значение .
Если передаваемая последовательность пуста, то функция также возвращает .
Функция применяется для проверки на ВСЕХ значений в последовательности и эквивалентна следующему коду:
def all(iterable): for element in iterable if not element return False return True
Так же смотрите встроенную функцию
В основном функция применяется в сочетании с оператором ветвления программы . Работу функции можно сравнить с оператором в Python, только работает с последовательностями:
>>> True and True and True # True >>> True and False and True # False >>> all() # True >>> all() # False
Но между и в Python есть два основных различия:
- Синтаксис.
- Возвращаемое значение.
Функция всегда возвращает или (значение )
>>> all() # True >>> all(]) # False
Оператор , возвращает ПОСЛЕДНЕЕ истинное значение, при условии, что в выражении все значения а если в выражении присутствует значение (ложное значение), то ПЕРВОЕ ложное значение. Что бы добиться поведения как у функции , необходимо выражение с оператором обернуть в функцию .
>>> 3 and 1 and 2 and 6 # 6 >>> 3 and and 3 and [] # 0 >>> bool(3 and 1 and 2 and 6) # True >>> bool(3 and and 3 and []) # False
Из всего сказанного можно сделать вывод, что для успешного использования функции необходимо в нее передавать последовательность, полученную в результате каких то вычислений/сравнений, элементы которого будут оцениваться как или . Это можно достичь применяя функцию или выражения-генераторы списков, используя в них встроенные функции или методы, возвращающие значения, операции сравнения, оператор вхождения и оператор идентичности .
num = 1, 2.0, 3.1, 4, 5, 6, 7.9 # использование встроенных функций или # методов на примере 'isdigit()' >>> str(x).isdigit() for x in num # # использование операции сравнения >>> x > 4 for x in num # # использование оператора вхождения `in` >>> '.' in str(x) for x in num # # использование оператора идентичности `is` >>> type(x) is int for x in num # # использование функции map() >>> list(map(lambda x x > 1, num)) #
Примеры проводимых проверок функцией .
Допустим, у нас есть список чисел и для дальнейших операций с этой последовательностью необходимо знать, что все числа например положительные.
>>> num1 = range(1, 9) >>> num2 = range(-1, 7) >>> all() # True >>> all() # False
Или проверить, что последовательность чисел содержит только ЦЕЛЫЕ числа.
>>> num1 = 1, 2, 3, 4, 5, 6, 7 >>> num2 = 1, 2.0, 3.1, 4, 5, 6, 7.9 >>> all() # True >>> all() # False
Или есть строка с числами, записанными через запятую и нам необходимо убедится, что в строке действительно записаны только цифры. Для этого, сначала надо разбить строку на список строк по разделителю и проверить каждый элемент полученного списка на десятичное число методом . Что бы учесть правила записи десятичных чисел будем убирать точку перед проверкой строки на десятичное число.
>>> line1 = "1, 2, 3, 9.9, 15.1, 7" >>> line2 = "1, 2, 3, 9.9, 15.1, 7, девять" >>> all() # True >>> all() # False
Еще пример со строкой. Допустим нам необходимо узнать, есть ли в строке наличие открытой И закрытой скобки?
>>> simbols = '(', ')' >>> line1 = "функция 'all()' всегда возвращает 'False' или 'True'" >>> line2 = "функция any всегда возвращает значение bool" >>> all() # True >>> all() # False
11 ответов
Лучший ответ
(Этот метод работает для s, нескольких вложенных циклов и других конструкций, которые вы не можете легко получить.)
Оберните код в его собственную функцию. Вместо используйте .
Примере:
109
yanxun
7 Авг 2018 в 13:23
Используйте в условии if, которое вернет вас из функции, так что вы можете использовать return, чтобы нарушить условие if.
-2
Nikhil Parashar
18 Окт 2018 в 10:13
Итак, я понимаю, что вы пытаетесь вырваться из внешнего блока кода
Одним из выходов из этого является то, что вы можете проверить наличие ложного условия во внешнем блоке if, который затем неявно выйдет из блока кода, а затем использовать блок else для вложения других if в что-то сделать
Romeo
31 Май 2018 в 12:43
Да, это также требует второго взгляда на читабельность, однако, если фрагменты кода малы, это не требует отслеживания циклов while, которые никогда не повторятся, и после понимания того, для чего нужны промежуточные if, это легко читается, все в одно место и с таким же отступом.
И это должно быть довольно эффективно.
1
DonQuiKong
7 Ноя 2018 в 08:24
По сути, вы описываете операторы goto, которые обычно довольно сильно панорамируются. Ваш второй пример гораздо проще понять.
Тем не менее, чище все равно будет:
1
Smashery
15 Янв 2010 в 05:29
Вообще говоря, нет. Если вы вкладываете «если» и отказываетесь от них, вы делаете это неправильно.
Однако, если вы должны:
Обратите внимание, что функции НЕ ДОЛЖНЫ быть объявлены в операторе if, они могут быть объявлены заранее;) Это был бы лучший выбор, так как это позволит избежать необходимости рефакторинга уродливого if / then позже. 3
Enki
16 Апр 2010 в 03:02
3
Enki
16 Апр 2010 в 03:02
Для того, что на самом деле было задано, мой подход состоит в том, чтобы поместить эти внутри однопетлевого цикла
Попробуй это:
7
izzulmakin
8 Сен 2015 в 08:16
Может быть, это?
8
ghostdog74
15 Янв 2010 в 05:28
Вы можете эмулировать функциональность goto с исключениями:
Отказ от ответственности: я только хочу представить вашему вниманию возможность действовать таким образом, но ни в коем случае не одобряю это как разумное в нормальных обстоятельствах. Как я уже упоминал в комментарии к вопросу, структурирование кода таким образом, чтобы избежать византийских условностей, в первую очередь, предпочтительнее. 🙂
10
Michał Marczyk
15 Янв 2010 в 05:35
26
Thomas Eding
19 Янв 2010 в 02:05
from goto import goto, label if some_condition: ... if condition_a: # do something # and then exit the outer if block goto .end ... if condition_b: # do something # and then exit the outer if block goto .end # more code here label .end
(На самом деле не используйте это, пожалуйста.)
58
ephemient
15 Янв 2010 в 05:29
Python if else if Command Example
In Python, if else if is handled using if elif else format.
The following example shows how to use if..elif..else command in Python.
# cat if6.py code = raw_input("Type a 2-letter state code that starts with letter C: ") if code == 'CA': print("CA is California") elif code == 'CO': print("CO is Colorado") elif code == 'CT': print("CT is Connecticut") else: print("Invalid. Please enter a valid state code that starts with letter C") print("Thank You!")
In the above:
- When the first if code == ‘CO’ condition fails, then it goes to the next elif command.
- When the elif code == ‘CO’ condition fails, then it goes to the next elif code command.
- When the elif code == ‘CT’ condition fails, then it just executes whatever is available as part of the final else: block.
- At any point when the 1st if condition becomes true, or any one of the remaining elif condition becomes true, then it executes the statement that is part of its block and stops checking further condition.
- This also means that when any of the if condition or elif condition becomes true, the statement that is part of the else block will not get executed.
- Also, just like previous example, the colon at the end of if, elif, else command is part of the Python syntax, which should be specified.
The following is the output when the first if condition becomes true.
# python if6.py Type a 2-letter state code that starts with letter C: CA CA is California Thank You!
The following is the output when the first elif condition becomes true.
# python if6.py Type a 2-letter state code that starts with letter C: CO CO is Colorado Thank You!
The following is the output when the second elif condition becomes true.
# python if6.py Type a 2-letter state code that starts with letter C: CT CT is Connecticut Thank You!
The following is the output when the if condition is false, and all the remaining elif condition is also false. Here this, executes the else block.
# python if6.py Type a 2-letter state code that starts with letter C: NV Invalid. Please enter a valid state code that starts with letter C Thank You!
Функции, которые когда-нибудь можно выучить
Следующие встроенные функции Python определённо не бесполезны, но они более специализированы.
Эти функции вам, возможно, будут нужны, но также есть шанс, что вы никогда не прибегнете к ним в своём коде.
- : возвращает итератор (список, набор и т. д.);
- : возвращает , если аргумент является вызываемым;
- and : вместо них рекомендуется использовать генератор-выражения;
- : округляет число;
- : эта функция выполняет деление без остатка () и операцию по модулю () одновременно;
- , и : служат для отображения чисел в виде строки в двоичной, восьмеричной или шестнадцатеричной форме;
- : возвращает абсолютное значение числа (аргумент может быть целым или числом с плавающей запятой, если аргумент является комплексным числом, его величина возвращается);
- ;
- .
Создание класса в Python:
Определение класса начинается с ключевого слова class, после него следует имя класса и двоеточие.
class имя_класса: # тело класса # объявление конструктора # объявление атрибутов # объявление методов
Основные определения
Метод __init__ или Конструктор
В процессе создания объекта атрибутам класса необходимо задать начальные значения
Это действие называется инициализацией. Для этой цели используется специальный метод __init__(), который называется методом инициализации или конструктором. Метод __init__ запускается при создании экземпляра класса — один раз. Обратите внимание на двойные подчёркивания в начале и в конце имени. Синтаксис метода следующий:
def __init__(self, параметр1, параметр2):self.атрибут1 = параметр1 self.атрибут2 = параметр2
Два символа подчеркивания в начале __init__ и два символа подчеркивания в конце обязательны. Параметров у конструктора параметр1, параметр2 может быть сколько угодно, но первым дожен быть параметр self.
Список
Список (list) представляет тип данных, который хранит набор или последовательность элементов. Для создания списка в квадратных скобках через запятую перечисляются все его элементы.
Создание пустого списка
numbers = []
Создание списка чисел:
numbers = # имя списка numbers, он содержит 5 элементов
Создание списка слов:
words = # имя списка words, он содержит 4 элемента
Создание списка из элементов разного типа
listNum = # имя списка listNum, список содержит целые числа и строки
Для управления элементами списки имеют целый ряд методов. Некоторые из них:
append(item): добавляет элемент item в конец списка
insert(index, item): добавляет элемент item в список по индексу index
remove(item): удаляет элемент item. Удаляется только первое вхождение элемента. Если элемент не найден, генерирует исключение ValueError
clear(): удаление всех элементов из списка
index(item): возвращает индекс элемента item. Если элемент не найден, генерирует исключение ValueError
pop(): удаляет и возвращает элемент по индексу index. Если индекс не передан, то просто удаляет последний элемент.
count(item): возвращает количество вхождений элемента item в список
sort(): сортирует элементы. По умолчанию сортирует по возрастанию. Но с помощью параметра key мы можем передать функцию сортировки.
reverse(): расставляет все элементы в списке в обратном порядке
Кроме того, Python предоставляет ряд встроенных функций для работы со списками:
len(list): возвращает длину списка
sorted(list, ): возвращает отсортированный список
min(list): возвращает наименьший элемент списка
Условия
Условия — это структуры внутри кода, которые могут выполнять различные строки кода на основе определенных «условий», которые выполняются. В Python самый простой тип условного выражения проверяет логическое значение, чтобы удостовериться, является ли оно истинным, а затем выполняет некоторый код, если оно подходит:
b = True
if b:
print ‘b is True’
Здесь, поскольку b на самом деле истинно, он проходит тест, вызывая выполнение кода, вставленного после строки «if b:«. Попробуйте запустить код еще раз, на этот раз установив b в значение False, чтобы убедиться, что ничего не происходит. В этом случае, если b не проходит тест, весь блок кода вставки после первой условной строки пропускается и игнорируется. В этом коде «if b:» сокращенно означает «if b is True:«. Если вы хотите проверить ложность, вы можете использовать сокращенное выражение Python «if not b:» или написать полное «if b is False:«.
В Python строка, заканчивающаяся на «», за которой следуют строки кода вставки, является базовым синтаксисом для создания иерархической структуры и используется со всеми более высокими кодовыми структурами, включая условия, циклы, функции и объекты. Хитрость заключается в том, что Python очень специфичен в том, как эти вставки задаются. У вас есть возможность использовать вкладки или ряд пробелов, но вы не можете смешивать и сопоставлять, и вы должны очень четко указать количество каждого из них, которое вы используете, основываясь на уровне структуры. Например, этот код:
b = False
if b:
print ‘b is True’
print ‘b is False’
пропустит обе строки печати, если b равно False. Однако, удалив отступ в последней строке, вы извлекаете эту строку из вложенной структуры, и теперь она будет выполняться независимо от того, является ли b истинным или ложным:
b = False
if b:
print ‘b is True’
print ‘b is False’
С другой стороны, если вы вставите последнюю строку на один уровень дальше:
b = False
if b:
print ‘b is True’
print ‘b is False’
Вы получите сообщение об ошибке
IndentationError: unexpected indent (неожиданный отступ)
а это значит, что с вашим отступом что-то не так. В этом случае вы сделали отступ до уровня, который не существует в структуре кода. Такие ошибки чрезвычайно распространены и могут быть довольно раздражающими, так как они могут возникнуть либо из-за неправильного отступа, смешивания пробелов с табуляциями, либо из-за того и другого. С другой стороны, этот акцент на правильном отступе обеспечивает визуальную ясность в скриптах Python, которая часто отсутствует в других языках.
Двигаясь дальше, если условный тест не проходит и первый блок кода передается, он может быть пойман оператором else (иначе):
b = True
if b:
print ‘b is True’
else:
print ‘b is False’
В этом случае, когда b истинно, будет выполняться первое утверждение, а когда b ложно, будет выполняться второе утверждение. Попробуйте этот код в обоих направлениях, чтобы увидеть.
Помимо использования логических значений, вы также можете создавать условные выражения с помощью различных операторов сравнения. Например, условное условие может проверить размер числа:
num = 7
if num > 5:
print ‘число больше, чем 5’
Или содержимое строки:
t = ‘это текст’
if t == ‘это текст’:
print ‘текст соответствует’
В этом примере я использую оператор double equals «==» (двойное равенство), чтобы проверить, соответствует ли одна вещь другой. Это стандартный способ проверки равенства, так как единственное равенство «=» зарезервировано для присвоения значений переменным. Наиболее распространенными операторами сравнения являются:
- == (равно)
- != (не равно)
- > (больше чем)
- >= (больше чем или равно)
- < (меньше чем)
- <= (меньше чем или равно)
Вы можете использовать оператор «elif:» (конкатенация else и if) для объединения условий в цепочку для создания более сложных логик:
num1 = 3
num2 = 7
if num1 > 5:
print ‘num1 больше чем 5’
elif num2 > 5:
print ‘num2 больше чем 5’
else:
print «они оба слишком маленькие!»
Это создает цепочку тестов, которые происходят по порядку. Если первый тест пройден, то этот блок кода выполняется, а остальная часть условного кода пропускается. Если это не удается, анализируется второй тест (после «elif:«), и так далее. Если ни один из тестов не проходит, выполняется код, следующий за оператором else:).
Наконец, вы также можете объединить несколько тестов в одной строке, используя ключевые слова «and» (И) и «or» (ИЛИ):
num1 = 3
num2 = 7
if num1 < 5 and num2 < 5:
print «они оба слишком малы!»
if num1 < 5 or num2 < 5:
print «по крайней мере один из них слишком мал!»
self
Рассотрим пример. Пусть у нас есть объект мяч — ball , обладающий атрибутами и методами.
Атрибуты мяча могут быть:
ball.color - цвет, например, красныйball.size - размер, например, маленькийball.price – стоимость мяча
Методы нашего объекта могут выглядеть следующим образом:
ball.Move( ) - перемещение мячаball.Show( ) – вывести характеристики (атрибуты) мяча на экран
Переменная self указывает на конкретный объект экземпляра класса. Доступ к атрибутам и методам осуществляется через переменную self. Это главное назначение переменной self.
Предположим мы создали три мяча — экземпляры класса Ball: ball1, ball2, ball3.Мячи могут иметь разные характеристики, например, как в таблице.
Объект |
Self |
Color |
Size |
Price |
|
имя объекта |
адрес объекта |
||||
ball1 |
адрес 1 |
адрес 1 |
Красный |
Маленький |
10 |
ball2 |
адрес 2 |
адрес 2 |
Синий |
Средний |
20 |
ball3 |
адрес 3 |
адрес 3 |
Белый |
Большой |
30 |
Переменная self представляет ссылку на экземпляр класса, т.е. содержит адрес объекта. Всем методам класса автоматически передается эта ссылка.
Предположим в классе Ball имеется метод Show( ) – вывести характеристики мяча.
Одиночные проверки
Внутри условия
можно прописывать и такие одиночные выражения:
x = 4; y = True; z = False if(x): print("x = ", x, " дает true") if(not ): print("0 дает false") if("0"): print("строка 0 дает true") if(not ""): print("пустая строка дает false") if(y): print("y = true дает true") if(not z): print("z = false дает false")
Вот этот оператор
not – это отрицание
– НЕ, то есть, чтобы проверить, что 0 – это false мы
преобразовываем его в противоположное состояние с помощью оператора отрицания
НЕ в true и условие
срабатывает. Аналогично и с переменной z, которая равна false.
Из этих примеров
можно сделать такие выводы:
-
Любое число,
отличное от нуля, дает True. Число 0 преобразуется в False. -
Пустая строка –
это False, любая другая
строка с символами – это True. - С помощью
оператора not можно менять
условие на противоположное (в частности, False превращать в True).
Итак, в условиях
мы можем использовать три оператора: and, or и not. Самый высокий
приоритет у операции not, следующий приоритет имеет операция and и самый
маленький приоритет у операции or. Вот так работает оператор if в Python.
Видео по теме
Python 3 #1: установка и запуск интерпретатора языка
Python 3 #2: переменные, оператор присваивания, типы данных
Python 3 #3: функции input и print ввода/вывода
Python 3 #4: арифметические операторы: сложение, вычитание, умножение, деление, степень
Python 3 #5: условный оператор if, составные условия с and, or, not
Python 3 #6: операторы циклов while и for, операторы break и continue
Python 3 #7: строки — сравнения, срезы строк, базовые функции str, len, ord, in
Python 3 #8: методы строк — upper, split, join, find, strip, isalpha, isdigit и другие
Python 3 #9: списки list и функции len, min, max, sum, sorted
Python 3 #10: списки — срезы и методы: append, insert, pop, sort, index, count, reverse, clear
Python 3 #11: списки — инструмент list comprehensions, сортировка методом выбора
Python 3 #12: словарь, методы словарей: len, clear, get, setdefault, pop
Python 3 #13: кортежи (tuple) и операции с ними: len, del, count, index
Python 3 #14: функции (def) — объявление и вызов
Python 3 #15: делаем «Сапер», проектирование программ «сверху-вниз»
Python 3 #16: рекурсивные и лямбда-функции, функции с произвольным числом аргументов
Python 3 #17: алгоритм Евклида, принцип тестирования программ
Python 3 #18: области видимости переменных — global, nonlocal
Python 3 #19: множества (set) и операции над ними: вычитание, пересечение, объединение, сравнение
Python 3 #20: итераторы, выражения-генераторы, функции-генераторы, оператор yield
Python 3 #21: функции map, filter, zip
Python 3 #22: сортировка sort() и sorted(), сортировка по ключам
Python 3 #23: обработка исключений: try, except, finally, else
Python 3 #24: файлы — чтение и запись: open, read, write, seek, readline, dump, load, pickle
Python 3 #25: форматирование строк: метод format и F-строки
Python 3 #26: создание и импорт модулей — import, from, as, dir, reload
Python 3 #27: пакеты (package) — создание, импорт, установка (менеджер pip)
Python 3 #28: декораторы функций и замыкания
Python 3 #29: установка и порядок работы в PyCharm
Python 3 #30: функция enumerate, примеры использования
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!
Цикл 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.
Сравнение строк
Как вы видите,
сравнение двух числовых значений выполняется вполне очевидным образом. Но можно
ли, например, сравнивать строки между собой? Оказывается да, можно. Чтобы
определить, что одна строка больше другой, Python использует
«алфавитный» или «лексикографический» порядок. Другими словами, строки сравниваются
посимвольно. Например:
print('Я' > 'А' ) print( 'Кот' > 'Код' ) print( 'Сонный' > 'Сон' )
Алгоритм
сравнения двух строк довольно прост:
-
Сначала
сравниваются первые символы строк. -
Если первый
символ первой строки больше (меньше), чем первый символ второй, то первая
строка больше (меньше) второй. - Если первые
символы равны, то таким же образом сравниваются уже вторые символы строк.
Сравнение
продолжается, пока не закончится одна из строк. Если обе строки заканчиваются
одновременно, и все их соответствующие символы равны между собой, то строки считаются
равными. Иначе, большей считается более длинная строка.
В примерах выше
сравнение ‘Я’ > ‘А’ завершится на первом шаге, тогда как строки
«Кот» и «Код» будут сравниваться посимвольно:
- К равна К.
- о равна о.
- т больше чем д.