python由用户输入非负整数n,计算1/1 + 1/2 + 1/3 + ... + 1/n的值,如果n是负数,则结果为0。处理用户非法输入(如输入的内容不是数字、输入的内容是浮点数、CtrlC终止)。
时间: 2024-05-13 14:20:23 浏览: 60
实验一习题题目1
好的,这是一个关于Python编程的问题,我可以为您提供解答。以下是Python程序的代码实现:
```
while True:
try:
n = int(input("请输入一个非负整数n:"))
if n < 0:
print("输入的数字不能为负数!")
break
else:
sum = 0
for i in range(1, n+1):
sum += 1/i
print("1/1", end="")
for i in range(2, n+1):
print(" + 1/{}".format(i), end="")
print(" = {}".format(round(sum, 2)))
break
except ValueError:
print("输入的内容必须为非负整数,请重新输入!")
except KeyboardInterrupt:
print("\n程序已终止!")
break
except:
print("输入的内容不合法,请重新输入!")
```
运行结果示例如下:
```
请输入一个非负整数n:10
1/1 + 1/2 + 1/3 + 1/4 + 1/5 + 1/6 + 1/7 + 1/8 + 1/9 + 1/10 = 2.93
```
在程序中,我们使用了循环来确保用户输入合法的非负整数,并进行错误处理。使用for循环计算1/1+1/2+1/3+...+1/n的值,并使用round函数对结果保留两位小数输出。
阅读全文