创建一个包含五个数字的列表
Creating a list of five numbers
我试图让 Python 提示用户选择五个号码并将它们存储在系统中。到目前为止我有:
def main():
choice = displayMenu()
while choice != '4':
if choice == '1':
createList()
elif choice == '2':
print(createList)
elif choice == '3':
searchList()
choice = displayMenu()
print("Thanks for playing!")
def displayMenu():
myChoice = '0'
while myChoice != '1' and myChoice != '2' \
and myChoice != '3' and myChoice != '4':
print ("""Please choose
1. Create a new list of 5 integers
2. Display the list
3. Search the list
4. Quit
""")
myChoice = input("Enter option-->")
if myChoice != '1' and myChoice != '2' and \
myChoice != '3' and myChoice != '4':
print("Invalid option. Please select again.")
return myChoice
#This is where I need it to ask the user to give five numbers
def createList():
newList = []
while True:
try:
num = (int(input("Give me five numbers:")))
if num < 0:
Exception
print("Thank you")
break
except:
print("Invalid. Try again...")
for i in range(5):
newList.append(random.randint(0,9))
return newList
一旦我 运行 程序允许我选择选项 1 并要求用户输入五个数字。但是,如果我输入多个数字,它会说无效,如果我只输入一个数字,它会说谢谢并再次显示菜单。我哪里错了?
使用 raw_input() 而不是 input()。
With Python 2.7 input() 将输入计算为 Python 代码,这就是您出错的原因。 raw_input() returns 用户输入的逐字字符串。在python3中可以使用input(),raw_input()没了。
my_input = raw_input("Give me five numbers:") # or input() for Python 3
numbers = [int(num) for num in my_input.split(' ')]
print(numbers)
@DmitryShilyaev 已正确诊断出问题。如果你想在一行中读取 5 个数字,你可以使用 split
拆分 input
returns 的字符串,并将该列表的每个元素转换为 int
.
numbers = [int(x) for x in raw_input("Give me five numbers: ").split()]
假设用户输入由空格分隔的数字,这将起作用。
我试图让 Python 提示用户选择五个号码并将它们存储在系统中。到目前为止我有:
def main():
choice = displayMenu()
while choice != '4':
if choice == '1':
createList()
elif choice == '2':
print(createList)
elif choice == '3':
searchList()
choice = displayMenu()
print("Thanks for playing!")
def displayMenu():
myChoice = '0'
while myChoice != '1' and myChoice != '2' \
and myChoice != '3' and myChoice != '4':
print ("""Please choose
1. Create a new list of 5 integers
2. Display the list
3. Search the list
4. Quit
""")
myChoice = input("Enter option-->")
if myChoice != '1' and myChoice != '2' and \
myChoice != '3' and myChoice != '4':
print("Invalid option. Please select again.")
return myChoice
#This is where I need it to ask the user to give five numbers
def createList():
newList = []
while True:
try:
num = (int(input("Give me five numbers:")))
if num < 0:
Exception
print("Thank you")
break
except:
print("Invalid. Try again...")
for i in range(5):
newList.append(random.randint(0,9))
return newList
一旦我 运行 程序允许我选择选项 1 并要求用户输入五个数字。但是,如果我输入多个数字,它会说无效,如果我只输入一个数字,它会说谢谢并再次显示菜单。我哪里错了?
使用 raw_input() 而不是 input()。
With Python 2.7 input() 将输入计算为 Python 代码,这就是您出错的原因。 raw_input() returns 用户输入的逐字字符串。在python3中可以使用input(),raw_input()没了。
my_input = raw_input("Give me five numbers:") # or input() for Python 3
numbers = [int(num) for num in my_input.split(' ')]
print(numbers)
@DmitryShilyaev 已正确诊断出问题。如果你想在一行中读取 5 个数字,你可以使用 split
拆分 input
returns 的字符串,并将该列表的每个元素转换为 int
.
numbers = [int(x) for x in raw_input("Give me five numbers: ").split()]
假设用户输入由空格分隔的数字,这将起作用。