【问题标题】:Python - determining if parameter is an IntegerPython - 确定参数是否为整数
【发布时间】:2014-09-23 23:30:23
【问题描述】:

我对 Python 比较陌生。我想提出一个基本程序,可以确定参数是否在函数中具有整数。我不知道在空白处放什么。我通常不使用 if/in 类型配对。该函数的基础是这样的:

def is_number(char):
            if  (somethinghere)  in  (somethinghere):
                    return True
            else:
                    return False

结果应该是:

is_number('4')
   True
is_number('nothing')
   False

【问题讨论】:

  • 通常,您也可以只写return (somethinghere) in (somethinghere),而不是使用带有布尔文字的if 语句。

标签: python parameters integer


【解决方案1】:

python 中的常用方法不是使用 if/else,而是使用 try/except:

def is_number(char):
    try:
        int(char)
    except ValueError:
        return False
    else:
        return True

【讨论】:

    【解决方案2】:

    有很多方法可以做到这一点,但我认为练习建议你使用这种方法:

    'a' in 'abcde'
    Out[1]: True
    
    'f' in 'abcde'
    Out[2]: False
    

    您应该考虑如何将其应用于您的具体示例。

    【讨论】:

      【解决方案3】:
      def is_number(char):
         return char.isdigit()
      

      如果你正在处理正数,你可以使用str.isdigit

      您可能希望将try/except 用于更一般的用途,但使用float 而不是int 或十进制数字不会被视为数字:

      def is_number(char):
          try:
              float(char)
          except ValueError:
              return False
          return True
      

      如果返回False,您也不需要代码中的else,您的代码将不再继续。

      使用return char.isdigit() 也是一样,结果将是TrueFalse,因此不需要if/else

      In [4]: is_number('4.3')
      Out[4]: True
      
      In [5]: is_number('0.3')
      Out[5]: True
      
      In [6]: is_number('03')
      Out[6]: True
      
      In [7]: is_number('foo')
      Out[7]: False
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-02-03
        • 2012-02-13
        • 2014-04-09
        • 2012-05-18
        • 2015-01-22
        • 1970-01-01
        • 2011-02-14
        • 1970-01-01
        相关资源
        最近更新 更多