通过用户输入与循环,如果条件
问题描述:
您好我想遍历这个输入,如果资产负债不匹配账目结余的总和(PP,bfair,天空,FREDS WH)通过用户输入与循环,如果条件
while True:
try:
balance = float(raw_input('Balance:'))
print balance
except ValueError:
print"That's not a number"
continue
else:
break
while True:
try:
bfair_balance = float(raw_input('bfair:'))
print bfair_balance
except ValueError:
print"That's not a number"
continue
else:
break
while True:
try:
wh_balance = float(raw_input('wh:'))
print wh_balance
except ValueError:
print"That's not a number"
continue
else:
break
while True:
try:
freds_balance = float(raw_input('freds:'))
print freds_balance
except ValueError:
print"That's not a number"
continue
else:
break
while True:
try:
sky_balance = float(raw_input('sky:'))
print sky_balance
except ValueError:
print"That's not a number"
continue
else:
break
while True:
try:
pp_balance = float(raw_input('pp:'))
print pp_balance
except ValueError:
print "That's not a number"
continue
else:
break
我是否把这个所有在if语句满足条件的while循环中?
答
是的。
,并考虑使用功能,以避免在你的代码重复:
def ask_float(msg):
while True:
try:
x = float(raw_input(msg))
print x
return x
except ValueError:
print "That's not a number"
continue
while True:
balance = ask_float('Balance:')
bfair_balance = ask_float('bfair:')
wh_balance = ask_float('wh:')
freds_balance = ask_float('freds:')
sky_balance = ask_float('sky:')
pp_balance = ask_float('pp:')
balance_sum = pp_balance + bfair_balance + sky_balance + freds_balance + wh_balance
if balance == balance_sum:
# balance is correct -> stop the loop
break
else:
print("put a nice error message here")
非常感谢。我会问如何压缩这些代码,因为确实有办法,而且你已经做到了!再次感谢,这是一个很大的帮助! – JJBridger