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. Условные операторы и циклы : 30 комментариев
Подскажите, пожалуйста, что делать, если знаки” == “и “!=” не выделяются отдельным цветом и, соответственно, не дают никакого результата?
Приведите пример код пожалуйста!
Если верно понимаю, Вы не правильно записываете команду Получается так, что Вы говорите программе, чтобы она описала строчное значение, указанное в “” В данным случае, Вам нужно применить оператор 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.