(Python) Что касается следующего вопроса, в чем разница между Option (A) и Option (C)? - PullRequest
0 голосов
/ 16 октября 2018

Я столкнулся с этим вопросом при прохождении онлайн-курса.Правильный ответ - вариант (C), однако, почему я не могу выбрать вариант (A)?В чем нюанс между этими двумя вариантами?

---> Предположим, мы хотели создать класс PolarBearDrunk, пьяного белого медведя, который перемещается случайным образом по осям x и y, делая большие шаги при движении на юг, и маленькие шагипри движении на север.

class PolarBearDrunk(Drunk):
    def takeStep(self):
        # code for takeStep()

Что из нижеперечисленного будет подходящей реализацией takeStep ()?

Опция A)

directionList = [(0.0, 1.0), (1.0, 0.0), (-1.0, 0.0), (0.0, -1.0)]
myDirection = random.choice(directionList)
if myDirection[0] == 0.0:
    return myDirection + (0.0, -0.5)
return myDirection

Опция B)

directionList = [(0.0, 0.5), (1.0, -0.5), (-1.0, -0.5), (0.0, -1.5)]
return random.choice(directionList)

Вариант C)

directionList = [(0.0, 0.5), (1.0, 0.0), (-1.0, 0.0), (0.0, -1.5)]
return random.choice(directionList)

Вариант D)

directionList = [(0.0, 1.0), (1.0, 0.0), (-1.0, 0.0), (0.0, -1.0), (0.0, -1.0)]
return random.choice(directionList)

1 Ответ

0 голосов
/ 16 октября 2018

+ оператор для кортежей (как в варианте A) означает конкатенацию:

(0.0, 1.0) + (0.0, -0.5) == (0.0, 1.0, 0.0, -0.5)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...