文章目录
循环关键字
一、continue
-
continue是关键字;只能在循环体中使用
-
当执行循环体的时候,遇到continue,结束本轮循环,重新判断条件语句,进行下一轮循环
sum_ = 0
for i in range(1, 101):
if not i % 3:
continue
sum_ += i
print(sum_)
二、break
- break是关键字;只能在循环体中使用
- 当执行循环体的时候,如果遇到break,整个循环直接结束
三、while循环和break
while True:
需要重复的操作
if 循环借宿的条件:
break
# 练习:
t = 0
n = 0
while True:
t += 1
n += t
if t == 100:
print(n)
break
# 练习:找出1000以上第一个能被3整除的数
num = 1000
while True:
num += 1
if not num % 3:
print(num)
break
四、else
-
以前学的for、while循环都是不完整的
-
python中完整的结构是:for-else、while-else
-
在for循环或者while循环后面加else结构不会影响循环的执行
-
循环自然死亡正常结束执行else,如果循环遇到break提前结束不执行else
-
可根据else后面的代码是否执行来判断循环在执行过程中是否遇到break
4.1 python中完整的for循环
for 变量 in 序列:
循环体
else:
代码段
4.2 python中完整的while循环
while 条件语句:
循环体
else:
代码段
# 练习:判断一个数是否是素数
num = 5
if num > 1:
for factor in range(2, num): # 除了1和它本身还有其它因子,就不是素数
if not num % factor:
print('不是素数')
break
else:
print('素数')
else:
print('不是素数')
python数据存储
-
计算机存储数据只能是二进制数据
-
计算机只有存储数字的能力,并且存的是数字的二进制补码
一、进制
1.1十进制
-
基数:0,1,2,3,4,5,6,7,8,9
-
进位:逢10进1
-
位权:10的N次方(N从0开始)
-
程序中的表示方式:你懂的
1.2二进制
-
基数:0,1
-
进位:逢2进1
-
位权:2的N次方(N从0开始)
-
程序中的表示方式:前缀 0b,后面不能再出现包括2以上的数字,基数只有0和1
1.3八进制
-
基数:0,1,2,3,4,5,6,7
-
进位:逢8进1
-
位权:8的N次方(N从0开始)
-
程序中的表示方式:前缀 0o
1.4十六进制
-
基数:0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f
-
进位:逢16进1
-
位权:16的N次方(N从0开始)
-
程序中的表示方式:前缀 0x
二、进制的转换
2.1其它进制转10进制
-
Σ(基数·位权)
-
方法:print(数),打印出来就是10进制的
2.2十进制转其它进制:辗转取余法
-
方法:bin - 转二进制:print(bin(数))
-
方法:oct - 转八进制:print(oct(数))
-
方法:hex - 转十六进制:print(hex(数))
三、原码、反码和补码
- 正数的原码、反码和补码一样
3.1原码:符号位+真值
-
真值 - 数字绝对值的二进制
-
符号位 - 0表示正,1表示负
10的真值:1010
10的原码:01010
计算机1字节中 10 的原码:00001010
计算机1字节中 -10 的原码:10001010(符号位在最高位)
- 内存中最小单位:位(bit)
- 内存开辟的最小单位:字节
- 1字节 = 8位
- 1kb = 1024字节
3.2反码
-
符号位不变,其它位取反
-
正数的反码和原码一样
3.3补码
- 反码加1
四、位运算
-
&(按位与)
-
|(按位或)
-
^(按位异或)
-
~(按位取反)
-
<<(左移)
-
>>(右移)
位运算特点
- 针对整数
- 运算效率高,内存消耗少
- 复杂运算离人太远
4.1快速判断数字的奇偶性
一个数 & 1
4.2快速乘2操作
一个数 << 1
4.3快速整除2操作
一个数 >> 1