我有一个脚本可以在cisco交换机中创建VLAN,并且我需要用户在脚本中输入一个数字。
在输入是否为数字(必须为int)并且数字是否在2〜4094范围内之前,我很难使脚本进行验证。
我已经写完了脚本的其余部分。
答案 0 :(得分:3)
这应该有效:
def validate(num):
try:
n = int(num)
return 2 <= n <= 4094
except:
return False
如果数字是指定范围内的整数,则上述函数返回True
,否则返回False
。
答案 1 :(得分:0)
try:
val = int(user_input)
print("user input is an int")
except ValueError:
print("user_input is not an int")
答案 2 :(得分:0)
您可以使用str.isdecimal()
来检查字符串是否仅包含数字。
inp = input("Enter number: ")
if inp.isdecimal():
n = int(inp)
else:
print("Not a number")
如果您需要功能:
def validate(inp):
return isinstance(inp, str) and inp.isdecimal()
inp = input("Enter number: ")
print(validate(inp))
答案 3 :(得分:0)
下面的函数返回True时,您可以使用数字进行数学运算。
def as_int_in_range(value,range):
try:
value = int(value)
if value >= range[0] and value <= range[1]:
return True,value
else:
return False,None
except ValueError:
return False,None
is_int,val = as_int_in_range('12',(10,100))
if is_int:
# do something with 'val' assuming it is int in the range
else:
# do something else