1、python 六大数据类型
- int、float(数字)
- float: 提供大约17位的小数点精度和范围从-308到308的指数,等于 C 中的 double。
- str(字符串)
- list(列表)
- tuple(元组)
- set(集合)
- dict(字典)
2、GIL(Global Interpreter Lock,全局解释器锁)
GIL 是全局锁,同一个进程内,同一时刻只有一个线程能得到解释器。
GIL的实现原理:子线程释放 GIL 才会引发主线程调度其他子线程。
例如:子线程运行结束并释放 GIL锁,然后,主线程获得 GIL 锁并调度另外一个子线程,主线程调度线程增加了多线程耗时。
3、迭代器和生成器的区别
- 生成器是一种特殊的迭代器
- yield:带 yield 的函数是一个生成器,有一个 next 函数。
4、@property 有什么作用?
- @property 是 python 的一种装饰器,是用来修饰方法的,创建只读属性。
- 以调用属性的形式来调用被 @property 修饰的方法。
5、python 三元表达式
result = True if 1 == 1 else False
print(result)
6、is 和 == (注意和 java 中的 “==” 和 “equals” 区别)
- [ is ] :比较的是两个对象的地址,判断两个对象是否为同一个实例对象;
- [ == ]:比较的是两个对象的值,其调用了对象的 __eq__() 方法。
7、instance 和 type 的区别
- [ instance ]:用于判断,对象是否是指定类或其派生类的实例;
- [ type ]:用于判断,对象是否是指定类;
8、r'hello\nworld'
- r:让字符串中的转义字符不生效
9、打印汉字
print(chr(0b100111001011000))
# 乘
10、反射:
- 主要是应用于类的对象上,在运行时,将对象中的属性和方法反射出来。
- 反射的常用方法:
- hasaattr(obj,str)
- getattr(obj,str)
- setattr(obj,name,value)
- delattr(obj,str)
11、实例方法、静态方法(staticmethod) 和 类方法(classmethod)
- 实例方法:类和实例的属性和方法都可以访问调用
- classmethod:只能使用类属性和方法,不能使用实例属性和方法
- staticmethod:类属性方法和实例属性方法都不能使用, 只是依附于该类,相当于独立函数
12、with 语句
- with 语句操作文件为什么是安全的?
- 因为 with 语句开始的时候会调用 TextIOWarpper 对象前后会分别调用 __enter__() & __exit__() 函数。
13、调用其他目录
- sys.path.append(os.path.join(os.path.dirname(os.path.abspath(__file__)), "../"))
os.path.abspath(path) | 返回绝对路径 |
os.path.dirname(path) | 返回文件路径()不包含文件名 |
os.path.basename(path) | 返回文件名 |
os.path.join(path) | 合成路径 |
os.path.exists(path) | 判断路径 path 是否存在 |
sys.path.append(path) | 引用其他目录的模块 |
import datetime
d1 = datetime.datetime.strptime('2023-02-14 14:00:00', '%Y-%m-%d %H:%M:%S')
d2 = datetime.datetime.strptime(datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S'), '%Y-%m-%d %H:%M:%S')
print datetime.datetime.strptime(datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S'), '%Y-%m-%d %H:%M:%S')
print datetime.datetime.now()
delta = d2 - d1
print delta.days
print delta.seconds
print datetime.datetime.now()
# 文件读取异常处理,防止文件为空
import os
import sys
import json
try:
with open('test.txt', 'r') as file_read:
lines = file_read.readlines()
for line in lines:
print(line)
except FileNotFoundError as e:
print(e)
14、open() 函数
errors = 'ignore'
errors = 'replace'
补充说明:
单下划线
- _ :临时对象,程序中运行的最近一个结果
变量组成
- 标识(id('abc'))、类型(type('abc'))、值('abc')