跳转至

基本运算符和流程控制

序列(列表元祖字符串)都能用操作符(比较`>`、连接`+`、重复`*`、复合赋值`*=`、成员`in`)以及 切片
for-elsewhile-else 当循环条件不成立而自然结束时,会执行else里的代码
python的位运算  &  <<  >>  
+ -的优先级高于-= +=
a += 2 等同于 a = a + 2
float运算陷阱 0.1 + 0.2 == 0.30000000000000004
or有真为真,and有假必假 / **and找假的,or找真的**   (10 and 0) or ('' and 0) 结果为 ''
res = x if x >y else y
约定俗成,全部大写的变量为常量 比如PI=3.1415

链式赋值 x=y=z=10
交叉赋值 x=10  y=20  x,y = y,x
解压赋值 
    nums=[1,2,3] 
    x,y,z = nums  
    m,*_ = nums     m为1
    *_,p = nums     n为3
    x,*y = "hello"  y为['e', 'l', 'l', 'o']

进制转换

基本运算符之数学运算

  • res = 3==3,5 # res -- (True,5)

  • 3<5>2 # True 相当于 x=5 3\<x>2 1<2<3 #True int(True) # 1 int(False) # 0

  • False None 0 “” {}

  • python的 位运算符 | & << >>

# 按位或运算符:只要对应的二个二进制位有一个为1时,结果位就为1
35 # 7
# 按位与运算符:参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0
3&6 # 2  
'''
0011  0011
0101  0110
----  ----
0111  0010
'''
3 << 2  # 3*(2^2) = 12
65 >> 1 # 65*(2^-1) = 32 注意:它向下取整了!
  • (1,2,3)+(4,5) # (1,2,3,4,5)
    序列(列表 元祖 字符串)都能用 操作符 (比较>、连接+、重复*、复合赋值*=、成员in) 以及 切片
    何为序列? 可以通过下标偏移量访问到它的一个或多个成员..

  • + - 的优先级高于 -= +=
    x=20 x-=x-x # 20

  • python float运算陷阱 0.1+0.2 == 0.3 # False

  • python的乘方运算符 ** eg: 3**5就是3的5次方


基本运算符之逻辑与其它运算

  • 假设n为整数,则表达式n&1==n%2的值为 True # -- n&1 n为单数结果为1;n为双数结果为0
  • or 有真为真 and 有假必假 not > and > or and找假的,or找真的
    3 and 5 # 5
    3 and not 5 # False
    0 or False and 1 # False
    1 and 2 or 3 --> 2
    0 and 2 or 3 --> 3

流程控制

  • 循环几次的判断
    语句x和语句y都会执行相同的次数,当num==4的时候,循环结束,即num需要加3个1(语句y需要执行3次),所以语句x也会执行3次
    PS: 结束循环的方式 条件判断 | break
num = 1
while num < 4:
    print("我爱我的祖国") # 语句x
    num = num + 1 # 语句y

我爱我的祖国
我爱我的祖国
我爱我的祖国
  • for-else、while-else 当循环条件不成立而自然结束时,会执行else里的代码
    参考:Effective Python第12条

  • sum(range(1,101))
    注意:若前面语句定义了名为sum的变量,那么内置函数sum就会失效!

  • 三元表达式: res = x if x >y else y


进制转换

"""
10 -> 2 8 16    bin()   oct()   hex()   
"""
bin(25) # 10->2 "0b11001"
oct(23) # 10->8 "0o27"
hex(28) # 10->16 "0x1c"

"""
2 8 16 -> 10    int("字符",base=要转换的字符是什么进制)
"""
int("0b11001",base=2) # 2->10 25
int("0o27",base=8)    # 8->10 23 
int("0x1c",base=16)   # 16->10 28

int('123',16)
    int内置函数将一个字符串或数字转换为整型
    若带base参数,123要以字符串的形式输入

int(hex(255),16) == 255 # True
hex(255) '0xff' # 16进制的'0xff'转换为10进制数为255

round(3.4)      # 3 返回浮点数的四舍五入值 返回值为int类型