编写程序完成以下要求:从键盘输入两个数,进行相除,显示商和余数。当输入串中含有非数字时或除数为0时,通过异常处理机制,使程序能正确运行。 输入格式: 输入两个数字,用英文逗号分隔,不需要给出提示性输出,即input()函数不要有任何参数 输出格式: 输出表示这两个数字的除法算式,结果包含商和余数 输入样例1: 36,5 输出样例1: 36/5=7 remainder 1 输入样例2: 36,0 输出样例2: ZeroDivisionError 输入样例3: 36,abc 输出样例3: ValueError
时间: 2024-02-13 16:01:41 浏览: 51
以下是实现该程序的Python代码:
```python
try:
dividend, divisor = input().split(',')
dividend = int(dividend)
divisor = int(divisor)
if divisor == 0:
raise ZeroDivisionError
quotient = dividend // divisor
remainder = dividend % divisor
print(f"{dividend}/{divisor}={quotient} remainder {remainder}")
except ValueError:
print("ValueError")
except ZeroDivisionError:
print("ZeroDivisionError")
```
程序首先通过`input()`函数从键盘读入两个数,并使用`split()`方法将其分别赋值给`dividend`和`divisor`变量。为了确保这两个变量都是整数,我们在第5、6行使用`int()`函数进行类型转换。如果用户输入的除数为0,则程序通过`raise`语句抛出一个`ZeroDivisionError`异常。接下来,我们使用`//`和`%`运算符计算商和余数,并使用`print()`函数输出结果。如果用户输入的除数不是数字,则程序会抛出一个`ValueError`异常。最后,我们使用`try`和`except`语句对可能出现的异常进行处理,并输出相应的错误信息。
阅读全文