处理异常
print("Give me two numbers, and I will add up them.\nPlease enter q to quit")while True:
try:
first_number = input("First number:")
if first_number == "q":
break
f_number = int(first_number)
second_number = input("Second number:")
if second_number =="q":
break
s_number = int(second_number)
print(f_number + s_number)
except ValueError:
print("Please enter a number!")
如果我第一次输入的是一个数字,第二次输入一个字符串,系统提示"Please enter a number!"后让我重新输入第一个数字,请问怎样修改代码能实现系统提示"Please enter a number!"后让我重新输入第二个数字,我输入后得到两个数字加总结果? 本帖最后由 nahongyan1997 于 2021-6-27 10:03 编辑
两个用单独的 try ... except..就好了:
print("Give me two numbers, and I will add up them.\nPlease enter q to quit")
while True:
try:
first_number = input("First number:")
if first_number == "q":
break
f_number = int(first_number)
break
except ValueError:
print("Please enter a number!")
while True:
try:
second_number = input("Second number:")
if second_number =="q":
break
s_number = int(second_number)
break
except ValueError:
print("Please enter a number!")
try:
print(f_number + s_number)
except:
pass print("Give me two numbers, and I will add up them.\nPlease enter q to quit")
while True:
while True:#把每个数字输入单独放在一个循环中,遇到q终止程序
try:
first_number = input("First number:")
if first_number == "q":
exit(0) #遇到q终止程序
f_number = int(first_number)
break
except ValueError:
print("Please enter a number!")
while True:
try:
second_number = input("Second number:")
if second_number =="q":
exit(0)
s_number = int(second_number)
break
except ValueError:
print("Please enter a number!")
print(f_number + s_number) nahongyan1997 发表于 2021-6-27 10:00
两个用单独的 try ... except..就好了:
这样确实能实现只重新输入第二个数字,但是整个过程只能重复一遍,不能多次输入 Nakupenda_wewe 发表于 2021-6-27 10:06
这样确实能实现只重新输入第二个数字,但是整个过程只能重复一遍,不能多次输入
你在实际使用的时候,会发现他的代码报错我的不会报错 Nakupenda_wewe 发表于 2021-6-27 10:06
这样确实能实现只重新输入第二个数字,但是整个过程只能重复一遍,不能多次输入
程序的最佳方式是重复利用代码
修改一下
print("Give me two numbers, and I will add up them.\nPlease enter q to quit")
quote=["First number:","Second number:"]
n=
flag=False
while not flag:
for i in range(2):
while True:#把每个数字输入单独放在一个循环中,遇到q终止程序
try:
number = input(quote)
if number == "q":
flag=True #遇到q终止程序
break
n = int(number)
break
except ValueError:
print("Please enter a number!")
if flag:
break
print(n + n) nahongyan1997 发表于 2021-6-27 10:15
你在实际使用的时候,会发现他的代码报错我的不会报错
我运行了一下并没有报错,还是非常感谢你的帮助! sunrise085 发表于 2021-6-27 10:19
程序的最佳方式是重复利用代码
修改一下
你提供的两种方法都能实现同样的效果,不过第二种以我目前的水平还不太能理解,我会继续学习,争取早日理解,非常感谢你的帮助! Nakupenda_wewe 发表于 2021-6-27 10:22
我运行了一下并没有报错,还是非常感谢你的帮助!
你输入 “q” 就会报错
页:
[1]