这是一篇关于python基础知识复习的博客,除了基础之外,还会涉及进阶以及算法设计。
第一部分 Python基础语法
1. 认识Python
1.1. Python简介
Python的创始人为Guido van Rossum
Python 的设计目标:
- 一门简单直观的语言并与主要竞争者一样强大
- 开源,以便任何人都可以为它做贡献
- 代码像纯英语那样容易理解
- 适用于短期开发的日常任务
Python设计哲学
- 优雅、明确、简单
Python开发者的哲学是:用一种方法,最好只有一种方法来做一件事
Python是完全面向对象的语言,在Python中一切皆对象
可扩展性:如果需要一段关键代码运行的更快或者希望某些算法不公开,可以把这部分程序用
C
或者C++
编写,然后在Python程序中使用它们。
1.2. 第一个Python程序
执行Python程序的三种方式:
解释器、交互式运行、IDE运行
Python是一个格式非常严格的程序设计语言。
Python2.x默认不支持中文。
ASCII
字符只包含256
个字符,不支持中文- Python2.x的解释器名称是Python
- Python3.x的解释器名称是Python3
2. 注释
- 注释的作用
使用自己熟悉的语言,在程序中对某些代码进行标注说明,增强程序的可读性
2.1. 单行注释
- 以 # 开头,# 右边的所有东西都被当做说明文字,而不是真正要执行的程序,只起到辅助说明作用
1
print("hello python") # 输出'hello python'
为了保证代码的可读性,# 后面建议先添加一个空格,然后再编写相应的说明文字;为了保证代码的可读性,注释和代码之间 至少要有 两个空格。
2.2. 多行注释
- 要在 Python 程序中使用多行注释,可以用 一对 连续的 三个 引号(单引号和双引号都可以)
1
2
3
4
5
6"""
这是一个多行注释
在多行注释之间,可以写很多很多的内容……
"""
print("hello python")
提示:
- 注释不是越多越好,对于一目了然的代码,不需要添加注释
- 对于 复杂的操作,应该在操作开始前写上若干行注释
- 对于 不是一目了然的代码,应在其行尾添加注释(为了提高可读性,注释应该至少离开代码 2 个空格)
- 绝不要描述代码,假设阅读代码的人比你更懂 Python,他只是不知道你的代码要做什么
2.3. 代码规范:
- Python 官方提供有一系列 PEP(Python Enhancement Proposals) 文档,其中第 8 篇文档专门针对 Python 的代码格式 给出了建议,也就是俗称的 PEP 8:
3. 运算符
3.1. 算数运算符
算数运算符是完成基本的算术运算使用的符号,用来处理四则运算,而“+”和“ * ”还可以用来处理字符串。
运算符 | 描述 | 实例 |
---|---|---|
+ | 加 | 10 + 10 = 20 |
- | 减 | 10 - 10 = 0 |
* | 乘 | 10 * 20 = 200 |
/ | 除 | 10 / 20 = 0.5 |
// | 取整除 | 返回除法的整数部分(商) 9 // 2 输出结果 4 |
% | 取余数 | 返回除法的余数 9 % 2 = 1 |
** | 幂 | 又称次方、乘方,2 ** 3 = 8 |
3.2. 比较(关系)运算符
运算符 | 描述 |
---|---|
== | 检查两个操作数的值是否 相等,如果是,则条件成立,返回 True |
!= | 检查两个操作数的值是否 不相等,如果是,则条件成立,返回 True |
> | 检查左操作数的值是否 大于 右操作数的值,如果是,则条件成立,返回 True |
< | 检查左操作数的值是否 小于 右操作数的值,如果是,则条件成立,返回 True |
>= | 检查左操作数的值是否 大于或等于 右操作数的值,如果是,则条件成立,返回 True |
<= | 检查左操作数的值是否 小于或等于 右操作数的值,如果是,则条件成立,返回 True |
- python2.x中判断 不等于 还可以使用
<>
运算符- python2.x中同样可以使用
!=
来判断不等于
3.3. 赋值运算符
- 在 Python 中,使用 = 可以给变量赋值。在算术运算时,为了简化代码的编写,Python 还提供了一系列的 与 算术运算符 对应的 赋值运算符,注意:赋值运算符中间不能使用空格。
运算符 | 描述 | 实例 |
---|---|---|
= | 简单的赋值运算符 | c = a + b 将 a + b 的运算结果赋值为 c |
+= | 加法赋值运算符 | c += a 等效于 c = c + a |
-= | 减法赋值运算符 | c -= a 等效于 c = c - a |
*= | 乘法赋值运算符 | c *= a 等效于 c = c * a |
/= | 除法赋值运算符 | c /= a 等效于 c = c / a |
//= | 取整除赋值运算符 | c //= a 等效于 c = c // a |
%= | 取 模 (余数)赋值运算符 | c %= a 等效于 c = c % a |
**= | 幂赋值运算符 | c *= a 等效于 c = c * a |
3.4. 身份运算符身份运算符比较两个对象的内存位置。常用的有两个身份运算符,如下所述:
运算符 | 描述 | 示例 |
---|---|---|
is | 判断两个标识符是不是引用同一个对象 | x is y,类似 id(x) == id(y) |
is not | 判断两个标识符是不是引用不同对象 | x is not y,类似 id(a) != id(b) |
辨析
- is 用于判断 两个变量引用的对象是否为同一个
- == 用于判断 引用变量的值 是否相等
3.5. 成员运算符Python成员运算符测试给定值是否为序列中的成员。 有两个成员运算符,如下所述:
运算符 | 描述 |
---|---|
in | 如果在指定的序列中找到一个变量的值,则返回true,否则返回false。 |
not in | 如果在指定序列中找不到变量的值,则返回true,否则返回false。 |
3.6. 逻辑运算符|
运算符 | 逻辑表达式 | 描述 |
---|---|---|
and | x and y | 只有 x 和 y 的值都为 True,才会返回 True 否则只要 x 或者 y 有一个值为 False,就返回 False |
or | x or y | 只要 x 或者 y 有一个值为 True,就返回 True 只有 x 和 y 的值都为 False,才会返回 False |
not | not x | 如果 x 为 True,返回 False 如果 x 为 False,返回 True |
3.7. 运算符优先级
- 以下表格的算数优先级由高到最低顺序排列:
运算符 | 描述 |
---|---|
** | 幂 (最高优先级) |
* / % // | 乘、除、取余数、取整除 |
+ - | 加法、减法 |
<= < > >= | 比较运算符 |
== != | 等于运算符 |
= %= /= //= -= += = *= | 赋值运算符 |
is is not | 身份运算符 |
in not in | 成员运算符 |
not or and | 逻辑运算符 |
<补>程序执行原理
- 操作系统会首先让 CPU 把 Python 解释器 的程序复制到 内存 中
- Python 解释器 根据语法规则,从上向下 让 CPU 翻译 Python 程序中的代码
- CPU 负责执行翻译完成的代码
Python 的解释器有多大?
- 执行以下终端命令可以查看 Python 解释器的大小
1
2
3
4
5
6
7
8# 1. 确认解释器所在位置
$ which python
# 2. 查看 python 文件大小(只是一个软链接)
$ ls -lh /usr/bin/python
# 3. 查看具体文件大小
$ ls -lh /usr/bin/python2.7
4. 变量
4.1. 变量定义
- 在 Python 中,每个变量 在使用前都必须赋值,变量 赋值以后 该变量 才会被创建
- 可以用 其他变量的计算结果 来定义变量
- 变量名 只有在 第一次出现 才是 定义变量
1
变量名 = 值
使用交互式方式,如果要查看变量内容,直接输入变量名即可,不需要使用
使用解释器执行,如果要输出变量的内容,必须要要使用
4.2. 变量的类型
- 在 Python 中定义变量是 不需要指定类型(在其他很多高级语言中都需要),Python 可以根据 = 等号右侧的值,自动推导出变量中存储数据的类型
- 数据类型可以分为 数字型 和 非数字型
- 数字型
- 整型 (int):Python3中的所有整数都表示为长整数。 因此,长整数没有单独的数字类型。
- 浮点型(float)
- 布尔型(bool) :真 True 非 0 数 —— 非零即真,假 False 0。
- 复数型 (complex):复数是由x + yj表示的有序对的实数浮点数组成,其中x和y是实数,j是虚数单位。
- 非数字型:有些运算符还支持这些数据类型,详见4.4.5.3 运算符。
- 字符串(str):加号(+)是字符串连接运算符,星号(*)是重复运算符。
- 列表(list)
- 元组(tuple)
- 字典(dict)
- 数字型
提示:在 Python 2.x 中,整数 根据保存数值的长度还分为:
int(整数)
long(长整数)
使用 type 函数可以查看一个变量的类型
1
In [1]: type(name)
<补>不同类型变量之间的计算
- 数字型变量 之间可以直接计算
- 在 Python 中,两个数字型变量是可以直接进行 算数运算的
- 如果变量是 bool 型,在计算时
- True 对应的数字是 1
- False 对应的数字是 0
- 在 Python 中可以使用 input 函数从键盘等待用户的输入
- 用户输入的 任何内容 Python 都认为是一个
字符串
1
字符串变量 = input("提示信息:")