python基础day-04:循环关键字和位运算


 

循环关键字

 

一、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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值