python函数判断是否为正整数

  • Post category:Python

Python中判断一个数字是否为正整数,可以用以下几种方式:

1. 整除操作

我们可以用模除运算符 % 来判断一个数是否为正整数。

def is_positive_integer(num):
    # 仅当 num 大于 0 且模除结果为 0 时为正整数
    return num > 0 and num % 1 == 0

上述代码中用到了以下几个知识点:

  • num > 0 表示判断 num 是否大于 0。
  • num % 1 的结果为 0,表示判断 num 是否为整数(整数 % 1 的结果为 0)。
  • and 表示逻辑与,当左右两边的表达式都为 True 时,整个表达式的值才为 True。

尝试使用上述函数进行一些测试:

print(is_positive_integer(3))  # True
print(is_positive_integer(-3)) # False
print(is_positive_integer(0))  # False

2. 正则表达式判断

另一种常用的方法是使用正则表达式来判断是否为正整数。

import re

def is_positive_integer(num):
    pattern = r'^\d+$'
    return bool(re.match(pattern, str(num)))

上述代码中用到了 re 模块中的 match 函数来进行正则匹配,匹配成功则返回一个 Match 对象,否则返回 None。我们借助 bool 函数来将 None 转化为 False。str(num) 的作用是将数字转换为字符串用于正则匹配。r'^\d+$' 表示匹配以数字开头且以数字结尾的字符串,其中 ^ 表示开头,$ 表示结尾,\d 表示数字字符。如果字符串匹配成功,则被判断为正整数。

同样的,我们也可以使用上述代码进行测试:

print(is_positive_integer(3))  # True
print(is_positive_integer(-3)) # False
print(is_positive_integer(0))  # False

以上就是判断一个数是否为正整数的两种常用方法。其中,使用正则表达式判定更灵活,可以处理更多情况,但是需要导入 re 模块,执行速度也可能较慢。而使用整除法判定则更为简洁,但只能用于整数的判定。