[Python编程:从入门到实践] 10-7 加法计算器

文章描述了一个Python程序,该程序提示用户输入两个数字进行加法运算。在用户输入非数字导致TypeError异常时,程序能捕获异常并显示错误消息,允许用户重新输入。程序使用while循环实现,即使用户输入错误也能继续进行直到得到两个有效数字。在VisualStudioCode(VSC)中运行时,遇到的错误类型是ValueError,这是由于尝试将非数字文本转换为整数时引发的。
摘要由CSDN通过智能技术生成

10-6 加法运算 :提示用户提供数值输入时,常出现的一个问题是,用户提供的是文本而不是数字。在这种情况下,当你尝试将输入转换为整数时,将引发TypeError 异常。编写一个程序,提示用户输入两个数字,再将它们相加并打印结果。在用户输入的任何一个值不是数字时都捕获TypeError 异常,并打印一条友好的错误消息。对你编写的程序进行测试:先输入两个数字,再输入一些文本而不是数字。

10-7 加法计算器 :将你为完成练习10-6而编写的代码放在一个while 循环中,让用户犯错(输入的是文本而不是数字)后能够继续输入数字。

思路:

开始想的是给x,y各定义一个bool类型的flag=TRUE,成功输入后将flag改成FALSE。此时循环条件为(flag1 or flag2)。但是思考了一下不知道怎样只在一个循环里面input x,y,只能放弃。

后来改为把输入的数字数量当做循环条件(因为题目只需要输入两个数字嘛)。也不要让求和死板地 =x+y了,就依次相加吧。

sum=0
i=0

while i<2:
    try:
        x=int(input())
    except ValueError:
        print("It isn't a number!")
    else:
        sum+=x
        i+=1

print(sum)



注:在VSC用Python3运行10-6时,发现终端给出的错误是ValueError,所以把题目改了一下,不然没法正常运行。

ValueError: invalid literal for int() with base 10: 'a'

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值