Найти - Пользователи
Полная версия: Разница
Начало » Python для новичков » Разница
1
Nakiri
    left = wall_is_on_the_right()
    down = wall_is_above()
    for i in range(9):
        if left:
            move_left()
        else:
            move_right()
        if down:
            move_down()
        else:
            move_up()
Не могу понять, почему данный код работает, а код ниже нет.
  for i in range(9):
        if wall_is_on_the_right():
            move_left()
        else:
            move_right()
        if wall_is_above():
            move_down()
        else:
            move_up()
Разве создание переменной даёт принципиальную разницу?
FishHook
Nakiri
Разве создание переменной даёт принципиальную разницу?
Дает, потому что переменная создается ДО цикла, а функцию вы вызываете на каждой иттерации цикла, и каждый раз функция может давать разный результат.
Nakiri
FishHook
каждый раз функция может давать разный результат
Получается в переменной фиксируется значение True и переменная подставляется с конкретным значением. Тогда если я делаю так
 if wall_is_on_the_right() == True:
это будет эквивалентно той переменной?

FishHook
Nakiri
это будет эквивалентно той переменной?
С какой радости?
Nakiri
FishHook
С какой радости?
Неправильно выразил мысль, не эквивалентно, а условия одинаковые.
Т,е
 if wall_is_on_the_right() == True:
Если справа стена, делай то.
 if left:
Если справа стена, ибо если стена возвращает True, делай то.

И еще один вопрос если можно.
 while not wall_is_on_the_left():
это равно?
  while wall_is_on_the_left() == False:
.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB