尝试将输入字符串转换为in时的“int的文本无效”

2024-10-01 00:23:58 发布

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

我试过把输入设为整数,但如果我把一个字母放进去,就会得到“int的无效文本”

请你帮忙

def agecheck():

    quit_menu = False

    while quit_menu is False:

         age = input("\nEnter your age: ")

         if age >= "18":
             print("You are the correct age.")
         elif age < "18":
             print("Get off this website.")
         else:
             print("Enter a correct integer.")
             quit_menu = True

    agecheck()

Tags: 文本falseinputageisdef字母整数
2条回答

如果使用像>=<这样的运算符,那么输入和比较的对象都应该是整数。另外,如果输入是有效的而不是无效的,我怀疑您实际上想退出菜单,并继续循环,直到用户输入整数。如果输入了不能转换为int的内容,还应该确保代码异常安全。请尝试以下操作:

def agecheck():

    quit_menu = False

    while quit_menu == False:

         try:

             age = int(input("\nEnter your age: "))

             if age >= 18:

                 print("You are the correct age.")

             elif age < 18:

                 print("Get off this website.")

             quit_menu = True

         except:

             print("Enter a correct integer.")

agecheck()

你可以试试-

def agecheck():
  ans = input("\n Enter your age: ")
  try:
    age = int(ans)
    if age >= 18:
      print("You are the correct age.")
    elif age < 18:
      print("Get off this website.")
    else:
      print("Enter a correct integer.")
  except ValueError:
    print("That wasn't a number")


for i in range(3):
  agecheck()

它运行三次,输入输入420"a",并注意日志

相关问题 更多 >