2013-04-12 3 views
-3

Я не понимаю этот код. Я думаю, что хотя iterLeft не равно 0, он добавляет ans к x. ответ 0 х 3, который равен 3. Iterleft - 1 = 2путать с базовым кодом python

print str(x) должен напечатать 2, так как х 2, а затем 2 раз, а затем ANS что 3

, что случилось с моим объяснение

x = 3 
ans = 0 
itersLeft = x 
while (itersLeft != 0): 
    ans = ans + x 
    itersLeft = itersLeft - 1 
print str(x) + '*' + str(x) + ' = ' + str(ans) 
+3

Вы могли бы хотеть исправить отступы, чтобы соответствовать вашему реальному коду. – crashmstr

+0

код отображается точно, как я его нашел, это книга Python от двух преподавателей MIT. –

+0

Это довольно простой код; вы должны читать по циклам и переменным, если вы этого не понимаете. Отличный сайт, чтобы начать изучать Python: http://www.tutorialspoint.com/python/index.htm –

ответ

5

, что случилось с моим объяснением

x установлен в 3, а затем не изменяется. Я не вижу, как можно ожидать print str(x) для печати 2.

добавляет ans к x

Нет, наоборот: ans = ans + x добавляет x к ans.

0

x3 всегда, потому что вы не меняете его под контуром.

вы должны дать indentation after while loop

+3

Это просто ошибка форматирования текста при публикации здесь, а не реальная проблема. – dequis

+1

Он не спрашивает об IndentationError ... – dequis

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