2016-10-14 3 views
0

Я нахожусь в начале программирования на Python и задаю несколько вопросов. Когда я запускаю код, я получаю эту ошибку компиляции:Python - вопросы начинающего

IndentationError: unindent does not match any outer indentation level

  1. Я думаю, что ошибка происходит из-за return в последней строке. Что мне делать по-другому?
  2. И я не понимаю эту строку. Что это значит?

    print "%d : %7d" % (i,2**i)

Я знаю, что делает команда печати, но что остальные означают?

def whileexample(): 
    n=15;i=0; # Mit Semikolon = Variablen in einer Zeile schreiben 

    while i<=n: 
     if n>20: 
      print n, "ist zu groß" 
      break 
     print "%d : %7d" % (i,2**i) 
     i=i+1 
    else: 
     print n+1, "Zweierpotenzen berechnet." 
    return 

whileexample() 
+0

Можете ли вы уточнить, что вас смущает в заявлении 'print'? –

+0

Я - немецкая национализм. Извините, из-за моих навыков письма. –

+0

Смелый текст меня смущает: напечатать "% d **: ** **% 7d **" **% ** (i, 2 ** i) –

ответ

1

В Python пробелы в начале строки значительны. Выражения на том же логическом уровне must должны иметь такую ​​же сумму.

В вашем случае последняя строка имеет дополнительный символ пробела в начале строки. Удостоверьтесь, что w в последней строке - это путь до let, в самом первом столбце.

0

Ваш последний фрагмент кода: whileexample() В этом первом столбце вы добавили избыточное пространство.

1

@ Robᵩ правильный с пробелом. Что касается вашего другого вопроса,% d и% 7d являются владельцами мест для всех, что находится в круглых скобках.

«d» в этом случае означает, что вы хотите, чтобы все отображаемые в круглых скобках были отформатированы как десятичные.

«7» указывает, сколько пробелов перед следующей переменной.

2 ** i означает 2, поднятый до i (2^i).

Ex:

>>> print "%d : %7d" % (5, 2**5) 

5 :  32 
+0

А что означает 7? И что означает% before (5, 2 ** 5) –

+0

К сожалению, я имею в виду «что означает **% ** до (5, 2 ** 5)» –

+0

% до (5, 2 ** 5) сообщает строку «% d:% 7d», что вы хотите использовать значения в круглых скобках для заполнения позиций замещающих. – AustinTronics

0

Проблема, которую я нашел, что последняя строка была изрезана, когда это не нужно быть

, если вы используете Python 3 попробуйте это:

def whileexample(): 
     n=15;i=0; # Mit Semikolon = Variablen in einer Zeile schreiben 

     while i<=n: 
      if n>20: 
       print (n, "ist zu groß") 
       break 
      print ("%d : %7d" % (i,2**i)) 
      i=i+1 
     else: 
      print (n+1, "Zweierpotenzen berechnet.") 
     return 

    whileexample() 

при использовании python2 попробуйте это;

def whileexample(): 
    n=15;i=0; # Mit Semikolon = Variablen in einer Zeile schreiben 

    while i<=n: 
     if n>20: 
      print n, "ist zu groß" 
      break 
     print "%d : %7d" % (i,2**i) 
     i=i+1 
    else: 
     print n+1, "Zweierpotenzen berechnet." 
    return 

whileexample() 

Разница между этими кодами это, что Python 3 имеет круглые скобки вокруг печати как Python 3 необходимо это и Python 2 не делает.

+0

Вы можете сконденсировать это в один пример, который начинается с 'from __future__ import print_function'. –

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