我编写了一个小程序来检查sting输入是否是一个正整数,如果是,那么它是否位于字符串的特定范围内。这是我的代码:
def num_check(n:str):
if n.isdigit() == True:
if n in '1,2,3,4,5,6,7':
print('The integer lies between 1 and 7')
else:
print('Try again')
else:
print('Invalid input')
有没有办法可以避免硬编码范围(1,2,3,4,5,6,7)?
答案 0 :(得分:0)
你可以这样做:
def num_check(n,min,max):
if n.isdigit() == True:
if int(n) in range(min,max+1):
print('The integer lies between {} and {}'.format(min, max))
else:
print('Try again')
else:
print('Invalid input')
答案 1 :(得分:0)
将数字转换为整数,并查看它是否小于1.如果是,请返回False
。否则,请使用内置min
检查它是否在max
和range()
的范围内。 range(7, 10)
返回[7, 8, 9]
。如果是,请返回True
。如果没有,请返回False
。
def num_check(n, min, max):
n = int(n)
if n < 1:
return False
if n in range(min, max+1):
return True
return False
运行如下:
>>> num_check('8', 9, 17)
False
>>> num_check('8', 3, 17)
True
>>> num_check('-1', 3, 17)
False
>>> num_check('-1', -5, 17)
False
>>>