对于我的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很新,很困惑。
答案 0 :(得分:1)
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 :(得分:0)
您可以使用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个电阻值的列表
答案 2 :(得分:0)
这应该做的工作。它会推动列表中的所有有效电阻,在内部有一定数量的有效电阻后,它会断开。
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)
答案 3 :(得分:0)
你执行一个从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