За да видите актуализирания курс 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 и да публикувате напредъка си, като използвате някой от носителите по-долу.
- Twitter: @100daysofdevops ИЛИ @lakhera2015
- Facebook: https://www.facebook.com/groups/795382630808645/
- Медиум: https://medium.com/@devopslearning
- Slack: https://devops-myworld.slack.com/messages/CF41EFG49/
- Връзка към GitHub: https://github.com/100daysofdevops
Справка