
Python 语言指引
基础
Python 使用 # 添加注释信息
if __name__ == '__main__': # 当文件被直接运行时
变量
Python 的数据有类型,但是 Python 变量没有类型,声明变量不需要关键字。
# 给变量 name 赋值字符串
name = "Moha Online"
score = 100 # 给变量 score 赋值 100
Python 3.5 之后的版本添加了类型标注功能,但是 Python 还是弱类型的语言。
name: int = "Moha Online"
Python 3.6 之后,字符串前加 f(format)的格式字符串(f-strings)可用花括号 {} 引用变量或变量及其方法。
f"Hello, {name}!"
f"Hello, {name.title()}!"
常量
Python 无内建常量机制。
数值
整数相除得浮点数。Python 3.6+ 可在整数中加下划线 _,使大数在代码中易读。
字符串
f 字符串中的 {} 花括号用于转义,转为变量、方法的结果,输出花括号时双写。三双引号内文字可换行,用于生成 API 文档。
逻辑控制
if 条件,for 循环,末尾跟 : 冒号。多个条件判断用 and 或 or 连接。pass / break 可以跳过或退出循环。
for number in range():
car = 'bmw'
car == 'bmw' # True
car == 'bmw' and car != 'audi' # True
序列与集合
列表推导式
newlist = [expression for item in iterable if condition == True]
fruits = ["apple", "banana", "cherry", "kiwi", "mango"]
# Replace output
newlist = [x if x != "banana" else "orange" for x in fruits]
print(newlist) # output is: ['apple', 'orange', 'cherry', 'kiwi', 'mango']
列表操作
# 切割
fruits[:3] # ["apple", "banana", "cherry"]
# 复制
my_foods = fruits[:]
# 添加
fruits.append('pear')
# 逻辑判断
'apple' in fruits # True
元组 tuple
只读的列表,小括号 ( ) 定义。
字典
对象,花括号 { } 定义,方括号 [ ] 引用确定存在的属性,.get(KEY) 引用不确定存在的属性,不存在时返回 None
。调用 .items() 的结果可遍历属性。
# 遍历
for key, value in dictionary.items():
# 只遍历属性名
for key in dictionary:
for key in dictionary.keys():
集合 set
花括号 { } 定义,无序、非重元素集。
函数
有默认值的形参放最后。变长参数转 tuple 后传入 *形参。变长键值对转 dictionary 后传入 **形参。函数声明下一行用 3 双引号写 API 文档。
类
__表示私有,_表示保护。
模块 Module
.py 结尾的文件。
常用内置模块
第三方库
用 pip 管理。
matplotlib
import matplotlib.pyplot as plt
plt.style.available
fig, ax = plt.subplots()
ax.plot([], [])
plt.show()
plotly
# 基于地图的散点图
import plotly.express as pe
import pandas as p
fig = pe.scatter_geo(lat=lats, lon=lons, size=mags, title=title)
# pe.colors.named_colorscales()
fig = pe.scatter_geo(lat=lats, lon=lons, size=mags, title=title,
color=mags,
color_continuous_scale='Viridis',
labels={'color':'Magnitude'},
projection='natural earth',
)
fig.show()
# 隐藏 size 需要同时提供 DataFrame 和 hover_data 参数
f = p.DataFrame({'lat':lats, 'lon':lons, 'color': mags, 'size': mags})
fig = pe.scatter_geo(f, lat='lat', lon='lon', size='size', title=title,
color='color',
color_continuous_scale='Viridis',
labels={'color':'magnitude'},
projection='natural earth',
hover_data={'size': False},
)
Pygame
import pygame
错误处理
try:
except FileNotFoundError:
except ValueError:
raise ValueError("EXPLAIN")
except: # 处理所有其他错误
else: