Функция выводит None, хотя не должна

Программа должна конвертировать рубли в доллары или юани. Если не введено значение в currency (USD, CNY), программа должна считать, что перевод в доллары. Выводит вместо числового значения None.

def rub_to_cny(rub_amount):
    rub_amount / 77.99 * 4.66
def rub_to_usd(rub_amount):
    rub_amount / 77.99
def rub_to_currency(rub_amount, currency):
    if currency == "USD" or not currency:
        print(rub_to_usd(rub_amount))
    elif currency == "CNY":
        print(rub_to_cny(rub_amount))
    elif type(currency) != str:
        print("Введенное значение некорректно")
def main():
    print("Введите количество рублей и сокращенное название валюты")
    rub_amount = float(input())
    currency = input()
    return rub_to_currency(rub_amount, currency)
print(main())

Ответы (1 шт):

Автор решения: dudha369

Я немного исправил код вашей программы и она стала работать.

def rub_to_cny(rub_amount):
    return (rub_amount / 77.99 * 4.66)
def rub_to_usd(rub_amount):
    return (rub_amount / 77.99)
def rub_to_currency(rub_amount, currency):
    if currency == "USD":
        print(rub_to_usd(rub_amount))
    elif currency == "CNY":
        print(rub_to_cny(rub_amount))
    else:
        print(rub_to_usd(rub_amount))
def main():
    print("Введите количество рублей и сокращенное название валюты")
    rub_amount = float(input("количество рублей: "))
    currency = input("сокращенное название валюты: ")
    rub_to_currency(rub_amount, currency)
if __name__=="__main__":
    main()
→ Ссылка