我怎样才能用 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
请您参考如下方法:
不客气
for t in range(int(input()), 0, -1): print '%.15f' % sum(1/(2.0*i+1) for i in range(int(input())))
编辑(解释):
首先,您可以使用 for loop 而不是 while 循环在range . for 循环中的最后一个参数是 -1,表示每次减 1,而不是默认的每次加 1。
如果 if 语句或循环中只有一个语句,则可以将一个语句保留在同一行中,而无需转到下一行。
无需创建 n 的变量,您只需将其插入即可,因为它仅被使用一次。 s 也是如此。
