Добавление нескольких элементов в список в 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 
  • Проблемы с компилятором с помощью pip во время установки numpy в Windows 8.1, 7 Enterprise и 7 Home Editions
  • Сериализация члена Enum для JSON
  • cx-freeze, runpy и многопроцессорность - несколько путей к сбою
  • Утилита Messy Python? (OS X)
  • Как установить PyGame на Python 3.4?
  • Как уничтожить файл .exe (не преобразованный из py), запустив его как один и тот же скрипт
  • Производительность строки - Python 2.7 vs Python 3.4 под Windows 10 против Ubuntu
  • Каков правильный способ очистки после прерывания цикла событий?
  • Python - лучший язык программирования в мире.