我正在尝试创建一个授权过程,尽管未将名称分配给该未授权变量,它始终显示未授权名称。
我尝试了不同的代码组织方式,即不同的顺序,但是问题并没有得到改善。
Tessa=str
un = Tessa
n1=str
n2=str
input(n1("What is the name of player one?"))
if n1 == un:
print("Name unauthorised, try again")
else:
print ("Name authorised")
input(n2("What is the name of player two?"))
if n2 == un:
print("Name unauthorised, try again")
else:
print("Name authorised")
print("Welcome")
我希望除Tessa之外的任何其他输入名称都导致出现“名称已授权”这一短语,但会打印未授权的消息。”
答案 0 :(得分:1)
我不理解语句n1 = str
。请检查我的代码。
un = 'Tessa'
n1 = input("What is the name of player one?")
if n1 == un:
print("Name unauthorised, try again")
else:
print ("Name authorised")
n2 = input("What is the name of player two?")
if n2 == un:
print("Name unauthorised, try again")
else:
print("Name authorised")
print("Welcome")
,结果将如下所示。
What is the name of player one? lam
Name authorised
What is the name of player two? rio
Name authorised
Welcome
答案 1 :(得分:1)
您显然是Python的新手,因此,您应该修复以下问题:
n1 = str
。"my string value"
。鉴于这些,请考虑以下代码片段:
unauthorised_names = ["Tessa"]
player_names = []
while len(player_names) < 2:
name = input("Please enter a name for player {}:".format(len(player_names) + 1))
if name in unauthorised_names:
print("Unauthorised name, please try again")
else:
player_names.append(name)
print(player_names)
unauthorised_names
包含所有无法输入的名称。可以是一个,也可以是很多。
player_names
包含玩家的姓名。
运行它,直到获得足够数量的有效玩家名称为止,并带有while
循环
您以输入播放器的编号作为参数
检查它是否在无效名称列表中,如果不是,请存储它。
一旦名称正确,就可以继续执行程序。
答案 2 :(得分:0)
要进行输入并将值保留在n1
中,您需要执行以下操作:
n1 = str(input("What is the name of player one?"))
此外,我不知道您要带着n1 = str
等去哪儿,所以我建议您废弃它。