Python基础笔记
用Python很多年,可感觉学的比较碎片,整理下之前的笔记。 学而时习之。
Python语言基础
语法
- 那些可以改变对象值的可变对象方法是没有返回值的
约定和语法
- 4空格对其
- 一行一个语句,没有;
- 使用\分割长语句,(和,除外
- 大小写敏感
- 只有类名是TitleCased,通常全小写
- 常量全大写
数据类型
字符串
- string.uppercase
import random
random.randint(1, 365)
import string
''.join(random.choice(string.ascii_uppercase + string.digits) for _ in range(40))
import uuid;
str(uuid.uuid4().get_hex().upper()[0:6])
时间
import datetime, time
dt = datetime.datetime.now()
### 时间转换成字符串
time.strftime("%Y%m%d%H%M%S", time.localtime())
格式化
### 用元组或字典作参数
%(error)s
%dictionary
### 数字转换成字符串并填充位数
'{:07}'.format(1)
'{:.0f}'.format(1.0)
### 转换为16进制
str.encode(“hex”)
"61”.decode(“hex”)
元组
单元素元组应在末尾添加’,‘否则会被作为分组操作符
Lists
是可变的,而strings不是
- += INPLACE_ADD
- str.iadd 会复制,但是list.iadd 会改变
deque 双端队列
- List更适合固定大小;
- deque支持性能更好的append/pop, 可设定最大队列.
分支控制
# if-else 单值的简洁写法
# value_when_true if condition else value_when_false
'Yes' if fruit == 'Apple' else 'No'
常用模块
常用内置函数
信息、帮助类
- dir()
- help()
- type()
- getattr(object, name[, default])
操作类
- int(), str()
- range()
- input()/对于py2的raw_input()
- zip([iterable, …]) : returns a list of tuples
- map(function, iterable, …): 在每个元素应用函数并返回结果列表
- sorted(student_tuples, key=itemgetter(2), reverse=True)
from operator import itemgetter, attrgetter
itemgetter = object[item]
attrgetter = object.attr
import sys
# 检查当前版本信息
sys.version_info
字符处理
- textwrap.dedent
- codecs: 编解码注册及基类
文件系统,I/O
常用模块
- shutil: 上层文件操作
- glob: unix查找规则的文件匹配
pathlib
Python3.4引入,面向对象,更易用. 不建议再使用繁琐的os.path.join
能自动处理操作系统差异.
from pathlib import Path
my_folder = Path("data/testfiles")
my_file = my_folder / "test.txt"
# 直接打开
print(my_file.read_text())
# 其他
print(my_file.name)
print(my_file.suffix)
print(my_file.exists())
print(my_file.absolute().as_uri())
os.path
只适用于偏底层且不被pathlib覆盖的功能.
- join(dir, file)
- basename(), dirname()
- splitext()
- os.path.expanduser(’~’) 用户主目录
os.walk('.').next()[1]
配置
configparser模块
- 值没有数据类型,默认存储为字符串型:getboolean、getint、getfloat
- DEFAULT部分提供所有其他section的默认值
- section名是大小写敏感,但key不区分大小写并以小写存储
- 尽量不使用行内注释
学习大纲
基础
- String, List, Dictionary
- Loops and Condition
- File I/O
- Functions
- Classes