“Life is short, You need Python” – Bruce Eckel
Environment
- OS: macOS Mojave
- Python version: 3.7
- IDE: Jupyter Notebook
目录
0. 写在前面
基于 Python 的应用方向很多,包括爬虫、大数据、机器学习等等,在学习 Python 之前搞懂想要做啥非常关键。这里做一点儿个人的Python学习笔记,本文包括发展进程、变量的概念、基本输入输出和代码风格。
1. 简介
1.1 发展进程
- 1989年圣诞节 Guido van Rossum 为了打发时间而开发了 Python 语言,取名自作者喜爱的剧《Monty Python’s Flying Circus》
- 1991年 使用 C 语言实现的 Python 解释器诞生,其能够调用C语言的库文件
- 1994年 Python 1.0 版本发布
- 2000年 Python 2.0 版本发布
- 2008年 Python 3.0 版本发布
- 2010年 Python 2.7 版本发布
- 2014年 宣布 Python 2.7 为 2.x 的最后一版,版本支持至 2020 年,期望用户尽快将项目迁移至 3.x 版本
- 2016年 几乎所有的库从 2.x 升级至 3.x 版本
1.2 语言性质
计算机语言可以从不同角度进行分类,包括
-
编译型和解释性
编译型语言的程序依靠编译器将源代码都编译成机器语言,并保存为二进制文件,在运行时计算机直接以机器语言执行,不需要编译,所以执行效率高,运行速度较快,可以脱离语言环境独立运行。但程序编译生成的机器码与编译时的运行环境有关,因此平台兼容性较差;
解释型语言的程序依靠解释器在运行时将代码一行一行地解释成为机器语言让计算机执行,每次运行时都需要解释,因此运行速度较慢。但程序可以在任何在安装了解释器的环境中运行,平台兼容性较好。 -
动态和静态
动态类型语言在程序运行时才会进行数据类型检查,即在编写代码时不用声明变量的数据类型,该语言会在变量第一次接受赋值时记录数据类型;
静态类型语言在代码编译时就会进行数据类型检查,即在编写代码时就要声明变量的数据类型。
Python 是一门解释型动态语言,语法简单,方便灵活。在实际运用中,可以通过C或C++套上Python接口来实现调用Python进行快速运算(如NumPy库)。
2. Python 中的变量
2.1 概念
在 Python 中,使用一个变量前,必须先对其赋值,通过对变量进行操作,实现对其中的数据进行增加、删除、索引、修改等。变量和值之间是一种引用的关系,如对于 a = 666
,Python 将(1)创建变量a,(2)再创建一块内存来存储值666,(3)再将变量 a 与值 666 通过指针连接。
2.2 命名
- 变量名可以包括字母、数字、下划线,但只能以字母或下划线开头
- 字母区分大小写
- 变量名不能与33个Python保留词相同
33个保留词
and, as, assert, break, class, continue, def, del , elif, else, except, False, finally, for, from, global, if, import, in, is, lambda, None, nonlocal, not, or, pass, raise, return, True, try, while, with, yield
2.3 赋值
=
赋值
x = 1 + 2
- 批量赋值
x, y = 1, 2
y, x = x, y # 可以方便得实现两个变量值的交换
- 增量赋值
x = 1
x += 6 # 相当于 x = x + 6
3. 注释
- 单行注释
# 一行从井号开始,后面的内容属于注释,不会被执行
- 跨行注释
"""
三个连续的
双引号或单引号
可以进行
跨行注释,
就像这样嘿嘿。
"""
4. 基本输入输出
4.1 基本输出
- 向输出流(默认为标准输出)打印值
print(*object, sep=' ', end='\n', file=sys.stdout, flush=False)
参数
- object:需要打印的东西,可为多个
- sep:多个object之间的分隔
- end:打印最后以什么字符结束
- file:一个类文件对象,默认为标准输出流
- flush:是否不缓存,即刻输出
返回值
- 输出无异常,则返回None
# 向桌面 666.txt 文件输出
with open('/Users/xxx/Desktop/666.txt', 'w') as f:
print('double click', '666', sep=' ', end='\n', file=f)
4.2 基本输入
input(prompt=None, /)
从标准输入流读取字符串
参数
- prompt:一个字符串,在用户输入之前打印在标准输出流上。prompt最后没有换行符
返回值
- 返回输入的内容,格式为字符串,不包含最后的换行符
例 在 Terminal 中运行 Python
后,
>>> content = input('Please input something: ')
Please input something: 666
>>> content
'666'
5. Python 代码风格
- 变量名尽量代表具体含义
# 定义一个方阵
square_matrix = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
- 变量名和函数名使用下划线分开的小写单词
def train_model(...):
"""训练模型"""
pass
- 类名用驼峰体
class Net(...):
"""定义模型"""
def __init__(self, num_classes=1000):
pass
- 常量作为特殊的变量,命名用全大写表示
BATCH_SIZE = 64
EPOCHS = 50
- 通常在二元运算符两边加上空格
x = 1
x += 6
1 > 2
- 对于不同优先级的运算符,可以在最低优先级的运算符周围添加空格
a = 1
b = 2*a + 3
c = a*a + b*b
- 在逗号之后加上空格
x, y = 1, 2
ls = [0, 1, 2, 3, 4]
- 在设定默认参数值或为函数传入参数时,不应加上空格
def foo(a=1, b=2):
pass
foo(a=3, b=4)