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

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

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

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

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

Вариант А)

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

Вариант Б)

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

Вариант С)

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 ответ

Решение

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

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

Другие вопросы по тегам