С помощью цикла while мы можем заставить блок кода выполняться до тех пор, пока оператор while имеет значение True
test = 0 while ( test < 5): print("hello") test = test + 1 hello hello hello hello hello
Здесь, как только выполнение достигает конца блока оператора while, оно возвращается к началу для повторной проверки условия. Мы инициализируем test=0 и пока значение теста меньше 5, проверяем условие и печатаем приветствие.
Когда выполнение проходит через цикл, мы называем это итерацией, мы говорим это, пока цикл повторяется 5 раз.
Но давайте посмотрим на два других случая
- Если забыть инициализировать значение, я получу сообщение об ошибке
while n < 5: print(n) n = n+1
Вывод
Traceback (most recent call last): File “/Users/plakhera/Documents/python_testing/test.py”, line 1, in <module> while n < 5: NameError: name ’n’ is not defined Process finished with exit code 1
- Если я забуду увеличить значение, получится бесконечный цикл
n = 0 while n < 5: print(n)
Бесконечный цикл
>>> while True: … print(“hello”) … hello hello hello
Поскольку это условие всегда истинно, цикл будет выполняться вечно. Чтобы выйти из бесконечного цикла, используйте Ctrl+c
Break. Вызывает выход оператора из цикла без повторной проверки условия
test = 0 while (test < 10): print(test) test = test + 1 if test == 5: break
Вывод
0 1 2 3 4
Продолжить
В случае оператора continue, когда выполнение программы достигает оператора continue, выполнение программы немедленно возвращается к началу цикла while и повторно проверяет условие, и именно поэтому test==5 никогда не выполняется
test = 0 while (test < 6): test = test + 1 if test == 5: continue print("Current Value of test: " + str(test))
Вывод
Current Value of test: 1 Current Value of test: 2 Current Value of test: 3 Current Value of test: 4 Current Value of test: 6
Цикл For
Цикл For используется, когда мы хотим выполнить итерацию определенное количество раз.
for i in range(5): print(i)
Вывод
0 1 2 3 4
Сумма первых 100 чисел
total = 0 #Because it goes one less for i in range(101): total = total + i print(total)
Вывод
5050
ИЛИ еще один любимый вопрос интервью, выведите все четные числа от 0 до n
for i in range(0,11,2): print(i)
Вывод
0 2 4 6 8 10
Подведем итоги
Давайте попробуем решить еще несколько задач
В этой задаче нам нужно посчитать количество гласных в строке
s = 'welcome to the world of python' count = 0 for i in s: if (i == "a" or i == "e" or i == "i" or i == "o" or i == "u"): count += 1 print(count)
Есть ли лучший способ написать тот же код?
s = 'welcome to the world of python' count = 0 vowels = ["a","e","i","o","u"] for i in s: if i in vowels: count += 1 print(count)
Но этот код не будет работать, если у нас есть гласные, такие как AEIOU
s = 'welcOmE to the world of python'
Он вернет только 6 гласных
Существует несколько способов решения этой проблемы, но самый простой из них на данный момент – использование функции lower()
s = 'welcOmE to the world of python' s = s.lower() count = 0 vowels = ["a","e","i","o","u"] for i in s: if i in vowels: count += 1 print(count)
Позже, когда мы перейдем к регулярному выражению, мы увидим, что ту же проблему можно решить с помощью регулярного выражения
>>> import re >>> s = ‘welcOmE to the world of python’ >>> vowels = re.findall(‘[aeiou]’,s,re.IGNORECASE) >>> print(len(vowels)) 8
Возможна ситуация, когда нам может понадобиться узнать, сколько раз элемент gives повторяется в строке. Есть несколько способов сделать это, но проще всего использовать модуль коллекций
>>> from collections import Counter >>> s ‘welcOmE to the world of python’ >>> a = Counter(s) >>> print(a) Counter({‘ ‘: 5, ‘o’: 4, ‘t’: 3, ‘w’: 2, ‘e’: 2, ‘l’: 2, ‘h’: 2, ‘c’: 1, ‘O’: 1, ‘m’: 1, ‘E’: 1, ‘r’: 1, ‘d’: 1, ‘f’: 1, ‘p’: 1, ‘y’: 1, ’n’: 1})
Возьмем еще один случай, когда мне нужно узнать, сколько раз prash повторяется в этой строке
s = 'hello my name is prash and the last name is prash too' count = 0 for i in range(len(s)): if s[i:i+5] == "prash": count += 1 print(count) 2
Итак, в конце 9-го дня. Если у вас возникнут какие-либо проблемы, это ссылка на канал Python Slack https://devops-myworld.slack.com
Пожалуйста, пришлите мне свои данные
* Имя
* Фамилия
* Адрес электронной почты
на [email protected], чтобы я добавил вас в этот слабый канал