• 1
    Entrada y salida de datos
    • Tareas
  • 2
    Condiciones
    • Tareas
  • 3
    Bucle for
    • Tareas
  • 4
    Cadenas de texto
    • Tareas
  • 5
    Bucle while
    • Tareas
  • 6
    Listas
    • Tareas
  • 7
    Matrices 2D
    • Tareas
  • 8
    Diccionarios
    • Tareas
  • 9
    Conjuntos
    • Tareas
  • 10
    Funciones y recursión
    • Tareas
  • к

Lección 1. Entering and output of data

Dificultad:

иконка человека красный иконка человека белая иконка человека зеленая Pythonlib

Tarea«Número en palabras»

💻 Python

Escriba un programa que acepte un número del 0 al 9999 y lo muestre con palabras en ruso. Si introduce un número fuera del rango, o si introduce algo que no sea un número, muestre en pantalla "Entrada no válida".

Formato de entrada

Una línea que contiene un solo número del 0 al 9999 inclusive.

Formato de salida

Una línea que contiene una representación verbal del número entre comillas.

Ejemplo

Entrada

1234

Salida

Mil doscientos treinta y cuatro

Pista

There will be no clue here, decide for yourself!

main.py
Prueba 1
Prueba 2
Prueba 3
Prueba 4
Prueba 5
Prueba 6
Prueba 7
Prueba 8
Prueba 9
Prueba 10
Prueba 11
Prueba 12
Prueba 13
Solución del desarrollador
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("ввод не верный")

🎉 ¡Felicidades! 🎉

¡Has resuelto la tarea brillantemente! Era un reto difícil, pero encontraste la solución correcta. ¡Estás un paso más cerca de dominar la programación! Sigue así, cada etapa superada te hace más fuerte.

AD

Publicidad

red-snake blue-snake green-snake

Ejecutando tu código...

Asistente de IA

¡Hola! Soy tu asistente de programación. Hazme cualquier pregunta sobre Python — puedo explicarte funciones, métodos y ayudarte con la tarea actual.