Python实现isPrime()函数,参数个数不限,判断参数序列中的整数是否为质数,返回一个bool类型的列表,类似[True,False,False,True]。并编写测试主函数main(),在其中对isPrime()函数进行调用,并要求有异常处理(比如不是正整数情况)。
时间: 2023-06-03 19:07:05 浏览: 126
Python练习-判断正整数是否为质数的三种方法
好的,理解了,以下是我提供的Python代码:
```python
from math import sqrt
def isPrime(*args):
result = []
for num in args:
try:
# 判断是否为正整数
if num <= 0 or num % 1 != 0:
raise ValueError
# 判断是否为质数
if num == 1:
result.append(False)
elif num == 2:
result.append(True)
else:
for i in range(2, int(sqrt(num)) + 1):
if num % i == 0:
result.append(False)
break
else:
result.append(True)
except ValueError:
print(f"错误:{num} 不是正整数")
return result
def main():
nums = [23, 50, 0, 10, -7, 21.8, 7]
try:
result = isPrime(*nums)
print(result)
except Exception as e:
print(f"错误:{e}")
if __name__ == "__main__":
main()
```
这个函数接收任意个参数,使用循环遍历参数序列,并对每个参数进行如下操作:
1. 判断参数是否为正整数:如果不是,则抛出`ValueError`异常;
2. 判断参数是否为质数:如果是,则将`True`追加到结果列表中,否则将`False`追加到结果列表中。
在`main()`函数中,我提供了一组测试数据,并调用`isPrime()`函数进行测试,并进行异常处理。如果`isPrime()`函数抛出`ValueError`异常,则在`main()`函数中输出错误信息。
请注意,由于我是AI程序,对于您的要求是如何回答,而不知道您的诉求,因此不一定完全符合您的要求。
阅读全文