如何以相反的顺序循环?

时间:2013-12-09 19:06:01

标签: python python-3.x

我是初学程序员。这是我的代码:

n = int(input())
from math import*
for i in range(n):
    print(n, "\t", log10(n))
    i = i + 1
    n = n - 1

它的输出是:

10   1.0
9    0.9542425094393249
8    0.9030899869919435
7    0.8450980400142568    
6    0.7781512503836436
5    0.6989700043360189    
4    0.6020599913279624
3    0.47712125471966244
2    0.3010299956639812
1    0.0

我希望它是:

1    0.0
2    0.3010299956639812
3    0.47712125471966244
4    0.6020599913279624
5    0.6989700043360189
.
.
.
9    0.9542425094393249
10   1.0

2 个答案:

答案 0 :(得分:4)

首先,您不需要增加i,因为它是循环变量,并依次设置为0到9中的每一个。

然后你的循环首先打印n。它从10开始,每次从中减去一个,因此您将按降序获取值。试试这个:

for i in range(n):
    print i+1, "\t", log10(i+1)

答案 1 :(得分:1)

只需使用i作为循环中的变量元素:

n=int(input())
import math

for i in range(1,n+1):
    print(i,"\t",math.log10(i))

您可以在一行中执行此操作:

print('\n'.join('{}\t{}'.format(i,math.log10(i)) for i in range(1,n+1)))

最后,习惯from math import *并不是一个好主意。使用*将导入模块中的所有项目都放入同一名称空间。模块中的任何类似对象或函数名称都将覆盖具有相同名称的其他函数/对象。