Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/350.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python—将循环放入列表中_Python_List_Loops - Fatal编程技术网

Python—将循环放入列表中

Python—将循环放入列表中,python,list,loops,Python,List,Loops,对于我的python程序,我被要求计算用户输入的电阻值。在程序中,我被要求演示数据处理、循环、列表和验证 我有7个电阻值要输入到程序中。对于每个电阻器输入,我创建了如下循环: #Loop for Resistor 2: while True : try: R2 = float(input( 'Resistor Value R2: ' )) except ValueError: print( 'Sorry, Invalid Input! Try In

对于我的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
电阻2的回路: 尽管如此: 尝试: R2=浮动(输入('电阻值R2:')) 除值错误外: 打印('对不起,输入无效!请尝试输入一个数字') 持续 如果R2<0: 打印('抱歉,输入无效!请尝试正数') 持续 其他: 打破 因为我有7个电阻,我有7个这样的循环为程序打印出来。这完全可以。然而,我想把这些都列在一个列表中。例如,不是为7个电阻写7次循环,而是创建一个列表,写一次,然后对所有7个输入重复


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

您可以使用for循环,并将值存储在列表中:

resistor_values = []

for i in range(7): # loop will have 7 iterations(0 - 6)
    # write code to be executed 7 times
    while True: 
        # this while loop ends when valid value for R is input
        # and stored in resistors
        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_values.append(R) # this appends R to the end of the list
            break
电阻器_值=[]
对于范围(7)中的i:#循环将有7次迭代(0-6)
#编写要执行7次的代码
尽管如此:
#当输入R的有效值时,该while循环结束
#并存储在电阻器中
尝试:
R=浮动(输入('电阻值R:'))
除值错误外:
打印('对不起,输入无效!请尝试输入一个数字')
持续
如果R<0:
打印('抱歉,输入无效!请尝试正数')
持续
其他:
电阻值。追加(R)#将R追加到列表的末尾
打破
这将产生一个包含7个电阻值的列表

值={}
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, ...}
对于范围(1,8)内的i: 尽管如此: 尝试: 值=浮动(输入('电阻值R%s:'%i)) 除值错误外: 打印('对不起,输入无效!请尝试输入一个数字') 持续 如果值<0: 打印('抱歉,输入无效!请尝试正数') 持续 其他: 值['R%s'%i]=值 打破 打印(值) >>>{“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)
电阻器=[]
而len(电阻器)<7:
尝试:
R=浮动(输入('电阻值R:'))
除值错误外:
打印('对不起,输入无效!请尝试输入一个数字')
持续
如果R<0:
打印('抱歉,输入无效!请尝试正数')
持续
其他:
附加电阻(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
def ask_输入(电阻器编号):
尽管如此:
input_string=input('电阻器{0}的电阻值:'。格式(电阻器_编号))
尝试:
电阻值=浮动(输入字符串)
除值错误外:
打印('对不起,输入无效!请尝试输入一个数字')
持续
如果电阻_值<0:
打印('抱歉,输入无效!请尝试正数')
持续
其他:
返回电阻值
阻力=[]
对于范围(1,8)中的索引:
电阻。追加(请求输入(索引))
印刷阻力

他说的是一份清单,而不是一本字典。这帮了大忙!!然而,我有另一个问题,在程序中,我必须计算电路中的总电阻,并有相应的公式。这在我创建列表之前就已经奏效了。RT1=1/((1/R2)+(1/R3))RT2=(RT1)+R4 RT3=1/((1/RT2)+(1/R5))RT4=(RT3)+R7 RT5=1/((1/RT4)+(1/R6))RT6=(RT5)+R1这是电阻的公式。。然而,当我运行该程序时,我得到以下消息:回溯(最近一次调用last):文件“C:/Users/dylan/Desktop/test.py”,第22行,RT1=1/((1/R2)+(1/R3))名称错误:名称“R2”不正确defined@DylanSwann此代码不符合您的演示要求lists@Totem你怎么知道的?在if语句中有R2。这是100%有效,但我必须计算电路中的总电阻。为此,我进行了大量计算:RT1=1/((1/R2)+(1/R3))RT2=(RT1)+r4rt3=1/((1/RT2)+(1/R5))RT4=(RT3)+r7rt5=1/((1/RT4)+(1/R6))RT6=(RT5)+R1但是R1-R7没有定义,我如何修复它以符合您的要求code@totem你能帮忙吗?