2015-12-26 3 views
-3

Кто-нибудь знает, почему этот код напечатает следующий результат?Кодовый поток не рассматривается

Код:

def main(): 
    try : 
     while True : 
      count = None 
      average = None 
      total = None 
      text = raw_input("Enter a number \n") 
      print "check 1" 
      if text =="done" : 
       print "check2" 
       print "Total is :",total 
       average = float(total)/count 
       print "Average is :",average 
       print "Count is :",count 
       break 
      print "check 3" 
      count += 1 
      print "check 4" 
      total += text 
      print "last check" 
    except : 
     print "Invalid" 

main() 

Выход:

check 1 
check 3 
Invalid 
+0

'average = float (total)/count' <---' total' и 'count' оба являются' None'. Итак, вы делаете 'average = float (None)/None' ... правильно? –

+1

И вы хотите, чтобы пользователь вводил число, но вы назвали и проверили переменную как строку ... Что вы на самом деле хотите сделать? И в чем проблема? Можете ли вы [изменить] свой вопрос и дать нам [mcve], пожалуйста? Благодарю. –

+0

Также вы делаете 'count + = 1', но' count' is 'None', поэтому ваш скрипт возвращает' Invalid', потому что он поднял 'TypeError' там ... –

ответ

1

Это печать, что, поскольку у вас есть логическая ошибка в скрипте, и вы ловите все ошибки в вашем except обработчика и печати недействителен.

Я могу сказать вам, где ошибка, но на самом деле вы должны найти ее самостоятельно. Удалить голый, кроме обработчика, тогда сама программа покажет вам.

Смежные вопросы