将多个元素添加到 Python 中的列表
Adding multiple elements to a list in Python
我正在尝试用 Python 写一些像钢琴一样的东西。用户输入的每个数字都会播放不同的声音。
- 系统会提示用户他们希望能够按下多少个键(迭代)。
- 他们将被提示输入一个声音的数字,次数与他们输入迭代次数相同。每个数字都是不同的声音。
- 它将播放声音。
我在使用 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]
是否有任何想法可以将每个数字附加到列表中,或者是否有更有效的方法?
您应该在函数中做的第一件事是初始化一个空列表。然后你可以循环正确的次数,并且在 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
打印"Numbers List - {0}".format(userNum(5))
为声音输入一个数字:9
为声音输入一个数字:1
为声音输入一个数字:2
为声音输入一个数字:0
为声音输入一个数字:5
号码列表 - [9, 1, 2, 0, 5]
您可以简单地 return 列表 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 写一些像钢琴一样的东西。用户输入的每个数字都会播放不同的声音。
- 系统会提示用户他们希望能够按下多少个键(迭代)。
- 他们将被提示输入一个声音的数字,次数与他们输入迭代次数相同。每个数字都是不同的声音。
- 它将播放声音。
我在使用 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]
是否有任何想法可以将每个数字附加到列表中,或者是否有更有效的方法?
您应该在函数中做的第一件事是初始化一个空列表。然后你可以循环正确的次数,并且在 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
打印"Numbers List - {0}".format(userNum(5))
为声音输入一个数字:9
为声音输入一个数字:1
为声音输入一个数字:2
为声音输入一个数字:0
为声音输入一个数字:5
号码列表 - [9, 1, 2, 0, 5]
您可以简单地 return 列表 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