带条件的错误输入行为

2024-09-28 22:21:14 发布

您现在位置:Python中文网/ 问答频道 /正文

如果用户没有键入mf作为性别,我尝试将其重置。你知道吗

GenderSelect = input("Are they male or female?(m/f)\n")

os.system("clear")
gerror = 1
while gerror == 1:
    os.system("cls")
    print("Create a name for your new friend.\n" + NameCreate + "\nHow old are they?\n" + str(AgeSelect))
    input("Are they male or female?(m/f)\n")
    if (GenderSelect.lower() == "m"):
        print("Name: " + NameCreate + "\nAge: " + str(AgeSelect) + "\nGender: Male\n")
        gerror = 0
    if (GenderSelect.lower() == "f"):
        print("Name: " + NameCreate + "\nAge: " + str(AgeSelect) + "\nGender: Female\n")
        gerror = 0
    if (not(GenderSelect.lower() == "f" GenderSelect.lower() == "m")):
        gerror = 1

Confirm = input("Is this correct?\n")

if(Confirm.lower() == "y" or Confirm.lower() == "yes"):

当我键入fm时,它会重置,但如果我键入其他内容,它不会重置


Tags: orinput键入iflowerareconfirm重置
2条回答

有几个问题:

  1. 对于相互排斥的事物,使用elif而不是if
  2. gerror块中的最后一个if语句中,两个条件之间需要一个or。或者直接用else。你知道吗

您的这部分代码:

if (GenderSelect.lower() == "f"):
    print("Name: " + NameCreate + "\nAge: " + str(AgeSelect) + "\nGender: Female\n")
    gerror = 0
if (not(GenderSelect.lower() == "f" GenderSelect.lower() == "m")):
    gerror = 1

应该是:

elif (GenderSelect.lower() == "f"):
    print("Name: " + NameCreate + "\nAge: " + str(AgeSelect) + "\nGender: Female\n")
    gerror = 0
else:
    gerror = 1

相关问题 更多 >