За да видите актуализирания курс DevOps (101DaysofDevOps)

Връзка за регистрация на курс: https://www.101daysofdevops.com/register/

Връзка към курса: https://www.101daysofdevops.com/courses/101-days-of-devops/

Връзка към YouTube: https://www.youtube.com/user/laprashant/videos

Добре дошли в Ден 87 от 100 дни на DevOps, Фокусът за днес е While/For Loop Python

С цикъл 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

Тъй като това условие винаги е True, това ще доведе до вечно изпълнение на цикъла. За да излезете от безкраен цикъл, използвайте Ctrl+c

Прекъсване: Накара оператора да излезе от цикъла, без да проверява отново условието

test = 0
while (test < 10):
    print(test)
    test = test + 1
    if test == 5:
        break

Изход

0
1
2
3
4

Продължи

В случай на оператор за продължаване, когато изпълнението на програмата достигне оператора за продължаване, изпълнението на програмата веднага се връща към началото на цикъла 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 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


Възможно е да има ситуация, в която може да се наложи да знаем колко пъти се повтаря даден елемент в низ. Има много начини да направите това, но най-лесният начин е да използвате модул за колекции

>>> 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

Очаквам с нетърпение да се присъедините към това пътуване и да отделяте минимум час всеки ден през следващите 100 дни за работа с DevOps и да публикувате напредъка си, като използвате някой от носителите по-долу.

Справка