我的任务是编写一个程序,要求用户输入它存储在列表中的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!')
Run Code Online (Sandbox Code Playgroud)
我必须能够生成一个随机名称.
Man*_*rth 22
=
运算符的左侧需要是变量.你在这里做的是告诉python:"你知道第一个吗?把它设置为输入的字符串." 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]))
Run Code Online (Sandbox Code Playgroud)
使用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]))
Run Code Online (Sandbox Code Playgroud)
try*_*arn 11
只需添加1个可能产生相同错误的方案:
如果您尝试将值分配给多个变量,那么您也将收到相同的错误.例如
在C(以及许多其他语言)中,这是可能的:
int a =2, b=3;
Run Code Online (Sandbox Code Playgroud)
在Python中:
a= 2, b= 5
Run Code Online (Sandbox Code Playgroud)
将给出"无法分配给文字"的错误
您正尝试分配文字整数值.1
,2
等等不是有效名称; 它们只是有效的整数:
>>> 1
1
>>> 1 = 'something'
File "<stdin>", line 1
SyntaxError: can't assign to literal
Run Code Online (Sandbox Code Playgroud)
您可能想要使用列表或字典:
names = []
for i in range(1, 6):
name = input("Please enter name {}:".format(i))
names.append(name)
Run Code Online (Sandbox Code Playgroud)
使用列表也可以更容易地选择随机值:
winner = random.choice(names)
print('Well done {}. You are the winner!'.format(winner))
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
101070 次 |
最近记录: |