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'