В этом уроке рассмотрим оператор ветвления if и операторы цикла while и for. Основная цель – это дать общее представление об этих операторах и на простых примерах показать базовые принципы работы с ними.
Условный оператор ветвления if
Оператор ветвления if позволяет выполнить определенный набор инструкций в зависимости от некоторого условия. Возможны следующие варианты использования.
1. Конструкция if
Синтаксис оператора if выглядит так.
if выражение: инструкция_1 инструкция_2 ... инструкция_n
После оператора if записывается выражение. Если это выражение истинно, то выполняются инструкции, определяемые данным оператором. Выражение является истинным, если его результатом является число не равное нулю, непустой объект, либо логическое True. После выражения нужно поставить двоеточие “:”.
ВАЖНО: блок кода, который необходимо выполнить, в случае истинности выражения, отделяется четырьмя пробелами слева!
Примеры:
if 1: print("hello 1")
Напечатает: hello 1
a = 3 if a == 3: print("hello 2")
Напечатает: hello 2
a = 3 if a > 1: print("hello 3")
Напечатает: hello 3
lst = [1, 2, 3] if lst : print("hello 4")
Напечатает: hello 4
2. Конструкция if – else
Бывают случаи, когда необходимо предусмотреть альтернативный вариант выполнения программы. Т.е. при истинном условии нужно выполнить один набор инструкций, при ложном – другой. Для этого используется конструкция if – else.
if выражение: инструкция_1 инструкция_2 ... инструкция_n else: инструкция_a инструкция_b ... инструкция_x
Примеры.
a = 3 if a > 2: print("H") else: print("L")
Напечатает: H
a = 1 if a > 2: print("H") else: print("L")
Напечатает: L
Условие такого вида можно записать в строчку, в таком случае оно будет представлять собой тернарное выражение.
a = 17 b = True if a > 10 else False print(b)
В результате выполнения такого кода будет напечатано: True
3. Конструкция if – elif – else
Для реализации выбора из нескольких альтернатив можно использовать конструкцию if – elif – else.
if выражение_1: инструкции_(блок_1) elif выражение_2: инструкции_(блок_2) elif выражение_3: инструкции_(блок_3) else: инструкции_(блок_4)
Пример.
a = int(input("введите число:")) if a < 0: print("Neg") elif a == 0: print("Zero") else: print("Pos")
Если пользователь введет число меньше нуля, то будет напечатано “Neg“, равное нулю – “Zero“, большее нуля – “Pos“.
Оператор цикла while
Оператор цикла while выполняет указанный набор инструкций до тех пор, пока условие цикла истинно. Истинность условия определяется также как и в операторе if. Синтаксис оператора while выглядит так.
while выражение:
инструкция_1
инструкция_2
...
инструкция_n
Выполняемый набор инструкций называется телом цикла.
Пример.
a = 0 while a < 7: print("A") a += 1
Буква “А” будет выведена семь раз в столбик.
Пример бесконечного цикла.
a = 0 while a == 0: print("A")
Операторы break и continue
При работе с циклами используются операторы break и continue.
Оператор break предназначен для досрочного прерывания работы цикла while.
Пример.
a = 0 while a >= 0: if a == 7: break a += 1 print("A")
В приведенном выше коде, выход из цикла произойдет при достижении переменной a значения 7. Если бы не было этого условия, то цикл выполнялся бы бесконечно.
Оператор continue запускает цикл заново, при этом код, расположенный после данного оператора, не выполняется.
Пример.
a = -1 while a < 10: a += 1 if a >= 7: continue print("A")
При запуске данного кода символ “А” будет напечатан 7 раз, несмотря на то, что всего будет выполнено 11 проходов цикла.
Оператор цикла for
Оператор for выполняет указанный набор инструкций заданное количество раз, которое определяется количеством элементов в наборе.
Пример.
for i in range(5): print("Hello")
В результате “Hello” будет выведено пять раз.
Внутри тела цикла можно использовать операторы break и continue, принцип работы их точно такой же как и в операторе while.
Если у вас есть заданный список, и вы хотите выполнить над каждым элементом определенную операцию (возвести в квадрат и напечатать получившееся число), то с помощью for такая задача решается так.
lst = [1, 3, 5, 7, 9] for i in lst: print(i ** 2)
Также можно пройти по всем буквам в строке.
word_str = "Hello, world!" for l in word_str: print(l)
Строка “Hello, world!” будет напечатана в столбик.
На этом закончим краткий обзор операторов ветвления и цикла.
P.S.
Если вам интересна тема анализа данных, то мы рекомендуем ознакомиться с библиотекой Pandas. На нашем сайте вы можете найти вводные уроки по этой теме. Все уроки по библиотеке Pandas собраны в книге “Pandas. Работа с данными”.
<<< Python. Урок 4. Арифметические операции Python. Урок 6. Работа с IPython и Jupyter Notebook >>>
Подскажите, пожалуйста, что делать, если знаки” == “и “!=” не выделяются отдельным цветом и, соответственно, не дают никакого результата?
Приведите пример код пожалуйста!
print(“0 == False”)
Если верно понимаю, Вы не правильно записываете команду
Получается так, что Вы говорите программе, чтобы она описала строчное значение, указанное в “”
В данным случае, Вам нужно применить оператор if и написать:
if name == “0”:
print (“False”)
Таким образом вы даете программе условие, что:
если переменная равна значению “0” (строчному значению)
то выводи False
Подскажите пожалуйста как добавить список в условный оператор.
Например мне нужно написать область допустимых имён
name=[“Иван”, “ваня”, “ванюша”]- и нужно чтобы при введении одного из этих имён срабатовала одно из действий например:
if(name==”Иван”):
g=1+h
print(g)
Можно вот так:
>>> name=[“Иван”, “ваня”, “ванюша”]
>>> if “Иван” in name:
print(“hello!”)
hello!
nope
Да)))
Подскажите, пожалуйста, как сделать программу которая будет находить НОК 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”)
Там f==5
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)
8
Если в третье строчке есть отступ, то программа выведет 8, так как условие истинно.
Если в третьей строчке есть отступ, то программа напечатает 8, так как условие истинно. Иначе выдаст ошибку.
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
a=input()
if a==O:
print(“BIR”)
else:
print(“JOK”)
почему у меня код не работает?
a=int(input()
a = int(input(‘\n\nВведите: ‘))
if a == 0: #Введите True: 0 | Введите Folse: 1 , 2 ….
print(‘BIR’)
else:
print(‘JOK’)
Здравствуйте, помогите решить! Сеня и Витя играют в школу магии и распределяют друзей по факультетам. В их игре факультета всего два. Для каждого из друзей они сравнивают показатель ума (x) и показатель храбрости (y). Если первый больше, друг отправляется на факультет с кодовым номером A, а если второй – на факультет с номером В.
Даны четыре числа: x, y, A и B. Выведи А, если x больше y, или В, если y больше x.
Если совсем уж просто то вот так:
x = int(input(“Введи показатель ума: “))
y = int(input(“Введи показатель храбрости: “))
if x > y:
print(“A”)
else:
print(“B”)
Если позволить себе чуточку пофантазировать, то я нафантазировал следующее:
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()
if user_vvod == ‘N’:
break
else:
name = input(“Введи имя: “)
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=’ ‘)
Уважаемые администраторы! Сделайте пожалуйста так, чтобы пробелы не удалялись…
Подскажите, пожалуйста как решить?
while True:
a = int(input(‘Зайдёте? Да/Нет: ‘))
a =[‘Да’]
if a ==’Да’:
print(‘Привет!’)
print(‘Добро пожаловать!’)
print(‘Следующий.\n’)
else:
print(‘Следующий.\n’)
ВОТ ДЕРЖИ :
name = [‘Иван’, ‘ваня’, ‘ванюша’]
name_= input(‘\nВведите имя: ‘)
if name_ == name[0]:
print(‘Добропожаловать: ‘, name_)
elif name_ == name[1]:
print(‘Добропожаловать: ‘, name_)
elif name_ == name[2]:
print(‘Добропожаловать: ‘, name_)
else:
print(‘Извините ‘, name_ , ‘но я вас незнаю’)
Помогите решить пожалуйста
Определите, что выведет данная программа.
a=0
while a!=7
a=a+1
if a==5:
continue
print (a)