您好,我正在尝试检查“剪刀石头布”游戏的输入。 如果输入有效,则Check函数应该以小写形式返回输入。 否则将采用其他新输入,并调用相同的检查功能。 如果输入为(R,P,S,r,p,s),则代码工作正常
如果第一个输入无效,则采用新输入并检查直到提供有效输入为止。但是,如果第一个输入错误,该函数将返回None。
返回之前的简单检查(打印语句)表明已正确获取该值。
def check(x):
x=str.lower(x)
valid_input=['r','p','s']
print("Input value: "+str(x)) #simple check before if-else
if x in valid_input:
return x #valid input, return x
else:
print("Wrong Input!!!")
x=input("Enter r/p/s:") #taking new input
check(x) #checking if the new input is valid
x=input("Enter choice: ") #Input value
x=check(x) #Call check fucntion
print(x)
输入选择:A 输出:
输入值:a
输入错误!!!
输入r / p / s:s
输入值:s
没有
我输入无效的A时的解决方案如上所述。 该函数正在接受新输入,并且在return语句之前的示例检查中还显示新值(输入值:s)
答案 0 :(得分:0)
您需要从递归中返回值
def check(x):
x=str.lower(x)
valid_input=['r','p','s']
print("Input value: "+str(x)) #simple check before if-else
if x in valid_input:
return x #valid input, return x
else:
print("Wrong Input!!!")
x=input("Enter r/p/s:") #taking new input
-> return check(x) #checking if the new input is valid
x=input("Enter choice: ") #Input value
x=check(x) #Call check fucntion
print(x)