2017-02-19 26 views
0

我写了一个代码,其中输入了(例如)1,而我的输出是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我零下93 ..

有没有办法解决呢? !

回答

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