我正在尝试在Python中创建一个名称选择器。首先,我问用户列表中有多少个名字。然后用户可以输入这么多的名字。然后列表应该 Shuffle 所有的名字,并选择一个。但是,每次我这样做时,它总是选择用户输入的姓氏。我该怎么解决?
这是我的代码-
随机取名器使用说明
print("Hooray you decided to use a random name picker!")
print("\n")
print("Below you will be prompted on how to enter your list of names.")
print("\n")
n = int(input("How many names would you like to enter on the list today? Please press enter after you type in your number:" +" "))
list1 =[]
for i in range(n):
names = input("Please enter the name. Press enter when finished." +" ")
list1.append(names)
print("\nHere are the names you entered into the list:",list1)
answer = input("\nAre you ready to pick a name?" +" " "Press enter to continue.")
print("\n")
import random
list1 = []
random.shuffle(list1)
print(f"The name picked: {names}")
print("\n")
第一次 Shuffle 后列表-这部分也不行
random.shuffle(list1)
print(list1)
1条答案
按热度按时间9udxz4iz1#
虽然这个网站通常不提供辅导服务,但考虑到你的努力,我破例帮你。
开始,random.shuffle重新排列了一个项目列表,但没有选择其中一个项目,更好的功能是使用random.choice函数,它从列表中返回一个随机选择的项目。其次,如果你使用一种机制,比如使用stop来结束输入,就没有必要询问输入的名字的数量。
现在,代码做你想要的。
试图解释正在做什么。'' names_list``创建一个空列表来保存要输入的名称。
while True:
定义了一个while循环,该循环将永远运行或直到break
被执行为止。if resp.lower == 'quit'
做了几件事:首先,它使用lower来强制单词stop(如果键入的话)全部为小写字母,如果遇到,则将该单词与退出单词“quit”进行比较,这打破了while循环。names_list.append(resp)
导致新名称添加到names_list中。print(f"You Entered {len(names_list)} Names to include {', '.join(names_list)}" )
在一行中使用了几个python函数。1.它使用f字符串格式来构建复杂的print语句。
1.它使用
len(names_list)
来确定输入了多少个名称。1.它使用
', '.join(names_list)'
将列表转换成一个由逗号分隔的名字串,以便打印出列表中有多少个名字,并显示完整的名字列表。最后,行
print(f'I have selected {choice(names_list)} at Random')
使用f字符串格式创建一个可打印的行,该行使用随机函数选择来选择列表中的一个名称。希望这对你学习Python有所帮助。