用python编程实现如下功能: (1)定义函数factorial()实现求一个正整数的阶乘值; (2)定义函数check_data()实现判断一个数是否为正整数; 要求在调用求阶乘函数factorial()前先调用函数check_data(),确定为正整数才求该数的阶乘值并输出,否者要求用户重新输入,直到满足要求为止。
时间: 2024-02-28 12:55:41 浏览: 84
以下是Python代码实现:
```python
def factorial(n):
if n == 1:
return 1
else:
return n * factorial(n-1)
def check_data(n):
if isinstance(n, int) and n > 0:
return True
else:
return False
while True:
try:
n = int(input("请输入一个正整数:"))
if check_data(n):
print("{}的阶乘是{}".format(n, factorial(n)))
break
else:
print("输入的数不是正整数,请重新输入!")
except ValueError:
print("输入的不是整数,请重新输入!")
```
首先定义了一个函数`factorial()`,用于求一个正整数的阶乘值。
然后定义了一个函数`check_data()`,用于判断一个数是否为正整数。
在主程序中,通过一个无限循环,不断要求用户输入一个数,然后用`try-except`语句块来捕获输入的异常。如果输入的不是整数,则提示用户重新输入;否则调用函数`check_data()`判断是否为正整数,如果是,则调用函数`factorial()`求该数的阶乘值并输出,然后跳出循环;否则提示用户重新输入。
阅读全文