day4-循环关键字和位运算

day4-循环关键字和位运算

1.循环关键字

1)continue

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

当执行循环体的时候,如果遇到continue,每次循环直接结束,马上进入下次循环的判断(遇到continue结束一次循环)

练习:计算1到100中所有不能被3整除的数的和
sum = 0
 for x in range(0, 101, 3):
     sum += x
 print(5050 - sum)

2)break

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

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

练习:

 while True:
     value = input('请输入:')
     if value == '0':
         break
# 用while计算1+2+3+....+100
sum = 0
x = 1
while True:
    sum += x
    if x == 100:
        break
    x += 1
print(sum)
# 练习:找出1000以上第一个能被3整除的数
x = 1000
while True:
    if x % 3 == 0:
        break
    x += 1
print(x)

3)else

  • python中完整的for:

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

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

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

练习:

# 判断一个数是不是质数
num = 8
for x in range(2, num):
    if num % x == 0:
        print(num, '不是质数')
        break
    else:
        print(num, '是质数')
else:
    print('不是质数')

# 方法二
if num > 1:
    for x in range(2, int(num**0.5+1)):
        if num % x == 0:
            print(num, '不是质数')
        else:
            print(num, '是质数')
else:
    print('不是质数')

2.数据存储

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

1.进制

1)十进制

基数:0,1,2,3,4,5,6,7,8,9
进位:逢十进一
位权:10的N次方
程序中的表示方式:直接写 19 + 20 = 39

  1. 二进制

基数:0,1 (001, 110, 11011)
进位:逢二进一
位权:2的N次方 (N从0开始) 101011 ->
程序中的表示方式: 加前缀0b/0B
如:ob1010

3)八进制

基数:0,1,2,3,4,5,6,7
进位:逢八进一
位权:8的N次方
程序中的表示方式:加前缀0o/0O
如:0o26

4)十六进制

基数:0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f
进位:逢十六进一
位权:16的N次方
程序中的表示方式:加前缀0x/0X
如:0x29af

2.进制转换

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

 2)其他进制转十进制
# 转二进制方法:bin
print(bin(100))
# 转八进制方法:oct
print(oct(100))
# 转十六进制方法:hex
print(hex(100))
print(bin(0x100))

3.原码、反码和补码

正数的原码、反码和补码一样
1)原码:符号位+真值
真值指数字绝对值的二进制,符号位:0表示正,1表示负
10的真值:1010, -10的真值:1010
10的原码:01010, -10的原码:11010
计算机中10的原码:00001010 -10的原码:10001010

2)反码 - 符号位不变,其他位取反
-10的反码(1字节):11110101

3)补码 - 反码加1
-10的补码:11110110

4.位运算

位运算-&(按位与), |(按位或), ^(按位异或),~(按位取反), <<(左移), >>(右移)

位运算的特点:运算效率高,内存消耗少;但是完成复杂运算的时候难度高

练习:

  1. 快速判断数字的奇偶性: 数字 & 1(偶数为0,奇数为1)
print(2010 & 1)
num = 10
if num & 1 == 0:
    print('偶数')
else:
    print('奇数')
2) 快速乘2操作:数字 << 1
print(3 << 1)
3) 快速整除2操作: 数字 >> 1  (整除)
print(4 >> 1)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值