С помощью цикла 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], чтобы я добавил вас в этот слабый канал