放麦子
for i in range(1,65):if i==1:
print(1)
elif i==64:
print(2**i-1)
else:
print(2**i)
上面的代码可以打印出64行的结果,如果我想要再第65行输出前面的64行相加的结果,该怎么修改代码呢 s = 0
for i in range(1,65):
if i==1:
print(1)
s += 1
elif i==64:
print(2**i-1)
s += (2**i-1)
else:
print(2**i)
s += (2**i)
print(f'相加的和是{s}')
tommyyu 发表于 2023-1-30 21:45
这个,第二项的2没有了,好像有点怪,但是又不知道在哪里 tommyyu 发表于 2023-1-30 21:45
等一下,好像是我的代码出错了 爱意随风起9306 发表于 2023-1-30 21:57
这个,第二项的2没有了,好像有点怪,但是又不知道在哪里
把if i==1变成if i==0 tommyyu 发表于 2023-1-30 21:58
把if i==1变成if i==0
格式应该是
1
2
4
8
16
这样,我的代码好像少了2,有点怪 tommyyu 发表于 2023-1-30 21:45
如果把range里的1换成0,格式是对了,但是是66个数了,超了一个 爱意随风起9306 发表于 2023-1-30 22:06
如果把range里的1换成0,格式是对了,但是是66个数了,超了一个
s = 0
for i in range(0,64):
if i==0:
print(1)
s += 1
elif i==64:
print(2**i-1)
s += (2**i-1)
else:
print(2**i)
s += (2**i)
print(f'相加的和是{s}')
tommyyu 发表于 2023-1-30 22:11
小丑竟是我自己{:5_99:} s = 0
for i in range(0,64):
print(tmp:=2**i)
s += tmp
print(f'总和:{s}')
页:
[1]