检查字符串输入是否位于范围之间

时间:2014-04-27 02:13:43

标签: string python-3.x

我编写了一个小程序来检查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)?

2 个答案:

答案 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检查它是否在maxrange()的范围内。 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
>>>