В прошлый раз, я остановился на функции play_musik(0). Встретив эту функцию, Python понимает, что я хочу выполнить действия, описанные в ней. А в ней только одно действие
return os.path.join(musik_PLAY_dir,LIST_FILE[nomer_file])
Результатом выполнения данной функции будет получения имени файла, который я хочу запустить (mp3). Напомню, переменная LIST_FILE содержит список фалов из директории "d/12" – [1.mp3, 2.mp3]. К каждому элементу такого списка я обращаюсь по индексу -
LIST_FILE[0]) = 1.mp3
Я уже рассказал о типах данных, таких, как числа и строки. Списки это уже наборы данных.
Вывести список на экран
Если я хотел вывести строку на экран, то писал print(‘строка’), для вывода переменной - print(переменная). Если я запишу print(список), то Python выведет список - [список]. Т.е. команда
print(LIST_FILE), выведет список [1.mp3, 2.mp3…].
Но если мне нужно вывести нулевой элемент списка, то запишу так
print(LIST_FILE[0])
Для вывода всех элементов списка я воспользовался циклической конструкцией Python.
Для существования циклической конструкции for необходимо два существенных момента
- счетчик цикла
- начальное и конечное значение счетчика
for счетчик цикла infile_ В моем случае file_ - счетчик цикла, а list_file задает конечное и начальное значение счетчика. Счетчик последовательно принимает значение от «начального до конечного» и выполняет действия внутри циклического блока. Например, мне нужно сложить числа от одного до десяти, как я поступлю?
Задам переменную, которая будет содержать список:
Spisok = [1,2,3,4,5,6,7,8,9,10]
И задам переменную Summa=0
Далее запишу цикл for
for count in Spisok:
______Summa=Summa+count
Вначале count=1, выполняется команда Summa=0+1=1, затем count=2, выполняется команда Summa=1+2=3 и т.д. Цикл закончится тогда, когда count=10. Данную конструкцию можно было и иначе записать:
for count in range(1,10):
_________Summa=Summa+count
Командой range, я задаю диапазон от одного до десяти, который должна принимать переменная count
Циклом for я могу создать конечный цикл, значения счетчика известны программе. Но, что если мне нужно создать цикл, в котором неизвестно число повторений.
Цикл while
Для начала скажу, такого рода циклы можно применить для зацикливания программы, чтобы программа не завершалась, а ждала какого-то действия. Например, при разработке игры¸ нужно учесть - игра постоянно ожидает нажатия клавиши от игрока – вперед назад или прыжок. И в зависимости от нажатой клавиши выполняет определенные действия. Пока игрок не нажмет «esc» игра будет продолжаться. Такую цикличную конструкция на языке Python можно записать так:
- while <условие>:
__________действие 1
__________действие 2
…………………………
Пока условие истинно, будут выполняться действия внутри блока цикла.
Напомню, символом «_» я показываю нажатие клавиши «таб»
Для организации цикла while необходимо два условия:
- условие входа в цикл
- условие выхода из цикла
Если я запишу цикл while таким образом
run = True
while True:
____Q=input("Введите строку ")
То цикл будет "вечно" ждать от меня ввода с клавиатуры строки и присваивать эту строку переменной Q. Т.е. бесконечно будет выполняться команда input, потому что переменная run будет всегда True, и цикл будет выполняться пока run истина. С практической точки циклическая конструкция выше бесполезна, просто бесконечный цикл, в котором нет условия выхода. Но если я немного перепишу код:
run = True
while run:
____Q=input("Введите строку ")
____if Q='До встречи':
__________break
Программа будет выполняться до тех пор, пока я с клавиатуры не напишу строку - "До встречи". Если я введу строку "До встречи" выполняется команда break, принудительного выхода из цикла. Данную конструкцию можно записать и иначе. Просто нужно учесть, что переменная run определяет условие входа в цикл, пока она "истина" цикл выполняется, значить эта переменная может быть и точкой выхода из цикла:
run = True
while run:
____Q=input("Введите строку ")
____if Q='До встречи':
__________run = False
После того как я введу строку 'До встречи', переменной run присваивается значение False и значит цикл останавливается.
Конструкция выше несет уже более практичную пользу. Например, я могу создать бесконечный диалог с Розалией, пока не скажу ей "пока".
Для тех, кто не знает, кто такая Розалия - фундамент === >> здесь
А для тех, кто не хочет возвращаться к истокам, напомню, канал посвящен изучению языка программирования Python. Изучать язык я предлагаю на реальных примерах - от создания искусственного интеллекта до реализации собственной игры.
Розалия - это часть цели, которую я поставил в начале. Некоторый искусственный интеллект, помогающий в вопросах автоматизации информационных процессов. А для эффективного освоения я создал телеграм канал, подписывайтесь, подключайтесь, оставайтесь в теме.
В телеграм канал вы найдете задание к теме и еще много дополнительной информации.