python函数判断是否为正整数

  • Post category:Python

要判断一个数是否为正整数,通常可以使用Python代码中的两种方法:isinstance()函数和正则表达式。

使用isinstance()函数判断正整数

isinstance()函数用于判断一个对象是否为指定类型的对象。因为Python中的int类型包含了所有的整数,所以可以通过isinstance()函数将给定的值转换为int类型,然后再判断是否为正整数。

代码示例1:

def is_positive_integer(value):
    if isinstance(value, int) and value > 0:
        return True
    else:
        return False

print(is_positive_integer(42))   # True
print(is_positive_integer(0))    # False
print(is_positive_integer(-13))  # False
print(is_positive_integer('hello'))  # False

第一个例子传入了一个整数42,因此返回True;第二个例子传入了0,因此返回False;第三个例子传入了一个负整数-13,因此返回False;第四个例子传入了一个字符串,因此返回False。这里如果判断传入值不为int类型,则会出现TypeError错误。

使用正则表达式判断正整数

正则表达式可以匹配一定规则的字符串,可以通过正则表达式来判断一个字符串是否为正整数。下面的正则表达式匹配了一位以上的数字,即判断是否匹配正整数。

代码示例2:

import re

def is_positive_integer(value):
    pattern = '^[1-9]\d*$'   # 匹配正整数
    return True if re.match(pattern, str(value)) else False

print(is_positive_integer(42))   # True
print(is_positive_integer(0))    # False
print(is_positive_integer(-13))  # False
print(is_positive_integer('hello'))  # False

第一个例子传入了一个整数42,因此返回True;第二个例子传入了0,因此返回False;第三个例子传入了一个负整数-13,因此返回False;第四个例子传入了一个字符串,因此返回False。这里使用了re.match()方法,如果匹配到了正则表达式,则返回匹配对象,否则返回None。因此可以使用if语句将返回值转化为True或False返回。