Добавление нескольких элементов в список в Python

Я пытаюсь написать что-то в Python, что будет похоже на пианино. Каждый номер, который вводит пользователь, будет воспроизводить другой звук.

  1. Пользователю будет предложено указать, сколько ключей они хотят нажимать (итерации).
  2. Им будет предложено количество для звука столько же раз, сколько они были введены для итераций. Каждый номер отличается от другого.
  3. Он будет воспроизводить звуки.

У меня возникают проблемы с функцией userNum . Мне нужны все числа, которые они вводят для добавления звуков в список, а затем другая функция будет читать список и воспроизводить каждый звук соответственно. Это то, что у меня есть до сих пор:

 #Gets a user input for each sound and appends to a list. def userNum(iterations): for i in range(iterations): a = eval(input("Enter a number for sound: ")) myList = [] while True: myList.append(a) break print(myList) return myList 

Это то, что печатный список выглядит с кодом, который у меня есть до сих пор:

 >>> userNum(5) Enter a number for sound: 1 Enter a number for sound: 2 Enter a number for sound: 3 Enter a number for sound: 4 Enter a number for sound: 5 [5] 

Любые мысли о способе заставить его добавить каждый номер в список или, если есть более эффективный способ сделать это?

3 Solutions collect form web for “Добавление нескольких элементов в список в Python”

Первое, что вы должны сделать в своей функции, – инициализировать пустой список. Затем вы можете зациклировать правильное количество раз, и в цикле for вы можете append в myList . Вы также должны избегать использования eval и в этом случае просто используйте int для преобразования в целое число.

 def userNum(iterations): myList = [] for _ in range(iterations): value = int(input("Enter a number for sound: ")) myList.append(value) return myList 

тестирование

 >>> userNum(5) Enter a number for sound: 2 Enter a number for sound: 3 Enter a number for sound: 1 Enter a number for sound: 5 Enter a number for sound: 9 [2, 3, 1, 5, 9] 

def userNum (итерации):

 number_list = [] while iterations > 0: number = int(input("Enter a number for sound : ")) number_list.append(number) iterations = iterations - 1 return number_list 

print "Numbers List – {0}". format (userNum (5))

Введите номер для звука: 9

Введите номер для звука: 1

Введите номер для звука: 2

Введите число для звука: 0

Введите номер для звука: 5

Список номеров – [9, 1, 2, 0, 5]

Вы можете просто вернуть список comp:

 def userNum(iterations): return [int(input("Enter a number for sound: ")) for _ in range(iterations) ] 

Если вы используете цикл, вы должны использовать цикл while и проверять ввод с помощью try / except:

 def user_num(iterations): my_list = [] i = 0 while i < iterations: try: inp = int(input("Enter a number for sound: ")) except ValueError: print("Invalid input") continue i += 1 my_list.append(inp) return my_list 
  • Python: Typeerror: непустая строка формата, переданная объекту .__ format__
  • Как перечислить все исключения, которые функция могла бы повысить в Python 3?
  • Переименование Python - получение значения перечисления при преобразовании строк
  • Python subprocess.Popen () с Pygame, как сказать Pygame ждать до тех пор, пока не будет выполняться подпроцесс
  • Как эмулировать socket.socketpair в Windows
  • Синтаксическая ошибка сценария Python 3.4.1,
  • Производительность строки - Python 2.7 vs Python 3.4 под Windows 10 против Ubuntu
  • Установить точку останова отладчика в конце функции без возврата
  • Запись фрейма данных pandas в таблицу документов Word через pywin32
  • настройка среды в virtaulenv с использованием python3, застрявшего на setuptools, pip, wheel
  • Захваченные переменные в «eval» в Python
  • Python - лучший язык программирования в мире.