Помогите подредачить код на python - Общение Python мододелов

Вопрос Помогите подредачить код на python

Регистрация
6 Ноя 2013
Сообщения
87
Репутация
0
Спасибо
0
Монет
0
проблема в том что код не хочет выводить от 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))
 
Регистрация
25 Май 2013
Сообщения
101
Репутация
0
Спасибо
0
Монет
0
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))
 
Регистрация
31 Окт 2013
Сообщения
80
Репутация
0
Спасибо
0
Монет
0
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))
 
Сверху Снизу