Python将循环放入lis

2024-06-09 13:54:16 发布

您现在位置:Python中文网/ 问答频道 /正文

对于我的python程序,我被要求计算用户输入的电阻值。在程序中,我被要求演示数据处理、循环、列表和验证。你知道吗

我有7个电阻值要输入到程序中。对于每个电阻输入,我都创建了这样一个回路:

#Loop for Resistor 2:
while True :
    try:
        R2 = float(input( 'Resistor Value R2: ' ))
    except ValueError:
        print( 'Sorry, Invalid Input! Try Inputing A Number' )
        continue
    if R2 < 0 :
        print( 'Sorry, Invalid Input! Try A Positive Number ' )
        continue
    else :
        break

因为我有7个电阻,我有7个这样的循环打印出来的程序。这工作完全正常。不过,我想把这些都列在一个清单里。例如,不是为7个电阻写7次循环,而是创建一个列表,写一次,然后对所有7个输入重复。你知道吗

有人知道我怎么做吗?我对python很陌生,也很困惑。你知道吗


Tags: 用户程序number列表input数据处理r2print
3条回答
values = {}
for i in range(1, 8):
    while True:
        try:
            value = float(input( 'Resistor Value R%s: ' % i ))
        except ValueError:
            print( 'Sorry, Invalid Input! Try Inputing A Number' )
            continue
        if value < 0:
            print( 'Sorry, Invalid Input! Try A Positive Number ' )
            continue
        else:
            values['R%s' % i] = value
            break

print( values )

>>> {"R1": 470.0, "R2": 68.0, "R3": 1.6, ...}

这样就可以了。它按下列表中所有的有效电阻,当一个特定数量的有效电阻在里面时,它就会断开。你知道吗

resistors = []
while len(resistors) < 7:
    try:
        R = float(input( 'Resistor Value R: ' ))
    except ValueError:
        print( 'Sorry, Invalid Input! Try Inputing A Number' )
        continue
    if R < 0 :
        print( 'Sorry, Invalid Input! Try A Positive Number ' )
        continue
    else:
       resistors.append(R)

在1到7之间执行for循环,重复相关代码,并将提示参数化为相关电阻器的索引。你知道吗

def ask_for_input(resistor_number):
    while True :
        input_string = input('Resistence value for Resistor {0}: '.format(resistor_number))
        try:
            resistence_value = float(input_string)
        except ValueError:
            print( 'Sorry, Invalid Input! Try Inputing A Number' )
            continue
        if resistence_value < 0 :
            print( 'Sorry, Invalid Input! Try A Positive Number ' )
            continue
        else :
            return resistence_value

resistences = []
for index in range(1, 8):
    resistences.append(ask_for_input(index))

print resistences

相关问题 更多 >