Python:无法分配给文字
我的任务是编写一个程序,要求用户输入5个存储在列表中的名称。接下来,它随机选择这些名称之一,并宣布该人为获胜者。唯一的问题是,当我尝试运行它时,它说can't
assign to literal
。
这是我的代码:
import random
1=input("Please enter name 1:")
2=int(input('Please enter name 2:'))
3=int(input('Please enter name 3:'))
4=int(input('Please enter name 4:'))
5=int(input('Please enter name 5:'))
name=random.randint(1,6)
print('Well done '+str(name)+'. You are the winner!')
我必须能够生成一个随机名称。
-
=
操作员的左侧需要为变量。您在这里所做的就是告诉python:“您知道数字1吗?将其设置为输入的字符串。”。1
是文字数字,而不是变量。1
始终是1
,您无法将其“设置”为其他内容。变量就像一个可以在其中存储值的盒子。
1
是可以存储在变量中的值。该input
调用返回一个字符串,这是另一个可以存储在变量中的值。而是使用列表:
import random namelist = [] namelist.append(input("Please enter name 1:")) #Stored in namelist[0] namelist.append(input('Please enter name 2:')) #Stored in namelist[1] namelist.append(input('Please enter name 3:')) #Stored in namelist[2] namelist.append(input('Please enter name 4:')) #Stored in namelist[3] namelist.append(input('Please enter name 5:')) #Stored in namelist[4] nameindex = random.randint(0, 5) print('Well done {}. You are the winner!'.format(namelist[nameindex]))
使用for循环,您可以减少更多:
import random namecount = 5 namelist=[] for i in range(0, namecount): namelist.append(input("Please enter name %s:" % (i+1))) #Stored in namelist[i] nameindex = random.randint(0, namecount) print('Well done {}. You are the winner!'.format(namelist[nameindex]))