python学习4 - 强制转化,原码反码补码,位运算,if,while,for语句,range,enumerate函数,break,continue,pass语句

1、type() 和 isinstance()

  • 均是判断类型信息

使用方法:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0fLYqwrf-1626165920088)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210713150001357.png)]

区别:

type()不考虑继承关系,但是isinstance()考虑继承关系

2、强制类型转换

与其他语言(C语言,Java语言)操作一致

3、原码,反码,补码

  • 原码 - 二进制数字

  • 反码 :

    • 正数:二进制的0全部改成1,1全部改成0
    • 负数 :符号位不变,其他与正数一致
  • 补码:

    • 正数:就是原码
    • 负数:反码+1
  • 符号位:0为正数,1为负数

4、位运算

  • ~运算:把补码中的0,1全部取反

    ~1 = 0

    ~ 0 = 1

  • 按位与操作 & : 俩个对应位置均为1,最后就是1

    1&1=1

    1&0=0

    0&1=0

    0&0=0

  • 按位或操作 | :只要有一个是1,就全是1

    1 | 1 = 1

    1 | 0 = 0

    0 | 0 = 0

    0 | 1 = 0

  • 按位异或操作:俩互相不同的时候为1,相同则为0

    1^1 = 0

    1^0 = 1

    0^1 = 1

    0^0 = 0

  • 按位左移表示乘法

    11 << 2 = 11 * (2 ^2 )= 44

  • 按位右移表示除法

    11 >> 2 = 11 ➗(2^2)= 2

  • 快速交换ab的值

    a ^= b

    b ^= a

    a ^= b

  • 通过 a & (-a)快速获取a的最后一位为1 的位置的整数:

    00 00 01 01 -> 5

    11 11 10 11 -> -5

    计算结果: 00 00 00 01 -> 1

  • 位运算实现整数集合:

    a的补集 == ~a

    a交b == a&b

    a并b == a|b

    a差b == a&(~b)

  • 整数在内存中是以补码的形式存在的,输出也是以补码形式

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DanrxnfN-1626165920090)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210713155519951.png)]

  • bin()的话,负数。。。居然是加了一个符号。。。好坑

  • python的整型不限制长度

5、if条件语句

  • 单独一个if

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fdo6Pwb8-1626165920092)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210713160015219.png)]

  • if - else语句
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SLgkeP8U-1626165920094)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210713160620410.png)]
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bYEzN0Vn-1626165920095)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210713160649234.png)]

if-else语句有严格的缩进,如果缩进错误,会报错

  • if - elif else
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cAJxlfgM-1626165920096)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210713161508477.png)]

  • assert这个关键词我们称之为“断言”,当这个关键词后边的条件为 False 时,程序自动崩溃并抛出AssertionError的异常。
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LCGsoH6U-1626165920097)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210713162336751.png)]

6、循环语句

  • 循环语句也是在while后面要加上号,之前C语言,Java语言需要的{},全部变成
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mqsyuuCc-1626165920098)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210713162624018.png)]

  • 对字符串进行截取:用[ ]
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Afqa2SeW-1626165920099)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210713163209257.png)]
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-k6OoAKm6-1626165920099)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210713163701159.png)]

  • 比较冒号在数字前后的差异
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-osB9ameP-1626165920100)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210713163947973.png)]

  • ·while-else·循环
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Neem0Usn-1626165920101)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210713164452383.png)]

7、for循环

标准:

for *** in ***:
     ****;

在这里插入图片描述

  • 如果是直接输出,就是换行,有啥要求需要用上面代码的end才行
    在这里插入图片描述
  • 键值对:
    在这里插入图片描述
  • for - else 类似于: while - else
    在这里插入图片描述

range()函数

里面的第三个参数是代表的是,输出的数字要中间间隔3才可以
在这里插入图片描述

enumerate()函数

属于枚举
在这里插入图片描述

  • 数组与enumerate的区别:
    在这里插入图片描述

break语句 - 直接跳出循环

在这里插入图片描述

continue语句 - 跳出当前循环

在这里插入图片描述

pass语句

使用方法:
在这里插入图片描述
目的:起到应该占位的作用,没有什么实际意义,就是让结构更加完整
就是当你不知道这个代码需要写什么的时候,你可以写一个pass,然后再继续后续代码

推导式

[ expr for value in collection [if condition] ]

  • y = [a * 2 for a in x] # a属于x,计算对应的2a的值
x = [-4, -2, 0, 2, 4]
y = [a * 2 for a in x] # a属于x,计算对应的2a的值
print(y)
# [-8, -4, 0, 4, 8]
  • i属于1到10,求i的平方
x = [i ** 2 for i in range(1, 10)]
print(x)
# [1, 4, 9, 16, 25, 36, 49, 64, 81]
  • 从0-5,第一个i代表序号,第二个i代表i的二次方
x = [(i, i ** 2) for i in range(6)]
print(x)

# [(0, 0), (1, 1), (2, 4), (3, 9), (4, 16), (5, 25)]
  • 二维数组类似:
    i属于0-2,j属于0-2,x[0][0]代表第一个数字
x = [[i, j] for i in range(0, 3) for j in range(0, 3)]
print(x)
# [[0, 0], [0, 1], [0, 2], [1, 0], [1, 1], [1, 2], [2, 0], [2, 1], [2, 2]]

x[0][0] = 10
print(x)
# [[10, 0], [0, 1], [0, 2], [1, 0], [1, 1], [1, 2], [2, 0], [2, 1], [2, 2]]
  • 求和
s = sum([i for i in range(101)])
print(s)  # 5050
s = sum((i for i in range(101)))
print(s)  # 5050
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Bessie_Lee_gogogo

你的鼓励是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值