不懂哪里错了,求指点
sum = 0
x = 1
n = 1
while True:
if n>=20:
break
x=2**(n-1)
sum+=x
n+=1
print sum
sum = 0
x = 1
n = 1
while True:
if n>=20:
break
x=2**(n-1)
sum+=x
n+=1
print sum
2016-04-15
sum = 0 x = 1 n = 1 while True: if n>=20: ## 这句是错误的关键,应该是 n > 20,下面有解释。 break x=2**(n-1) sum+=x n+=1 print sum ## 在第二十次执行的时候, 进入循环的 第一个行为, 就是做判断 n 是否大于等于20, 成立,结果直接break ## 跳出, 也就是说少执行了一次, 得将判断语句 改成 if n>=20: xxxx ## 最后在啰嗦一句, 在 这种 while True: if condition:break 的句式中, 一定要做好边际判断, 其实凡是 ## 做数字判断的时候, 我们都要当心边际判断是否准确, 否则很容易 多做或者少做依次循环。
举报