使用 try/except 和 if/else 语句
Using try/except with if/else statements
我需要从用户输入中获取一组数字的平均值,但还需要使用 try 和 除了输入 "bob" 会输出错误消息,然后让他们再试一次。
我试过在 if/else 语句中使用 try/except,但它只是在第一个整数输入(错误)后产生错误消息。现在,我将其设置为 运行 用户输入,生成平均值,并在输入 "bob" 时提供错误消息。但它需要让用户继续尝试,而不是结束程序。
try:
val = int(input("Enter how many numbers: "))
sums = 0
if val == 0:
average = "error"
print("error, try again")
else:
for value in range(val):
num = float(input("enter a number: "))
sums = sums + float(num)
average = sums / val
num = "bob"
#num = float(input("enter a number: "))
print("Average: " + str(average))
except:
print("error, try again")
预计:
号码数:3
输入数字:2.5
输入号码:bob
错误,重试
输入数字:1.5
输入数字:3.5
平均:2.5
实际:
输入多少个数字:3
输入一个数字:2.5
输入一个数字:鲍勃
错误,重试
您可以在循环中使用 try/catch。
您只需要在预计会出错的代码行上使用 try/except。在这种情况下,当您将用户输入转换为 int 或 float 时。
由于您使用的是 for 循环,因此在输入无效的情况下您会漏掉一个数字。在这种情况下,while 循环更好。
这里有一些有用的东西:
val = input("Enter how many numbers: ")
while not val.isdigit() or val == '0':
print("error, try again")
val = input("Enter how many numbers: ")
val = int(val)
valid_nums = 0
sums = 0
while valid_nums < val:
try:
num = float(input("enter a number: "))
valid_nums += 1
sums += num
except ValueError:
print("error, try again")
continue
print("Average:", sums/val)
我需要从用户输入中获取一组数字的平均值,但还需要使用 try 和 除了输入 "bob" 会输出错误消息,然后让他们再试一次。
我试过在 if/else 语句中使用 try/except,但它只是在第一个整数输入(错误)后产生错误消息。现在,我将其设置为 运行 用户输入,生成平均值,并在输入 "bob" 时提供错误消息。但它需要让用户继续尝试,而不是结束程序。
try:
val = int(input("Enter how many numbers: "))
sums = 0
if val == 0:
average = "error"
print("error, try again")
else:
for value in range(val):
num = float(input("enter a number: "))
sums = sums + float(num)
average = sums / val
num = "bob"
#num = float(input("enter a number: "))
print("Average: " + str(average))
except:
print("error, try again")
预计: 号码数:3 输入数字:2.5 输入号码:bob 错误,重试 输入数字:1.5 输入数字:3.5 平均:2.5
实际: 输入多少个数字:3 输入一个数字:2.5 输入一个数字:鲍勃 错误,重试
您可以在循环中使用 try/catch。
您只需要在预计会出错的代码行上使用 try/except。在这种情况下,当您将用户输入转换为 int 或 float 时。
由于您使用的是 for 循环,因此在输入无效的情况下您会漏掉一个数字。在这种情况下,while 循环更好。
这里有一些有用的东西:
val = input("Enter how many numbers: ")
while not val.isdigit() or val == '0':
print("error, try again")
val = input("Enter how many numbers: ")
val = int(val)
valid_nums = 0
sums = 0
while valid_nums < val:
try:
num = float(input("enter a number: "))
valid_nums += 1
sums += num
except ValueError:
print("error, try again")
continue
print("Average:", sums/val)