Добавить в корзинуПозвонить
Найти в Дзене

Типы данных. Часть 8.2

В прошлый раз, я остановился на функции 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]) Для вывода всех элементов списка я воспользовался циклической
Оглавление

В прошлый раз, я остановился на функции 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 необходимо два существенных момента

  1. счетчик цикла
  2. начальное и конечное значение счетчика

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 необходимо два условия:

  1. условие входа в цикл
  2. условие выхода из цикла

Если я запишу цикл 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. Изучать язык я предлагаю на реальных примерах - от создания искусственного интеллекта до реализации собственной игры.

Розалия - это часть цели, которую я поставил в начале. Некоторый искусственный интеллект, помогающий в вопросах автоматизации информационных процессов. А для эффективного освоения я создал телеграм канал, подписывайтесь, подключайтесь, оставайтесь в теме.

Искусственный интеллект
Искусственный интеллект

В телеграм канал вы найдете задание к теме и еще много дополнительной информации.