Python 验证输入并检查输入是否为';在一个范围内 print(“您想做什么:\n1.输入新信息\n2.房子- 基于statsitics\n3.特定标准统计信息) 尽管如此: 尝试: 选项=输入(“输入1、2或3:”) 除值错误外: 选项=输入(“输入1、2或3:”) 如果选项3: 选项=输入(“输入1、2或3:”) 其他: 打破 打印(可选)

Python 验证输入并检查输入是否为';在一个范围内 print(“您想做什么:\n1.输入新信息\n2.房子- 基于statsitics\n3.特定标准统计信息) 尽管如此: 尝试: 选项=输入(“输入1、2或3:”) 除值错误外: 选项=输入(“输入1、2或3:”) 如果选项3: 选项=输入(“输入1、2或3:”) 其他: 打破 打印(可选),python,python-3.x,validation,Python,Python 3.x,Validation,我试图确保我的输入在1到3之间,当我这样做时,我会得到一个TypeError,但是如果我将其更改为int(option=input(“输入12或3:”)),如果输入字符串,它将返回一个错误。用于检查输入是否在指定范围内: print("What would you like to do:\n1. Enter new information\n2. House- based statsitics\n3. Specific Criteria statistics") while True:

我试图确保我的输入在1到3之间,当我这样做时,我会得到一个TypeError,但是如果我将其更改为
int(option=input(“输入12或3:”)
),如果输入字符串,它将返回一个错误。

用于检查输入是否在指定范围内:

print("What would you like to do:\n1. Enter new information\n2. House- 
based statsitics\n3. Specific Criteria statistics")

while True:
  try:
    option = input("Enter 1 2 or 3: ")
  except ValueError:
    option = input("Enter 1 2 or 3: ")

  if option < 1 and option > 3:
    option = input("Enter 1 2 or 3: ")
  else:
     break

print(option)
样本运行

print("What would you like to do:\n1. Enter new information\n2. House- based statsitics\n3. Specific Criteria statistics")

while True:
  try:
    option = int(input("Enter 1 2 or 3: "))
  except ValueError:
    option = int(input("Enter 1 2 or 3: "))

  if option in range(1, 4):
    break

print(option)
用于检查输入是否在指定范围内:

print("What would you like to do:\n1. Enter new information\n2. House- 
based statsitics\n3. Specific Criteria statistics")

while True:
  try:
    option = input("Enter 1 2 or 3: ")
  except ValueError:
    option = input("Enter 1 2 or 3: ")

  if option < 1 and option > 3:
    option = input("Enter 1 2 or 3: ")
  else:
     break

print(option)
样本运行

print("What would you like to do:\n1. Enter new information\n2. House- based statsitics\n3. Specific Criteria statistics")

while True:
  try:
    option = int(input("Enter 1 2 or 3: "))
  except ValueError:
    option = int(input("Enter 1 2 or 3: "))

  if option in range(1, 4):
    break

print(option)
或者仅仅是:

What would you like to do:
1. Enter new information                                    
2. House- based statsitics                                  
3. Specific Criteria statistics                              
Enter 1 2 or 3: 0                                           
Enter 1 2 or 3: 4                                           
Enter 1 2 or 3: a                                           
Enter 1 2 or 3: 2                                           
2       
由于限制了3个字符串
'1',2',3'
,在转换为
int
时,甚至不需要捕捉
ValueError
,或者只需要:

What would you like to do:
1. Enter new information                                    
2. House- based statsitics                                  
3. Specific Criteria statistics                              
Enter 1 2 or 3: 0                                           
Enter 1 2 or 3: 4                                           
Enter 1 2 or 3: a                                           
Enter 1 2 or 3: 2                                           
2       
由于限制了3个字符串
'1'、'2'、'3'
,在转换为
int
时,甚至不需要捕捉
ValueError

option = None
while option not in {'1', '2', '3'}:  # or:  while option not in set('123')
    option = input("Enter 1 2 or 3: ")
option = int(option)
试试这个:

option = None
while option not in {'1', '2', '3'}:  # or:  while option not in set('123')
    option = input("Enter 1 2 or 3: ")
option = int(option)

如果选项<1和选项>3:
永远不可能为真。一个数字不能同时小于1和大于3。另外,
input
总是返回一个字符串,如果option<1和option>3:永远不能为真,则需要将其转换为int
。一个数字不能同时小于1和大于3。另外,
input
总是返回一个字符串,您需要将其转换为有效的int,我只需要将范围更改为有效的(1,4),我只需要将范围更改为(1,4),如果用户输入0?此外,这并不要求重复输入。重复的迭代有任何限制吗?(多少次迭代)这个问题应该包含在while循环中。为什么在成功时从函数内部调用函数?这也将接受
-2
。递归的作用是什么?您将永远无法询问用户输入(或直到达到递归限制);程序应该继续运行。如果用户输入0?同样,这不会要求重复输入。重复的迭代有任何限制吗?(多少次迭代)问题应该包含在while循环中。为什么在成功时从函数内部调用函数?这也将接受
-2
。递归的作用是什么?您将永远无法询问用户输入(或直到达到递归限制);这个节目应该继续进行下去,这样就有了一些东西。