Python 学习笔记

查看对象的反射属性

dir 列出所有属性、方法
getattr 获取字段

1
2
3
def ListClass(name):
for i in dir(name):
print(f"{i}--{getattr(name,i)}")

输入

  • input()

lambda

  • Python lambda表达式
  • https://zhuanlan.zhihu.com/p/91137035
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    from functools import reduce
    data = [(2, 2), (3, 4), (4, 1), (1, 3)]
    print(data.sort(key=lambda x: x[0]))

    print([x+1 for x in (1, 2, 3, 4)])
    # x for x in data[] if condition=> []
    print([x for x in (1, 2, 3, 4) if x % 2 == 0])
    # data为可迭代对象
    # map(lambda,data)=>map object
    print(list(map(lambda x: x*x, (1, 2, 3, 4))))
    # filter(lambda,data)=>filter object
    print(list(filter(lambda x: x % 2 == 1, (1, 2, 3, 4))))
    # reduce(lambda,data)
    # 将data的前两个元素与给lambda使用,并将返回值和下一个元素继续联合使用
    print(reduce(lambda x, y: x+y, (1, 2, 3, 4)))
    # lambda argument_list:expersion
    # https://zhuanlan.zhihu.com/p/91137035
    # https://bbs.huaweicloud.com/blogs/363952

Time

1
2
3
import time
# 格式化成2016-03-20 11:45:39形式
t = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())

多线程threading

多线程threading

Command执行

类型

  • type(object)
  • isinstance(object,type)

json

1
2
3
4
5
6
import json
dict = {}
js = json.dumps(dict) #字典转成json格式字符串

data = ""
dict = json.loads(data) #json格式字符串转成字典

Glob

  • /**配合recursive=True才能实现递归
  • data = glob.glob(xxxpath**, recursive=True)

文件操作

  • 创建多级目录:os.makedirs(“xx/xxx”)
  • shutil.copyfile(‘xx.py’, ‘d:/xx.py’)

读写数据

  • mode
    • w+ 文本可读可写,覆盖
    • wb 二进制可读可写,覆盖
    • a 文本追加
    • ab 二进制追加
  • 中文写入
    • encoding=”utf-8”
      1
      2
      3
      4
      with open("file.txt",mode="w",encoding="utf-8") as f:
      f.write(text)
      with open("file.txt",mode="r",encoding="utf-8") as f:
      text = f.read()

三元表达式

a = x if x>y else y

Python格式化二进制、位运算

整型的四种表现形式:

2 进 制:以’0b’开头。例如:’0b11011’表示10进制的27
8 进 制:以’0o’开头。例如:’0o33’表示10进制的27
10进制:正常显示
16进制:以’0x’开头。例如:’0x1b’表示10进制的27

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#0b0001是二进制,"{0:04b}"输出4位长度,不足高位补0
print("{0:04b}".format(0b0001))
#zero pad 三位,不足用0代替
print("{0:03}".format(2))

#format方法被用于字符串的格式化输出
print('{0}+{1}={2}'.format(1,2,1+2))
#省略数字:
print('{}+{}={}'.format(1,2,1+2))
#精度控制:
print('{0:.3}'.format(1/3))
0.333
#宽度控制:
print('{0:7}{1:7}'.format('use','python'))
use python
#精宽度控制(宽度内居左):
print('{0:<7.3}..'.format(1/3))
0.333 ..
#同理'>'为居右,'^'为居中
#https://www.cnblogs.com/Alexzzzz/p/6832253.html

#其实精宽度控制很类似于C中的printf函数。
#"%7s"的7表示输出7个字符宽,不足7个,空格补全,超过7个,超出部分也会显示
#修饰符前面加入了-,-表示左对齐,默认不加-时表示右对齐
#+不代表右对齐,输出正数前面的"正号"

#"%12.3f"输出宽度为12个字符,并且小数点的精度为3
#"%12.5d"修饰符小数点后的数字表示整数的长度,长度不够时,高位用0补全
#https://www.zsythink.net/archives/1411
1
2
3
4
5
#位运算
(0b1001)&(0b1111)
(0b1001)|(0b1111)
(0b1001)>>2
(0b1001)<<2

Python 学习笔记
https://automask.github.io/wild/2021/10/25/log/P_Python_Feature/
作者
Kyle Zhou
发布于
2021年10月25日
许可协议