python中的短代码

sha*_*lki 1 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
Run Code Online (Sandbox Code Playgroud)

jac*_*ill 5

别客气

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

编辑(解释):

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

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

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