在Python中,我们可以通过判断x是否满足正整数的定义来确定x是否为正整数。
一、内置函数判断
1、使用isinstance()函数,判断x是否为int类型,并且x大于0。
def is_positive_integer(x):
if isinstance(x, int) and x > 0:
return True
else:
return False
# 示例测试
print(is_positive_integer(5)) # True
print(is_positive_integer(-5)) # False
print(is_positive_integer(0)) # False
2、使用type()函数和x % 1 == 0判断x是否为int类型,并且x大于0。
def is_positive_integer(x):
if type(x) == int and x > 0 and x % 1 == 0:
return True
else:
return False
# 示例测试
print(is_positive_integer(5)) # True
print(is_positive_integer(-5)) # False
print(is_positive_integer(0)) # False
二、数学库函数判断
1、使用math库中的isqrt()函数判断x的平方根是否等于x,并且x大于0。
import math
def is_positive_integer(x):
if x > 0 and math.isqrt(x) ** 2 == x:
return True
else:
return False
# 示例测试
print(is_positive_integer(5)) # True
print(is_positive_integer(-5)) # False
print(is_positive_integer(0)) # False
2、使用math库中的floor()函数判断x是否为正数,并且x的取整数等于x。
import math
def is_positive_integer(x):
if x > 0 and math.floor(x) == x:
return True
else:
return False
# 示例测试
print(is_positive_integer(5)) # True
print(is_positive_integer(-5)) # False
print(is_positive_integer(0)) # False
三、正则表达式判断
使用正则表达式判断x是否为正整数。
import re
def is_positive_integer(x):
if re.match(r'^[1-9]\d*$', str(x)):
return True
else:
return False
# 示例测试
print(is_positive_integer(5)) # True
print(is_positive_integer(-5)) # False
print(is_positive_integer(0)) # False
四、字符串判断
判断x是否为正整数的另一种方法是将x转换为字符串,然后判断字符串是否由数字组成,并且首位不为0。
def is_positive_integer(x):
if str(x).isdigit() and str(x)[0] != '0':
return True
else:
return False
# 示例测试
print(is_positive_integer(5)) # True
print(is_positive_integer(-5)) # False
print(is_positive_integer(0)) # False
原创文章,作者:NBRI,如若转载,请注明出处:https://www.beidandianzhu.com/g/5431.html