2017-02-19 6 views
0

Ich schrieb einen Code, wo ich (zum Beispiel) 1 eingeben und mein Ausgang ist eins.Nummer 2 Text - Negative Nummer Bug

Aber wenn ich auf negative Zahlen haben alle es ging schief ...

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] 

Aber als ich schrieb -7 Ich habe minus dreiundneunzig ..

Gibt es eine Möglichkeit, es zu beheben? !

Antwort

0

Dies liegt daran, wenn Sie negative Zahlen in einer Liste verwenden, zählt Python rückwärts. ex
e=[1,2,3,4,5] e[-2] is equal to 4 Was Sie tun sollten, ist die math.abs(), um es zu einer absoluten Wertnummer zu machen.

+0

Ich habe gerade die "Minus" -Linie zu "Drucken" minus "+" "+ Zahlen [0 - lol]' – Telep0rter

+0

@ Telep0rter - Könnten Sie nicht einfach '-lol' verwenden? Sie können es auch auf "Minus" verkürzen. – ryugie

+0

Das stimmt. Ich habe nicht einmal daran gedacht, dass du einfach mit -1 multiplizieren könntest. – Phonzi