• 1
    数据输入输出
    • 任务
  • 2
    条件语句
    • 任务
  • 3
    for循环
    • 任务
  • 4
    字符串
    • 任务
  • 5
    while循环
    • 任务
  • 6
    列表
    • 任务
  • 7
    二维数组
    • 任务
  • 8
    字典
    • 任务
  • 9
    集合
    • 任务
  • 10
    函数与递归
    • 任务
  • к

课程 1. Entering and output of data

难度:

任务«将数字转换为单词»

💻 Python

编写一个程序,接收从0到9999的数字,并用俄语单词显示它。如果输入的数字超出此范围,或者输入的不是数字,则显示“输入不正确”的提示。

输入格式

一行包含一个从0到9999(含)的整数。

输出格式

一行包含用引号括起来的数字的文字表示。

示例

输入

1234

输出

一千二百三十四

提示

There will be no clue here, decide for yourself!

main.py
测试 1
测试 2
测试 3
测试 4
测试 5
测试 6
测试 7
测试 8
测试 9
测试 10
测试 11
测试 12
测试 13
开发者解答
def number_to_words(n):
    """
    Преобразует число от 0 до 9999 в его словесное представление на русском языке.
    """
    if not 0 <= n <= 9999:
        return "ввод не верный"

    if n == 0:
        return "ноль"

    units = {
        1: "один", 2: "два", 3: "три", 4: "четыре", 5: "пять",
        6: "шесть", 7: "семь", 8: "восемь", 9: "девять"
    }
    teens = {
        10: "десять", 11: "одиннадцать", 12: "двенадцать", 13: "тринадцать",
        14: "четырнадцать", 15: "пятнадцать", 16: "шестнадцать",
        17: "семнадцать", 18: "восемнадцать", 19: "девятнадцать"
    }
    tens = {
        20: "двадцать", 30: "тридцать", 40: "сорок", 50: "пятьдесят",
        60: "шестьдесят", 70: "семьдесят", 80: "восемьдесят", 90: "девяносто"
    }
    hundreds = {
        100: "сто", 200: "двести", 300: "триста", 400: "четыреста",
        500: "пятьсот", 600: "шестьсот", 700: "семьсот",
        800: "восемьсот", 900: "девятьсот"
    }

    parts = []

    # Обработка тысяч
    if n >= 1000:
        thousand_val = n // 1000
        if thousand_val == 1:
            parts.append("одна тысяча")
        elif thousand_val == 2:
            parts.append("две тысячи")
        elif thousand_val in [3, 4]:
            parts.append(units[thousand_val] + " тысячи")
        else: # 5-9
            parts.append(units[thousand_val] + " тысяч")
        n %= 1000

    # Обработка сотен
    if n >= 100:
        parts.append(hundreds[n // 100 * 100])
        n %= 100

    # Обработка десятков и единиц
    if n >= 20:
        parts.append(tens[n // 10 * 10])
        n %= 10
        if n > 0:
            parts.append(units[n])
    elif n >= 10:
        parts.append(teens[n])
    elif n > 0:
        parts.append(units[n])
        
    return " ".join(parts)

# Основная часть программы для считывания ввода и вывода результата
try:
    num = int(input())
    result = number_to_words(num)
    print(result)
except ValueError:
    print("ввод не верный")

🎉 恭喜! 🎉

你出色地完成了任务!这是一个不小的挑战,但你找到了正确答案。你离编程大师又近了一步!继续保持,每一步都让你更强大。

AD

广告

red-snake blue-snake green-snake

正在运行代码...

AI助手

你好!我是你的编程助手。随时向我提问关于 Python 的问题——我可以解释函数、方法,并帮助你完成当前任务!