Я пытаюсь написать программу для преобразования градусов Фаренгейта в градусы Цельсия. Результат моего кода должен быть примерно таким: «212,0 градусов по Фаренгейту = 100,0 градусов по Цельсию». Но когда я выполняю свой код, вместо того, чтобы показывать число градусов Цельсия, он показывает «Нет градусов Цельсия».

Ниже мой код:

Fahrenheit = float(input('Enter degrees Fahrenheit: '))


def computeCelsius():
    (Fahrenheit - 32) * (5 / 9)


celsius = computeCelsius()


def printResult():
    print(
        str(Fahrenheit) + ' degrees Fahrenheit = ' + str(celsius) +
        ' degrees Celsius ')


computeCelsius()
printResult()
-1
CritAnnihilation 10 Окт 2020 в 03:04

1 ответ

Лучший ответ

Недостаточно просто вычислить значение, его еще нужно вернуть:

def computeCelsius(fahren):
    return (fahren - 32) * 5 / 9

Если функция не возвращает что-либо явно , она неявно возвращает None. Вы заметите, что я также передал температуру по Фаренгейту в качестве параметра, а не использовал глобальную переменную. Это хорошая практика, позволяющая преобразовывать любое значение или переменную вместо того, чтобы сначала загружать их в глобальную переменную.

Возможно, вам будет полезно изучить приведенный ниже переписанный код, используя более современные функции Python (например, f-строки) и не закрывая связанный код:

def computeCelsius(fahren):
    return (fahren - 32) * 5 / 9

fahrenheit = float(input('Enter degrees Fahrenheit: '))
celsius = computeCelsius(fahrenheit)
print(f"{fahrenheit}°F = {celsius}°C")

Я бы не стал выдавать это за вашу собственную работу, если это задание классная работа , но полезно знать, как относительно опытный разработчик Python может достичь тех же целей с помощью более минималистичного кода.

0
paxdiablo 10 Окт 2020 в 00:14