要判断一个数是否为正整数,通常可以使用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返回。