最新python入门基础及实战第四章:关键字与位运算

关键字与位运算

1.continue
  • continue是关键字,如果遇到continue,当次循环直接结束,马上进入下次循环的判断(遇到continue就结束一次循环)

练习:1到100中,所有不能被3整除的数的和

方法一:

a = 0
for x in range(1, 101):
    if x % 3 == 0:
        continue
    a += x
print(a)
num = 0
for x in range(1, 101):
     if x % 3 != 0:
         num += x
 print(num)
2.break

break是关键字,只能在循环体中使用

当执行循环体的时候,如果遇到break,整个循环直接结束

for x in range(4):
    print('-----------')
    print('++++++++++')
    break  # 执行到了break,直接结束了循环
    print('=========')
    print('//')
3.while循环和break一起使用

while True:

​ 需要重复的操作

​ if 循环结束的条件:

​ break

应用: 用while计算1+2+3+。。。+100
num = 0
a = 1
while True:
    num += a
    a += 1
    if a > 100:
        break
print(num, a)

练习:找出1000以上第一个能被3整除的数

num = 1000
while True:
    if num % 3 == 0:
        break
    num += 1
print(num)
4.else

python中完整的for循环;

for 变量 in 序列:
循环体
else:
代码段

python中完整的while循环;
for 条件语句:
循环体
else:
代码段

在for循环或者while循环后面加else结构,不会影响原循环的执行。
如果循环正常结束,则循环结束,会执行else下代码,如果遇到break结束,则不会执行else下代码段
(可以根据else后面的代码段是否执行来判断循环在执行过程中没有遇到break)

  • 练习:判断一个数字是否是素数:
num = int(input('输入数字:'))
# for x in range(2, num):       # 方法1
for x in range(2, int(num**1/2+1)):      # 方法2
    if num % x == 0:
        print('不是素数')
        break
else:
    print(num, '是素数')

数据存储与位运算

计算器存储数据,只是存储二进制数据(计算机只有存储数字的能力,并且存储的是这个数字二进制补码)

1.进制

1)十进制

基数:0,2,3,…9
进位:逢十进一
位权:10的n次方(从0开始)
程序中的表示方式:直接写

2)二进制

基数:0,1 (001,110,101001)
进位:逢二进一 100+ 100 +>
位权:2的n次方 (从0开始)
程序中的表示方式: 加前缀/0b

3)八进制

基数:0,1,2,3,。。。,7 (134,276,137)
进位:逢八进一
位权:8的n次方(从0开始)
程序中的表示方式:直接写

4)十六进制

基数:09,AF
进位:逢F进一
位权:16的n次方(n从0开始)
程序中的表示方式:加前缀,0x

2.进制的转换

1)其他进制转10进制:基数乘以位权的和

0B011 ->20+21+23==11

0o56 ->68**0,58**1

2)10进制转换(辗转取余法)

转二进制方法,bin - 将其他进制转换成二进制
转八进制方法,oct - 将其他进制转换成八进制
转16进制方法,hex - 将其他进制转换成16进制

3.原码、反码和补码
  • 正数的原码、反码和补码一样
1)原码:符号位+真值

真值是数字绝对值的二进制,符号位的特点是0表示正值,1表示是负值
10的真值:1010 -10的真值:1010
10的原码:01010, -10的原码:11010
计算机中10的原码:00001010 -10的原码:10001010

2)反码 - 符号位不变,其他位取反

-10的反码(1字节):11110101

3)补码 - 反码加1

-10的补码:11110110

位运算:

&(按位与)、|(按位或),^(按位异或),~(按位取反),<<(左移),>>(右移)
位运算的特点:运算效率高,内存消耗少;但是完成复杂运算的时候难度高

  • 1)快速判断数字的奇偶性:数字 & 1 直接操作底层,判断最后一位是0还是1,0.则是整数,1则是奇数
    print(8 & 1)
  • 2)快速对整数进行乘2或者整除2操作 数字<<2
    print(8 << 1)

猜你喜欢

转载自blog.csdn.net/SaharaLater/article/details/111057464