在同一个 if 语句中比较字符串和整数
Compare string and integer in same if statement
我有一个接受用户输入的程序。如果输入是字符串或不是 1 到 4 之间的数字,我想显示无效选项消息。我想在一个 if 语句中检查所有这 3 个条件。
ask_option = input("Your option: ")
if int(ask_option) != int and (int(ask_option) < 1 or int(ask_option) > 4):
print("Not a valid option")
我觉得 int(ask_option) != int 不正确。但是是否可以在一个 if 语句中满足所有这 3 个条件?
我的代码满足在 1-4 之间进行选择的标准,但无法检查字符串输入。请帮忙
如果您尝试将字符串输入转换为 int,程序将抛出 ValueError。
ask_option = input("Your option: ")
try:
val = int(ask_option)
if val <= 1 or val => 4:
print("Not a valid option!")
except ValueError:
print("Not a valid option!")
input()
将始终 return 一个字符串,除非您明确转换它。因此,使用 ask_option = int(input("Your option: "))
已经可以满足检查 ask_option
是否为整数,否则将引发异常。
至于评估整数,您可以在一行中完成此操作,例如:
if not 1 <= ask_option <= 4:
print("Not a valid option")
ask_option = input("Your option: ")
if len(ask_option) != 1 or ask_option < '1' or ask_option > '4':
print("Not a valid option")
else:
print( "valid option")
编辑:
OP:“如果输入是字符串或不是 1 到 4 之间的数字,我想显示无效的选项消息。”
因此我们需要接受 1 - 4
范围内的值
我们知道 input()
接受所有字符串
所以在if
语句中
第一个条件:len(ask_option) != 1
我们使长度为 not equal
到 1
的任何字符串无效(因为我们需要接受范围从 1-4
的 length 1
的值)
现在我们要处理长度仅为 1
的 input
值,它可以是任何值,将在接下来的 2 个条件下进行检查。
第二个和第三个条件:ask_option < '1' or ask_option > '4'
我们进行 string
比较(使用它们的 ASCII 值完成)
更多关于 string
比较:String comparison technique used by Python
我不推荐使用这种方法,因为乍一看很难说出它的作用,所以最好使用 try
except
而不是其他答案中的建议。
将此解决方案视为解决 OP 问题的另一种方法(但不建议实施。)
我有一个接受用户输入的程序。如果输入是字符串或不是 1 到 4 之间的数字,我想显示无效选项消息。我想在一个 if 语句中检查所有这 3 个条件。
ask_option = input("Your option: ")
if int(ask_option) != int and (int(ask_option) < 1 or int(ask_option) > 4):
print("Not a valid option")
我觉得 int(ask_option) != int 不正确。但是是否可以在一个 if 语句中满足所有这 3 个条件?
我的代码满足在 1-4 之间进行选择的标准,但无法检查字符串输入。请帮忙
如果您尝试将字符串输入转换为 int,程序将抛出 ValueError。
ask_option = input("Your option: ")
try:
val = int(ask_option)
if val <= 1 or val => 4:
print("Not a valid option!")
except ValueError:
print("Not a valid option!")
input()
将始终 return 一个字符串,除非您明确转换它。因此,使用 ask_option = int(input("Your option: "))
已经可以满足检查 ask_option
是否为整数,否则将引发异常。
至于评估整数,您可以在一行中完成此操作,例如:
if not 1 <= ask_option <= 4:
print("Not a valid option")
ask_option = input("Your option: ")
if len(ask_option) != 1 or ask_option < '1' or ask_option > '4':
print("Not a valid option")
else:
print( "valid option")
编辑:
OP:“如果输入是字符串或不是 1 到 4 之间的数字,我想显示无效的选项消息。”
因此我们需要接受 1 - 4
我们知道 input()
接受所有字符串
所以在if
语句中
第一个条件:len(ask_option) != 1
我们使长度为 not equal
到 1
的任何字符串无效(因为我们需要接受范围从 1-4
的 length 1
的值)
现在我们要处理长度仅为 1
的 input
值,它可以是任何值,将在接下来的 2 个条件下进行检查。
第二个和第三个条件:ask_option < '1' or ask_option > '4'
我们进行 string
比较(使用它们的 ASCII 值完成)
更多关于 string
比较:String comparison technique used by Python
我不推荐使用这种方法,因为乍一看很难说出它的作用,所以最好使用 try
except
而不是其他答案中的建议。
将此解决方案视为解决 OP 问题的另一种方法(但不建议实施。)