文章目录

  • 1、type() 和 isinstance()
  • 2、强制类型转换
  • 3、原码,反码,补码
  • 4、位运算
  • 5、if条件语句
  • 6、循环语句
  • 7、for循环
  • 标准:
  • range()函数
  • enumerate()函数
  • break语句 - 直接跳出循环
  • continue语句 - 跳出当前循环
  • pass语句
  • 推导式


1、type() 和 isinstance()

  • 均是判断类型信息

使用方法:

python输出原码反码补码 python原码反码补码转换_python

区别:

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)
  • 整数在内存中是以补码的形式存在的,输出也是以补码形式
  • bin()的话,负数。。。居然是加了一个符号。。。好坑
  • python的整型不限制长度

5、if条件语句

  • 单独一个if
  • if - else语句
  • python输出原码反码补码 python原码反码补码转换_python_02


  • python输出原码反码补码 python原码反码补码转换_编程语言_03

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

  • if - elif else
  • python输出原码反码补码 python原码反码补码转换_反码_04

  • assert这个关键词我们称之为“断言”,当这个关键词后边的条件为 False 时,程序自动崩溃并抛出AssertionError的异常。
  • python输出原码反码补码 python原码反码补码转换_python_05

6、循环语句

  • 循环语句也是在while后面要加上号,之前C语言,Java语言需要的{},全部变成
  • python输出原码反码补码 python原码反码补码转换_反码_06

  • 对字符串进行截取:用[ ]
  • python输出原码反码补码 python原码反码补码转换_python输出原码反码补码_07


  • python输出原码反码补码 python原码反码补码转换_python_08

  • 比较冒号在数字前后的差异
  • python输出原码反码补码 python原码反码补码转换_补码_09

  • ·while-else·循环
  • python输出原码反码补码 python原码反码补码转换_python输出原码反码补码_10

7、for循环

标准:

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

python输出原码反码补码 python原码反码补码转换_python_11

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

range()函数

里面的第三个参数是代表的是,输出的数字要中间间隔3才可以

python输出原码反码补码 python原码反码补码转换_反码_12

enumerate()函数

属于枚举

python输出原码反码补码 python原码反码补码转换_python_13

  • 数组与enumerate的区别:

break语句 - 直接跳出循环

python输出原码反码补码 python原码反码补码转换_编程语言_14

continue语句 - 跳出当前循环

python输出原码反码补码 python原码反码补码转换_python输出原码反码补码_15

pass语句

使用方法:

python输出原码反码补码 python原码反码补码转换_编程语言_16


目的:起到应该占位的作用,没有什么实际意义,就是让结构更加完整

就是当你不知道这个代码需要写什么的时候,你可以写一个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