Синтаксическая ошибка Python: «возврат вне функции» - PullRequest
0 голосов
/ 28 мая 2020

Попытка использовать функцию в python, чтобы вернуть время с часами и минутами ... продолжайте получать ошибку с оператором возврата

def return_time(hour, minutes):
    time = ""

if hour < 10:
    time += "0" + str(hour)
else:
    time += str(hour)
time += ":"
if minutes < 10:
    time += "0" + str(minutes)
else:
    time += str(minutes)
return time

1 Ответ

0 голосов
/ 28 мая 2020

Так как Python не использует скобки / фигурные скобки для отслеживания блоков, как в некоторых других языках (C ++, Java, et c.), Он очень требователен к отступам. Как написан ваш код, весь return_time() равен

def return_time(hour, minutes):
    time = ""

, поскольку следующая после этого строка не имеет отступа. Это простое исправление.

def return_time(hour, minutes):
    time = ""

    if hour < 10:                # stay indented!
        time += "0" + str(hour)
    else:
        time += str(hour)
    time += ":"
    if minutes < 10:
        time += "0" + str(minutes)
    else:
        time += str(minutes)
    return time

Кроме того, как прокомментировал @IronMan, эту конкретную функцию довольно легко реализовать в одной строке с f-строкой.

def return_time(hour, minutes):
    return f"{hour:02d}:{minutes:02d}"

An f-строка (обозначенная f перед кавычками) оценивает переменные в фигурных скобках и перед : и преобразует их в строку. Текст после : описывает формат, который в данном случае представляет собой «ровно две цифры, которым предшествует 0, если меньше двух цифр».

Возможно, вас также заинтересует time.strftime().

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