моя функция сравнения не дает правильный ответ - PullRequest
0 голосов
/ 14 января 2020

что не так с этой функцией? он дает правильный ответ только с условием if, во всех остальных случаях он дает неправильный ответ. Четыре точки компаса могут быть сокращены однобуквенными строками как «N», «E», «S» и «W». Напишите функцию turn_clockwise, которая принимает одну из этих четырех точек компаса в качестве своего параметра и возвращает следующую точку компаса в направлении по часовой стрелке.

def turn_clockwise(v):
    if "N" == "N":
       return "E"
    elif "E" == "E":
       return "S"
    elif "S" == "S":
       return "W"
    elif "W" == "W":
       return "N"
    else:
       return "SORRY"
a = turn_clockwise("W") == "N"
print(a)

1 Ответ

0 голосов
/ 14 января 2020

Я думаю, вы хотели использовать v в сравнениях. Прямо сейчас вы сравниваете каждое направление с самим собой, которое, конечно, всегда будет True.

def turn_clockwise(v):
    if v == "N":
       return "E"
    elif v == "E":
       return "S"
    elif v == "S":
       return "W"
    elif v == "W":
       return "N"
    else:
       return "SORRY"

. Вы также можете рассмотреть другие, менее "личные решения" ( не ). обязательно более эффективный):

def turn_clockwise(v):
    return {'N': 'E', 'E': 'S', 'S': 'W', 'W': 'N'}.get(v, 'SORRY')

или

def turn_clockwise(v):
    directions = 'NESW'
    try:
        return directions[(directions.index(v) + 1) % 4]
    except ValueError:
        return 'SORRY'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...