SyavaLUX S SyavaLUX Регистрация 6 Ноя 2013 Сообщения 89 Репутация 0 Спасибо 0 Монет 0 13 Авг 2024 #1 проблема в том что код не хочет выводить от 10 и до 19 def num_to_words(num): ones = ['один', 'два', 'три', 'четыре', 'пять', 'шесть', 'семь', 'восемь', 'девять'] tens = ['десять','одинадцать', 'двенадцать', 'тринадцать', 'четырнадцать', 'пятнадцать', 'шестнадцать', 'семнадцать', 'восемнадцать', 'девятнадцать'] teens = ['двадцать', 'тридцать', 'сорок', 'пятьдесят', 'шестьдесят', 'семдясят', 'восемдясят', 'девяносто'] if num == 0: return 'ноль' elif num < 10: return ones[num - 1] elif num < 20: return tens[num - 1] else: tens_digit = num // 10 ones_digit = num % 10 if ones_digit == 0: return teens[tens_digit - 2] else: return teens[tens_digit - 2] +' '+ ones[ones_digit - 1] num = int(input("") print(num_to_words(num))
проблема в том что код не хочет выводить от 10 и до 19 def num_to_words(num): ones = ['один', 'два', 'три', 'четыре', 'пять', 'шесть', 'семь', 'восемь', 'девять'] tens = ['десять','одинадцать', 'двенадцать', 'тринадцать', 'четырнадцать', 'пятнадцать', 'шестнадцать', 'семнадцать', 'восемнадцать', 'девятнадцать'] teens = ['двадцать', 'тридцать', 'сорок', 'пятьдесят', 'шестьдесят', 'семдясят', 'восемдясят', 'девяносто'] if num == 0: return 'ноль' elif num < 10: return ones[num - 1] elif num < 20: return tens[num - 1] else: tens_digit = num // 10 ones_digit = num % 10 if ones_digit == 0: return teens[tens_digit - 2] else: return teens[tens_digit - 2] +' '+ ones[ones_digit - 1] num = int(input("") print(num_to_words(num))
denismed2003 D denismed2003 Регистрация 25 Май 2013 Сообщения 103 Репутация 0 Спасибо 0 Монет 0 13 Авг 2024 #2 def num_to_words(num): return (lambda n: "Число должно быть в диапазоне от 0 до 99." if n < 0 or n > 99 else ( "ноль" if n == 0 else ["один", "два", "три", "четыре", "пять", "шесть", "семь", "восемь", "девять"][n - 1] if n < 10 else ["десять", "одиннадцать", "двенадцать", "тринадцать", "четырнадцать", "пятнадцать", "шестнадцать", "семнадцать", "восемнадцать", "девятнадцать"][n - 10] if n < 20 else ["двадцать", "тридцать", "сорок", "пятьдесят", "шестьдесят", "семьдесят", "восемьдесят", "девяносто"][n // 10 - 2] + ('' if n % 10 == 0 else ' ' + ["один", "два", "три", "четыре", "пять", "шесть", "семь", "восемь", "девять"][n % 10 - 1]) ))(num) num = int(input("Введите число (от 0 до 99): ")) print(num_to_words(num))
def num_to_words(num): return (lambda n: "Число должно быть в диапазоне от 0 до 99." if n < 0 or n > 99 else ( "ноль" if n == 0 else ["один", "два", "три", "четыре", "пять", "шесть", "семь", "восемь", "девять"][n - 1] if n < 10 else ["десять", "одиннадцать", "двенадцать", "тринадцать", "четырнадцать", "пятнадцать", "шестнадцать", "семнадцать", "восемнадцать", "девятнадцать"][n - 10] if n < 20 else ["двадцать", "тридцать", "сорок", "пятьдесят", "шестьдесят", "семьдесят", "восемьдесят", "девяносто"][n // 10 - 2] + ('' if n % 10 == 0 else ' ' + ["один", "два", "три", "четыре", "пять", "шесть", "семь", "восемь", "девять"][n % 10 - 1]) ))(num) num = int(input("Введите число (от 0 до 99): ")) print(num_to_words(num))
noob N noob Регистрация 2 Дек 2012 Сообщения 90 Репутация 0 Спасибо 1 Монет 0 13 Авг 2024 #3 def num_to_words: if 10
азамат А азамат Регистрация 31 Окт 2013 Сообщения 81 Репутация 0 Спасибо 0 Монет 0 13 Авг 2024 #4 def num_to_words(num): if num> 99: return 'ошибка' ones = ['нуль','один', 'два', 'три', 'четыре', 'пять', 'шесть', 'семь', 'восемь', 'девять'] if num < 10: return ones[num] tens = ['одинадцать', 'двенадцать', 'тринадцать', 'четырнадцать', 'пятнадцать', 'шестнадцать', 'семнадцать', 'восемнадцать', 'девятнадцать'] teens = ['десять','двадцать', 'тридцать', 'сорок', 'пятьдесят', 'шестьдесят', 'семдясят', 'восемдясят', 'девяносто'] c=str(num) if c[1]=='0': return teens[int(c[0])-1] if c[0]=='1': return tens[int(c[1])-1] return teens[int(c[0])-1]+ones[int(c[1])] # тест, орфография оставлена for i in range(0,100): print(num_to_words(i))
def num_to_words(num): if num> 99: return 'ошибка' ones = ['нуль','один', 'два', 'три', 'четыре', 'пять', 'шесть', 'семь', 'восемь', 'девять'] if num < 10: return ones[num] tens = ['одинадцать', 'двенадцать', 'тринадцать', 'четырнадцать', 'пятнадцать', 'шестнадцать', 'семнадцать', 'восемнадцать', 'девятнадцать'] teens = ['десять','двадцать', 'тридцать', 'сорок', 'пятьдесят', 'шестьдесят', 'семдясят', 'восемдясят', 'девяносто'] c=str(num) if c[1]=='0': return teens[int(c[0])-1] if c[0]=='1': return tens[int(c[1])-1] return teens[int(c[0])-1]+ones[int(c[1])] # тест, орфография оставлена for i in range(0,100): print(num_to_words(i))
алексей83 А алексей83 Регистрация 20 Сен 2013 Сообщения 83 Репутация 0 Спасибо 0 Монет 0 13 Авг 2024 #5 Да сделай ты по-человечески словарем