2016-08-01 3 views
0

Привет Я хочу, чтобы петли через этот вход, если баланс не соответствует сумме книжных остатков (п.п., bfair, небо, FREDS белый)перекручивание через пользовательский ввод с если условие

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, удовлетворяющими условиям?

ответ

0

Да.

и рассмотреть возможность использования функции, чтобы избежать повторений в коде:

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") 
+0

Спасибо так много. Я собирался спросить, как сконденсировать этот код, поскольку я уверен, что есть способ, и вы уже это сделали! Еще раз спасибо, это была большая помощь! – JJBridger