n个人分配100元,用户输入n,输出每个人所分数额(保留2位小数)。如果发生异常,则输出InputError。要求使用try语句处理异常
时间: 2023-07-16 08:14:38 浏览: 35
可以使用以下代码实现:
```python
try:
n = int(input("请输入人数:"))
if n <= 0:
raise ValueError
money = round(100 / n, 2)
for i in range(n):
print("第{}个人分配金额为:{}元".format(i+1, money))
except ValueError:
print("InputError")
```
首先,使用try语句尝试获取用户输入的人数n。如果输入的不是整数或者小于等于0,则会抛出ValueError异常。在try语句块中,计算每个人分配的金额,保留2位小数,并使用for循环输出每个人的分配金额。如果发生异常,则会执行except语句块,输出InputError。
相关问题
n个人分配100元,用户输入n,输出每个人所分数额(保留两位小数)。如果发生异常Zero Division Error错误,则输出Error0;如果输入负整数,则输出Error1;其他错误异常,则输出Error2。最后无论是否发出异常,都输出over。要求用try语句处理部分异常
可以使用 try-except 语句来处理输入的异常情况,代码如下:
```
try:
n = int(input("请输入人数:"))
if n <= 0:
raise ValueError("人数必须大于0")
money = 100.0 / n
print("每个人分得:{:.2f}".format(money))
except ZeroDivisionError:
print("Error0")
except ValueError as e:
print("Error1:", e)
except:
print("Error2")
finally:
print("over")
```
首先尝试将输入的字符串转换为整数,如果转换失败则抛出 ValueError 异常,表示输入的不是整数。如果人数小于等于 0,则手动抛出 ValueError 异常,表示输入的人数不合法。计算每个人分得的金额,如果分母为 0 则会触发 ZeroDivisionError 异常,表示分配不合理。如果发生其他异常,则会触发 except 中的代码块。最后无论是否发生异常,都会执行 finally 中的代码,输出 over。
例如,当输入 n=0 时,输出如下:
```
Error1: 人数必须大于0
over
```
当输入 n=5 时,输出如下:
```
每个人分得:20.00
over
```
当输入非整数时,输出如下:
```
Error2
over
```
Python编写程序,n个人平均分配100元,用户输入由n个不同取值构成的列表,输出各种情况每人所分数额(分行输出,保留2位小数)。如果发生ZeroDivisionError则输出c;其他错误输出Error,列表元素处理完毕后,输出over,用try语句处理异常
好的,下面是Python代码实现:
```python
try:
nums = input().split()
n = len(nums)
for i in range(n):
nums[i] = int(nums[i])
for num in nums:
if num == 0:
print('c')
else:
money = round(100 / num, 2)
print(money)
except ZeroDivisionError:
print('c')
except:
print('Error')
finally:
print('over')
```
这段代码使用了try-except-finally语句来处理异常。首先,我们读入由n个不同取值构成的列表,将其转换为整数类型。在循环中,我们计算每个人能够分配到的金额,并使用round函数保留2位小数,最后进行输出。如果列表中有0,则输出'c'。如果出现除0错误,则同样输出'c'。其他错误则输出'Error'。无论如何,最后都会输出'over'。