Python入门数学类编程——输入分数和复数,捕获异常

给出输入窗口使用户输入分数

>>> from fractions import Fraction
>>> a = Fraction(input('enter a fraction'))
enter a fraction7/65
>>> a
Fraction(7, 65)
>>>  a = Fraction(input('enter a fraction:'))
 
SyntaxError: unexpected indent
>>> a = Fraction(input('enter a fraction:'))
enter a fraction:7/412
>>> a
Fraction(7, 412)
>>> b = Fraction(input('enter a fraction:'))
enter a fraction:3/0
Traceback (most recent call last):
  File "<pyshell#8>", line 1, in <module>
    b = Fraction(input('enter a fraction:'))
  File "C:\Users\hongxiao.wang\AppData\Local\Programs\Python\Python38-32\lib\fractions.py", line 178, in __new__
    raise ZeroDivisionError('Fraction(%s, 0)' % numerator)
ZeroDivisionError: Fraction(3, 0)

可以看待,因为在分数中是不存在以0为分母的分数的,所以此时Python会报错,给出一个ZeroDivisionError的异常信息,为了避免用户输入此类无效分数,我们可以设置一个捕获异常来处理:

>>> try:
	a= Fraction(input('enter a fraction:'))
except ZeroDivisionError:
	print('Invalid fraction')

enter a fraction:3/0
Invalid fraction

此时,如果用户输入了无效的分数,输出结果则会弹出Invalid fraction作为给用户的提示。
给出输入窗口使用户输入复数

>>> z = complex(input('enter a complex:'))
enter a complex:2+5j
>>> z
(2+5j)
>>> z = complex(input('enter a complex:'))
enter a complex:2+ 5j
Traceback (most recent call last):
  File "<pyshell#17>", line 1, in <module>
    z = complex(input('enter a complex:'))
ValueError: complex() arg is a malformed string
>>> try:
	z = complex(input('enter a complex:'))
except ValueError:
	print('Invalid complex')

enter a complex:3+ 6i
Invalid complex

此时,用户输入了无效的复数,最终捕获到ValueError异常,就像我们对其他数字类型所做的一样。我们还是可以提前设置一个异常捕获,使得用户输入无效类型数字时输出给用户提示。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值