猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个;第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半多一个。到第五天早上想再吃时,见只剩下一个桃子了。计算猴子第一天共摘了多少桃子。
1、原代码
n=1
for i in range(4,0,-1):
n=(n+1)<<1
print(n)
输出结果为:46
2、3种代码对比
n=1
for i in range(4):
n=(n+1)<<1
print(n)
输出结果为:46
n=1
for n in range(4,0,-1):
n=(n+1)<<1
print(n)
输出结果为:4
n=1
for n in range(4):
n=(n+1)<<1
print(n)
输出结果为:8
知识点总结:
1、range() 函数用于生成一个整数序列,常见的用法如下:
range(m,n,k):生成从 m 到 n-1 且步长为 k 的整数序列;
range(m,n):生成从 m 到 n-1 且步长为 1 的整数序列;
range(m):生成从 0 到 m-1 且默认步长为 1 的整数序列。
2、for <循环变量> in <遍历结构>: <语句块>
通过保留字for实现“遍历循环”:从遍历结构中逐一提取元素,放在循环变量中,对于所提取的每个元素执行一次语句块
循环次数:由遍历结构中元素所确定
3、<<
:位操作之向左位移(对于二进制来说)
执行1的左位移位相当于乘以2
执行2的左位移位相当于乘以4
执行n的左位移位相当于乘以2**n
7<<1
输出:14
2<<2
#2=0b10
#8=0b1000
输出:8
3<<4
输出:48