Python:无法分配给文字

发布于 2021-01-29 19:09:12

我的任务是编写一个程序,要求用户输入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!')

我必须能够生成一个随机名称。

关注者
0
被浏览
142
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    =操作员的左侧需要为变量。您在这里所做的就是告诉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]))
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看