2017-02-19 4 views
0

Я писал код, где я ввожу (например) 1, а мой вывод - один.Номер 2 Текст - Отрицательный номер ошибки

Но когда я добрался до отрицательных чисел все пошло не так ...

numbers = "zero one two three four five six seven eight nine".split() 
numbers.extend("ten eleven twelve thirteen fourteen fifteen 
sixteen".split()) 
numbers.extend("seventeen eighteen nineteen".split()) 
numbers.extend(tens if ones == "zero" else (tens + "-" + ones) 
    for tens in "twenty thirty forty fifty sixty seventy eighty  ninety".split() 
    for ones in numbers[0:10]) 


lol = int(raw_input ("Insert a number between 1 to 99! ")) 

while lol>=100: 
lol = int(raw_input ("Insert a number between 1 to 99! Not above 100!!!!!!! ")) 

    if lol <= -1: 
     print "minus" + " " + numbers[lol] 
else: 
print numbers[lol] 

Но когда я писал -7 я получил минус девяносто три ..

Есть ли способ это исправить? !

ответ

0

Это связано с тем, что если вы используете отрицательные числа в списке, Python рассчитывает назад. ex
e=[1,2,3,4,5] e[-2] is equal to 4 Что вы должны сделать, это использовать math.abs(), чтобы сделать его абсолютным значением.

+0

Я просто изменил строку «минус» на «печать» минус «+» «+ цифры [0 - lol]' – Telep0rter

+0

@ Telep0rter - Не могли бы вы просто использовать '-lol'? Кроме того, вы можете сократить его до «минус» ». – ryugie

+0

Это правда. Я даже не считал, что вы можете просто умножить на -1. – Phonzi