1、Python3简介
解释型语言:不需要编译,解释器执行。
交互式语言:命令行直接执行代码。
面向对象语言:支持面向对象的风格,可以将代码封装在对象中。
2、基础语法
标识符:由字母、数字和下划线组成,第一个字符为字母或下划线,大小写敏感。
注释:单行注释使用#,多行注释使用'''或者"""。
多行语句:多行语句使用\连接。
3、基本数据类型
Python3包含六个标准数据类型:
不可变数据:Number(数字)、String(字符串)、Tuple(元组)
可变数据:List(列表)、Dictionary(字典)、Set(集合)
3.1、数字
支持int、float、bool、complex(复数)
3.2、字符串
字符串用单引号 ' 或双引号 " 括起来,同时使用反斜杠 \ 转义特殊字符。
3.3、元组
元组写在小括号 () 里,元素之间用逗号隔开。与列表类似,不同之处在于元素不可修改。
3.4、列表
列表是写在方括号 [] 之间、用逗号分隔开的元素列表。列表中元素的类型可以不相同,它支持数字,字符串甚至可以包含列表。
3.5、字典
字典写在大括号{}之间,用逗号隔开。是一个无序的key:value集合,key唯一且不可变。空字典用{}创建。
3.6、集合
集合写在大括号{}之间,用逗号隔开。空集合用set()创建。
4、运算符
算数运算符:加(+)、减(-)、乘(*)、除(/)、取模(%)、幂(**)、取整除(//)
比较(关系)运算符:等于(==)、不等于(!=)、大于(>)、小于(<)、大于等于(>=)、小于等于(<=)
赋值运算符:简单赋值(=)、加法赋值(+=)、减法赋值(-=)、乘法赋值(*=)、除法赋值(/=)、取模赋值(%=)、幂赋值(**=)、取整赋值(//=)、海象运算符(:/)(表达式内部赋值)
逻辑运算符:且(and)、或(or)、非(not)
位运算符:按位与(&)、按位或(|)、按位异或(^)、按位取反(~)、左移动(<<)、右移动(>>)
成员运算符:in、not in
身份运算符:is、not is
运算符优先级:运算符从高到低,如下表
运算符 | 描述 |
---|---|
** | 指数 (最高优先级) |
~ + - | 按位翻转, 一元加号和减号 (最后两个的方法名为 +@ 和 -@) |
* / % // | 乘,除,求余数和取整除 |
+ - | 加法减法 |
>> << | 右移,左移运算符 |
& | 位 'AND' |
^ | | 位运算符 |
<= < > >= | 比较运算符 |
== != | 等于运算符 |
= %= /= //= -= += *= **= | 赋值运算符 |
is is not | 身份运算符 |
in not in | 成员运算符 |
not and or | 逻辑运算符 |
5、条件控制
if condition_1:
statement_block_1
elif condition_2:
statement_block_2
else:
statement_block_3
6、循环语句
while循环
while 判断条件(condition):
执行语句(statements)……
while循环使用else语句
while <expr>:
<statement(s)>
else:
<additional_statement(s)>
for循环
for <variable> in <sequence>:
<statements>
else:
<statements>
range()函数
for i in range(5):
print(i)
break:跳出当前循环体。
continue:跳过当次循环。
pass:空语句,占位符,为了保持代码的完成性。
7、迭代器与生成器
迭代器是访问集合元素的一种方式,有两个基本方法:iter()和next(),可以用来遍历字符串、列表和元组。
list=[1,2,3,4]
it = iter(list) # 创建迭代器对象
print (next(it)) # 输出迭代器的下一个元素
生成器是使用了 yield 的函数,返回值为一个迭代器对象,在调用生成器运行的过程中,每次遇到 yield 时函数会暂停并保存当前所有的运行信息,返回 yield 的值, 并在下一次执行 next() 方法时从当前位置继续运行。
import sys
def fibonacci(n): # 生成器函数 - 斐波那契
a = 0
b = 1
c = 0
while True:
if (c > n):
return
yield a
a = b
b = a + b
c += 1
f = fibonacci(10) # f 是一个迭代器,由生成器返回生成
while True:
try:
print (next(f), end=" ")
except StopIteration:
sys.exit()
# 0 1 1 2 3 5 8 13 21 34 55
# TODO 有时间再整理。。。