python中的短代码

时间:2013-02-03 06:14:15

标签: python optimization

我如何在python中只用一行编写这个完整的代码,或者我必须说一些使用空格最少或者字符数最少的东西?

t=int(input())
while t>0:
  n=int(input())
  s=sum(1/(2.0*i+1) for i in range(n))
  print "%.15f"%s
  t-=1

3 个答案:

答案 0 :(得分:5)

欢迎你

for t in range(int(input()), 0, -1): print '%.15f' % sum(1/(2.0*i+1) for i in range(int(input())))

编辑(解释):

首先,您可以在for loop中使用range而不是while循环。 for循环中的最后一个参数是-1,每次减1,而不是每次减去1。

如果if语句或循环中只有一个语句,则可以将一个语句保留在同一行中,而不必转到下一行。

您可以简单地将其插入,而不是创建n的变量,因为它只被使用一次。同样适用于s。

答案 1 :(得分:3)

for _ in range(input()):print"%.15f"%sum(1/(2.0*i+1)for i in range(input()))

答案 2 :(得分:0)

exec"print sum((-1.)**i/(i-~i)for i in range(input()));"*input()

我知道我回答这个问题已经太晚了。但是上面的代码给出了相同的结果。 它会变得更短。我也想方设法缩短它。 #CodeGolf#Python2.4