请用python完成该习题,并且用IPO方法进行分析: 编程计算下列式子的值:1!+3!+5!+⋯+n! 从键盘上输入一个整数 n,把上面公式的值打印输出到屏幕。如果输入的不是整数是小数、 字母或其他符号,则程序就在屏幕上输出“异常信息:你输入的数据必须是阿拉伯数字!”字样。 如键盘上输入数字 7,则输出: 输入 7 时,得到式子的值为:5167 如键盘上输入数字 8,则输出: 输入 8 时,得到式子的值为:5167 如键盘上输入 5.3 则输出: 异常信息:你输入的数据必须是阿拉伯数字! 如键盘上输入 a 则输出: 异常信息:你输入的数据必须是阿拉伯数字! 请把编号(1)~(7)和对应下划线删除,填空完成程序中的语句,不能修改已有的代码。 try: n=int(input("请输入一个整数:")) sum = 0 i = 0 while ___(1)___: #1 i = i + 1 if i > n: ____(2)___ #2 if ____(3)____: #3 continue else: #求第 i 项的阶乘,product 为第 i 项的阶乘的积 product=j=1 while j<=i: ___(4)__=j #4 j+=1 ___(5)___= product #5 print("输入%d 时,得到式子的值为:%d"___(6)___) #6 except ___(7)___: #7 print("异常信息:你输入的数据必须是阿拉伯数字!")
时间: 2024-02-18 20:05:27 浏览: 71
IPO分析:
输入:从键盘输入一个整数n
处理:计算1!+3!+5!+⋯+n!,如果输入不是整数则输出异常信息
输出:输出计算结果或异常信息
代码如下:
```
try:
n = int(input("请输入一个整数:"))
sum = 0
i = 0
while True: #1
i = i + 1
if i > n:
break #2
if i % 2 == 0: #3
continue
else:
product = j = 1
while j <= i:
product *= j #4
j += 1
sum += product #5
print("输入%d时,得到式子的值为:%d" % (n, sum)) #6
except ValueError:
print("异常信息:你输入的数据必须是阿拉伯数字!") #7
```
解释:
1. while True: 循环条件为True,表示一直循环下去,直到遇到break语句为止。
2. break:跳出while循环。
3. 如果i为偶数,直接跳过,继续下一轮循环;否则计算阶乘。
4. product *= j:阶乘计算
5. sum += product:将计算出的阶乘加入总和中。
6. 输出结果
7. except ValueError:捕获输入值不是整数的异常。
阅读全文