Python 3: if-elif-else, for и while
Для управления порядком выполнения команд в Python существует конструкции:
if-elif-else
Оператор if — elif — else позволяет описывать ветвление по какому-нибудь условию:
Блок блок else можно опустить. Блоков elif может быть несколько, либо их может не быть совсем.
Оператор if в Python работает аналогично оператору if в Java и аналогично оператору if в Javascript.
Порядок выполнние if — elif — else в Python:
- Проверяется условие test1 блока if . Если оно true , то выполняется блок инструкций state1 .
- Поочерёдно выполняются все условия блоков elif , и выполняются соответствующие им блоки, если он true . Блоков elif может быть несколько.
- Выполняется инструкция state3 блока else .
Выведет в консоль:
Проверка истинности в Python происходит в соответствии со следующими правилами:
- Любое число, не равное 0, или непустой объект — истина.
- Числа, равные 0, пустые объекты и значение None — ложь.
- Операции сравнения применяются к структурам данных рекурсивно.
- Операции сравнения возвращают истину или ложь.
- Логические операторы and и or возвращают истинный или ложный объект-операнд.
Оператор цикла for в Python ОТЛИЧАЕТСЯ от оператора цикла for в Java и оператора цикла for в Javascript. В Python оператор цикла for позволяет пройтись по всем элементам любой последовательности (строки или списка, например).
Этот код выведет в консоль:
while
Оператор цикла while выполняет инструкции до тех пор, пока условие истинно:
Выведет в консоль:
Операторы break и continue
Оператор break прерывает выполнение цикла, а оператор continue переходит к следующей итерации цикла, что соответствует их поведению в других языках.
Выведет в консоль:
Число 11 было пропущено ,так как при сравнении с 11 мы переходим к следующей итерации цикла с помощью continue . Число 6 стало последним, так как при сравнении с 5 мы прерываем цикл с помощью break .
Оператор else в for и while
В Python после циклов for и while можно использовать else , блок инструкций внутри которого будет выполняться после полного прохода цикла for , или после того, как условие while стало ложным, но НЕ будет выполняться при прерывании цикла оператором break .
Difference between an If statement and While loop
I read this Manual by PHP.com about While loops.
I don’t understand the purpose of While loops in PHP.
It looks exactly like an if statement to me.
What is the difference between an if statement and a while loop?
How do while loops work, what do they do, and when should I use them?
For example, can’t this:
be done like this?:
![]()
4 Answers 4
An if statement checks if an expression is true or false, and then runs the code inside the statement only if it is true. The code inside the loop is only run once.
A while statement is a loop. Basically, it continues to execute the code in the while statement for however long the expression is true.
Python. Урок 5. Условные операторы и циклы
В этом уроке рассмотрим оператор ветвления if и операторы цикла while и for. Основная цель – это дать общее представление об этих операторах и на простых примерах показать базовые принципы работы с ними.
Условный оператор ветвления if
Оператор ветвления if позволяет выполнить определенный набор инструкций в зависимости от некоторого условия. Возможны следующие варианты использования.
1. Конструкция if
Синтаксис оператора if выглядит так.
После оператора if записывается выражение. Если это выражение истинно, то выполняются инструкции, определяемые данным оператором. Выражение является истинным, если его результатом является число не равное нулю, непустой объект, либо логическое True. После выражения нужно поставить двоеточие “:”.
ВАЖНО: блок кода, который необходимо выполнить, в случае истинности выражения, отделяется четырьмя пробелами слева!
Напечатает: hello 1
Напечатает: hello 2
Напечатает: hello 3
Напечатает: hello 4
2. Конструкция if – else
Бывают случаи, когда необходимо предусмотреть альтернативный вариант выполнения программы. Т.е. при истинном условии нужно выполнить один набор инструкций, при ложном – другой. Для этого используется конструкция if – else.
Условие такого вида можно записать в строчку, в таком случае оно будет представлять собой тернарное выражение.
В результате выполнения такого кода будет напечатано: True
3. Конструкция if – elif – else
Для реализации выбора из нескольких альтернатив можно использовать конструкцию if – elif – else.
Если пользователь введет число меньше нуля, то будет напечатано “Neg“, равное нулю – “Zero“, большее нуля – “Pos“.
Оператор цикла while
Оператор цикла while выполняет указанный набор инструкций до тех пор, пока условие цикла истинно. Истинность условия определяется также как и в операторе if. Синтаксис оператора while выглядит так.
Выполняемый набор инструкций называется телом цикла.
Буква “А” будет выведена семь раз в столбик.
Пример бесконечного цикла.
Операторы break и continue
При работе с циклами используются операторы break и continue.
Оператор break предназначен для досрочного прерывания работы цикла while.
В приведенном выше коде, выход из цикла произойдет при достижении переменной a значения 7. Если бы не было этого условия, то цикл выполнялся бы бесконечно.
Оператор continue запускает цикл заново, при этом код, расположенный после данного оператора, не выполняется.
При запуске данного кода символ “А” будет напечатан 7 раз, несмотря на то, что всего будет выполнено 11 проходов цикла.
Оператор цикла for
Оператор for выполняет указанный набор инструкций заданное количество раз, которое определяется количеством элементов в наборе.
В результате “Hello” будет выведено пять раз.
Внутри тела цикла можно использовать операторы break и continue, принцип работы их точно такой же как и в операторе while.
Если у вас есть заданный список, и вы хотите выполнить над каждым элементом определенную операцию (возвести в квадрат и напечатать получившееся число), то с помощью for такая задача решается так.
Также можно пройти по всем буквам в строке.
Строка “Hello, world!” будет напечатана в столбик.
На этом закончим краткий обзор операторов ветвления и цикла.
P.S.
Если вам интересна тема анализа данных, то мы рекомендуем ознакомиться с библиотекой Pandas. На нашем сайте вы можете найти вводные уроки по этой теме. Все уроки по библиотеке Pandas собраны в книге “Pandas. Работа с данными”. 
Python. Урок 5. Условные операторы и циклы : 33 комментария
Подскажите, пожалуйста, что делать, если знаки” == “и “!=” не выделяются отдельным цветом и, соответственно, не дают никакого результата?
Приведите пример код пожалуйста!
Если верно понимаю, Вы не правильно записываете команду
Получается так, что Вы говорите программе, чтобы она описала строчное значение, указанное в “”
В данным случае, Вам нужно применить оператор if и написать:
if name == “0”:
print (“False”)
Таким образом вы даете программе условие, что:
если переменная равна значению “0” (строчному значению)
то выводи False
Подскажите пожалуйста как добавить список в условный оператор.
Например мне нужно написать область допустимых имён
name=[“Иван”, “ваня”, “ванюша”]- и нужно чтобы при введении одного из этих имён срабатовала одно из действий например:
if(name==”Иван”):
g=1+h
print(g)
Подскажите, пожалуйста, как сделать программу которая будет находить НОК 2-х натуральных чисел. Ввыденного числа ?
def find_NOK(number1, number2):
if number1 < number2:
number1, number2 = number2, number1
for x in range(number2):
if number1*(x+1)%number2 == 0:
return number1*(x+1)
return number1*number2
a, b = map (int, input().split(', '))
print(find_NOK(a, b))
В последнем примере:
word_str = “Hello, world!”
for l in word_str:
print(l)
это i (ай с точкой) такое после for и в скобках в print?
Это l – от слова letter – буква. Хотя сейчас бы я поставил символ ‘c’ вместо нее.
Доброго времени.
подскажите как можно реализовать такой код?
Если “А” имеет значение то выполнить следующее условие если “А”не имеет значение выход.
Следующие условие, “B” имеет значение записать в таблицу 1, если нет то в таблицу 2.
получается условие в условии.
Помогите это простая задача из ОГЭ, но я только начал изучать Питон, пише что ошибка(SyntaxError: invalid syntax) в 5ой строке
s=int(input())
i=0
b=0
while s!=0:
if s % 2 = 0: #ошибка тут
i+=1
s=int(input())
elif s%10=3:
b+=1
s=int(input())
if i>b:
i=i-b
print(“Четных больше, на”+str(i))
elif b<i:
i=b-i
print("Оканчивающихся на 3 больше, на"+str(i))
else:
print("Их одинакое кол-во – "+str(i))
Решил проблему сам
Друзья, подскажите почему в этой задаче не выводится последнее четное число то бишь “26”, и как добиться того чтобы оно выводилось?
”’Дан диапазон чисел вывести четные”’
a=[1,5,18,26,10]
for i in range(1,max(a)):
if i not in a:
continue
if i % 2==0:
print(i)
Функция range генерирует все числа указанные в диапазоне не включая последнее.
Поэтому:
range(1, max(a) + 1)
Что будет выведено в результате данного сравнения: if (1>0 ? false : true) print “true” else print “false”
Здравствуйте! Подскажите что неправильно в моем коде?
p.s только начинаю не судите строго)))
a=int(input(“введите число: “)
b=int(input(“введите число: “)
c=a%2
f=b%2
if c==5:
print(“Нечетное число”)
elif f==2:
print(“Нечетное число”)
else:
print(“Bad”)
a=int(input(“ENTER YOUR WRONG NUMBER” ))
if a%2==0:
print(” ЧЁТНОЕ ЧИСЛО”)
elif a%2==1:
print(“НЕ ЧЁТНОЕ ЧИСЛО”)
Такой вариант по лучше
Оператор continue запускает цикл заново, при этом код, расположенный после данного оператора, не выполняется.
Но ведь оператор continue переходит на следующий шаг цикла, и при этом цикл продолжается, а не выполняется заново
Помогите, пожалуйста, решить:
Напишите программу, которая получает три числа – рост трёх спортсменов, и выводит сообщение «По росту.», если они стоят по возрастанию роста, или сообщение «Не по росту!», если они стоят не по росту.
a = int(input())
b = int(input())
c = int(input())
if a < b and a < c and b < c:
print("По росту")
else:
print('Не по росту')
my_list = [1, 5, 2, 7, 100, 9, 5]
def quick_sort(arr):
if len(arr) <= 1:
return arr
stand = arr[0]
left = list(filter(lambda x:x stand , arr))
return quick_sort(left) + center + quick_sort(right)
print(quick_sort(my_list)) надо сделать на ооп помогите пожалуйста. Заранее большое спасибо. )
Здравствуйте! Выполнится ли следующее условие? Что выведется на экран?
a = 8
if a:
print(a)
g = int(input(2))
while g ==2:
if 2==2:
print(“1”)
continue
elif g<0:
print("1")
continue
else:
print("2")
что делать код не работает, мне надо чтобы мне постоянно задавало вопрос пока я не впишу 2
Какой вопрос?
while True:
a = int(input())
if a == 2:
print(“Конец”)
break
else:
print(“Какой вопрос?”)
continue
почему у меня код не работает?
Здравствуйте, помогите решить! Сеня и Витя играют в школу магии и распределяют друзей по факультетам. В их игре факультета всего два. Для каждого из друзей они сравнивают показатель ума (x) и показатель храбрости (y). Если первый больше, друг отправляется на факультет с кодовым номером A, а если второй – на факультет с номером В.
Даны четыре числа: x, y, A и B. Выведи А, если x больше y, или В, если y больше x.
Если совсем уж просто то вот так:
x = int(input(“Введи показатель ума: “))
y = int(input(“Введи показатель храбрости: “))
Если позволить себе чуточку пофантазировать, то я нафантазировал следующее:
user_vvod = None
names_A = []
names_B = []
x = 0
y = 0
print(“Сеня и Витя набирают друзей на свои факультеты”)
print(“Заполни правильно предлагаемые поля и попади на факультет…\n”)
while user_vvod != ‘N’:
user_vvod = input(“Продолжим? Y/N: “)
user_vvod = user_vvod.upper()
while x == 0:
try:
x = int(input(“Введи показатель ума: “))
except:
print(“Это не показатель ума…”)
while y == 0:
try:
y = int(input(“Введи показатель храбрости: “))
except:
print(“Это не показатель храбрости…”)
if x > y:
names_A.append(name)
else:
names_B.append(name)
user_vvod = None
x = 0
y = 0
print(“\nСеня набрал следующих студентов:”)
for i in names_A:
print(i, end=’ ‘)
print()
print(“\nВитя набрал следующих студентов:\n”)
for j in names_B:
print(j, end=’ ‘)
Уважаемые администраторы! Сделайте пожалуйста так, чтобы пробелы не удалялись…