用python实现isNum()函数参数为整数,输入一个数,要有异常处理。如果整数是质数,返回True,否则返回False,给出两种方法
时间: 2024-09-24 21:19:24 浏览: 46
在Python中,我们可以使用异常处理和条件判断来实现`isPrime`函数。以下是两种不同的实现方法:
方法一:使用try-except结构和传统检查质数的方式
```python
def is_prime(num):
try:
num = int(num) # 将输入转换为整数
if num <= 1: # 质数大于1
raise ValueError("输入不是正整数")
for i in range(2, int(num**0.5) + 1): # 只需检查到sqrt(n)
if num % i == 0:
return False
return True # 如果没有除数能整除,那么它是质数
except ValueError as e:
print(f"错误: {e}")
return None # 或者你可以选择返回False,表示非整数输入
# 示例
print(is_prime(7)) # 输出: True
print(is_prime("abc")) # 输出: 错误: 输入不是正整数
```
方法二:使用内置模块math简化计算并处理异常
```python
import math
def is_prime(num):
try:
num = int(num)
if not isinstance(num, int) or num <= 1:
raise ValueError("输入不是正整数")
if num == 2 or num == 3: # 特殊情况处理2和3
return True
elif num % 2 == 0 or num < 2: # 非质数判断
return False
sqrt_num = int(math.sqrt(num))
for i in range(3, sqrt_num + 1, 2): # 只需检查奇数因子
if num % i == 0:
return False
return True
except ValueError as e:
print(f"错误: {e}")
return None
# 示例
print(is_prime(7)) # 输出: True
print(is_prime("abc"))
阅读全文