@Insssane

Как сделать калькулятор, который будет выдавать результат словами?

Как сделать калькулятор, умеющий вычитать и складывать числа от 0 до 63. Желательно, чтобы он принимал значения в виде текста, например: 10+1 или 59-5. А ответы выдавал текстом, по английски: например "Eleven" или "Fifty four".
Я уже сделал, чтобы он выдавал числа от 0 до 20 и через 10 словами, но как сделать чтобы он выдавал "Fifty four", я не могу понять.

def counter():
    words = {0: 'zero', 1: 'one', 2: 'two', 3: 'three', 4: 'four', 5: 'five', 6: 'six', 7: 'seven', 8: 'eight',
             9: 'nine', 10: 'ten', 11: 'eleven', 12: 'twelve', 13: 'thirteen', 14: 'fourteen', 15: 'fifteen',
             16: 'sixteen', 17: 'seventeen', 18: 'eighteen', 19: 'nineteen', 20: 'twenty', 30: 'thirty', 40: 'forty',
             50: 'fifty', 60: 'sixty'}
    string = input()
    result = eval(string)
    if result >=0 and result <= 63:

        if result >= 0 and result <= 20:
            for k, v in words.items():
                if k == result:
                    print(v)

        elif result >= 21 and result <= 63:
            for k, v in words.items():
                if k == result:
                    print(v)

                # else:
                #     dozen = (result - (result % 10))
                #     units = result % 10
                #     if dozen == k and units == k:
                #         print(v + v)
                #         print(dozen + units)


counter()
  • Вопрос задан
  • 210 просмотров
Решения вопроса 1
SoreMix
@SoreMix Куратор тега Python
yellow
Есть до сотни, можно просто взять десяток и остаток, ну и выписать
result = 43
if result > 20 and result < 63:
    if result in words:
        print(words[result])
    else:
        q, mod = divmod(result, 10)
        print(words[q*10], words[mod])
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@Vorfall
ну как сделать калькулятор думаю в гугле найдешь
А перевод числе из цифр в слова пример посмотри в репе
да там на js но логика таже
https://github.com/Vorfall/human-readable-number/b...
Ответ написан
Комментировать
LazyTalent
@LazyTalent
Data Engineer, Freelancer
Есть библиотека inflect, которая умеет так делать - можешь посмотреть как сделанно там
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы