如何针对特定条件运行相同的循环迭代

问题描述 投票:0回答:1

输入应接受 n 的任何浮点值,并在输入“q”作为第一个值时终止。如果输入“q”作为第二个、第三个、第四个或第五个值,则程序应生成仅包含这些值的图。对于所有其他输入,程序应打印一条消息 表明存在问题并要求用户再次输入 n 值。程序不应因错误输入而终止。运行你的程序

n=5
n_list=[]
for i in range(n):
    x=input('enter exponent n(q to quit) >')
    if i!=0 and x=='q':
        return n_list 
    elif  i==0 and x=='q':
        return('')
    try:
        float(x)
    except ValueError:
        print("That's not a number!!!")
    n_list.append(float(x) )
        

当发生 valueerror 异常时,有没有一种方法可以让我返回到循环的起始位置进行相同的迭代。

python for-loop valueerror
1个回答
0
投票

在尝试将

ValueError
尝试转换为
float
后,您会执行可能导致错误的完全相同的操作,但这次不处理它。

只需在

try
中添加即可。

n=5
n_list=[]
for i in range(n):
    x = input('enter exponent n(q to quit) >')
    if i != 0 and x == 'q':
        return n_list 
    elif i == 0 and x == 'q':
        return ''
    try:
        n_list.append(float(x))
    except ValueError:
        print("That's not a number!!!")
© www.soinside.com 2019 - 2024. All rights reserved.