结束a";而";循环python?

结束a";而";循环python?,python,Python,这可能是一个非常愚蠢的问题,但我不明白为什么这个循环没有结束。我知道虽然True是一个无限循环,但我很确定也有办法摆脱它们。是否有人知道如何结束此代码,这样,如果他们输入“是”等,代码将在程序中继续,但如果他们输入“否”等,或任何其他内容,代码将再次询问他们的姓名 while True: user_name = input("What do you want your name to be? (Suggest using Forename and Surname!")

这可能是一个非常愚蠢的问题,但我不明白为什么这个循环没有结束。我知道
虽然True
是一个无限循环,但我很确定也有办法摆脱它们。是否有人知道如何结束此代码,这样,如果他们输入“是”等,代码将在程序中继续,但如果他们输入“否”等,或任何其他内容,代码将再次询问他们的姓名

while True:
  user_name = input("What do you want your name to be? (Suggest using Forename and Surname!")
  user_name_check = input("Your name is " + user_name + "? Is this correct?")

  if user_name_check == "yes" or "Yes" or "y" or "Y":
    break
  elif user_name_check == "no" or "No" or "n" or "N":
    pass
  else:
    print("Sorry, please only enter yes or no. Re-enter your name and try again.")
    pass
试一试


不能那样工作。查看副本。
if user\u name\u check.lower().startswith(“y”)
if语句始终为True,因为您检查字符串“Yes”的计算结果是否为True。请尝试使用user\u name\u check in(“yes”、“yes”、“y”),我认为if语句的工作方式与您认为的不一样。您需要检查每种情况。相反,如果用户名签入[“是”、“是”、“y”、“y”]:顺便说一句,你的最后一次
通过是多余的。第二个条件同上是的,谢谢你的帮助:)
if user_name_check == "yes" or user_name_check == "Yes" or user_name_check == "y" or user_name_check == "Y":