一.Python 是一种高层次的结合了解释性、编译性、交互性和面向对象的高级程序设计语言。
二.python文件类型
1.源代码:文件名以 .py为扩展名, 文件第一行 #! /usr/bin/python
2.字节代码: python源文件编译后文件, 以 .pyc为扩展名, 编译方法: import py_compile py_compile.py_compile("hello.py")
3.优化代码: python源文件经过优化后的文件, 执行速度会更快, 以 .pyo为扩展名, 优化方式: python -o -m py_compile hello.py
三.变量
1.python变量是计算器内存中一块区域, 变量可以存储规定范围内的值, 而值可以变化, 与java不同的是, python变化的数据类型不固定
2.变量命名: 由字母,数字,下滑线组成, 不能以数字开头, 不能使用关键字
3.查询变化在内存中地址: id (变量名)
四.运算符和表达式
1.赋值运算符: 变量算术运算完成后赋值给自己, +=, -=, *=, /=, %=
2.算术运算符: 加减乘除 + - * / , // 整除, %取余数, ** 幂运算( n**m n的m次方), 数值的除法包含两个运算符:/ 返回一个浮点数,// 返回一个整数。
3.关系运算符: >, <, =, !=, ==完全等于(3==3.0)
4.逻辑运算符: 与 and, 或 or ,非 not
5.表达式: 将不同数据(包括变量,函数)用运算符按一定规则连接起来的式子
6.运算符计算优先级:
运算符说明 | Python运算符 | 优先级 |
---|---|---|
小括号 | () | 20 |
索引运算符 | x[index] 或 x[index:index2[:index3]] | 18、19 |
属性访问 | x.attrbute | 17 |
乘方 | ** | 16 |
按位取反 | ~ | 15 |
符号运算符 | +(正号)或 -(负号) | 14 |
乘、除 | *、/、//、% | 13 |
加、减 | +、- | 12 |
位移 | >>、<< | 11 |
按位与 | & | 10 |
按位异或 | ^ | 9 |
按位或 | | | 8 |
比较运算符 | ==、!=、>、>=、<、<= | 7 |
is 运算符 | is、is not | 6 |
in 运算符 | in、not in | 5 |
逻辑非 | not | 4 |
逻辑与 | and | 3 |
逻辑或 | or | 2 |
五.数据类型
1.数字(number):
int: 整型 (python3中没有long
float: 浮点型
bool: 在 Python2 中是没有布尔型的,它用数字 0 表示 False,用 1 表示 True。到 Python3 中,把 True 和 False 定义成关键字了,但它们的值还是 1 和 0,它们可以和数字相加。
complex复数: 4+3j
2.字符串(string): 单引号和双引号相同, """ """ 三引号中可以为段落, Python 中的字符串有两种索引方式,从左往右以 0 开始,从右往左以 -1 开始
- print(str) # 输出字符串
- print(str[0:-1]) # 输出第一个到倒数第二个的所有字符
- print(str[0]) # 输出字符串第一个字符
- print(str[2:5]) # 输出从第三个开始到第五个的字符
- print(str[2:]) # 输出从第三个开始的后的所有字符
- print(str * 2) # 输出字符串两次
- print(str + '你好') # 连接字符串
- print('hello\nrunoob') # 使用反斜杠(\)+n转义特殊字符
- print(r'hello\nrunoob') # 在字符串前面添加一个 r,表示原始字符串,不会发生转义(这里的 r 指 raw,即 raw string)
3.元组(tuple): 元组与列表类似,不同之处在于元组的元素不能修改。元组写在小括号 () 里,元素之间用逗号隔开,元组中的元素类型也可以不相同。
- 元组中可以包含list
- tup1 = () # 空元组
- tup2 = (20,) # 一个元素,需要在元素后添加逗号
4.列表(list):
- print (list) # 输出完整列表
- print (list[0]) # 输出列表第一个元素
- print (list[1:3]) # 从第二个开始输出到第三个元素
- print (list[2:]) # 输出从第三个元素开始的所有元素
- print (tinylist * 2) # 输出两次列表
- print (list + tinylist) # 连接列表
- List中的元素是可以改变的 a[0] = 9
- Python 列表截取可以接收第三个参数,参数作用是截取的步长 b[0,5,2] 表示从0到5, 步长为2,隔一个取一个
5.集合(set): 集合是由一个或数个形态各异的大小整体组成的,构成集合的事物或对象称作元素或是成员。基本功能是进行成员关系测试和删除重复元素。可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。
创建格式:
- parame = {value01,value02,...}
- set(‘asghhffg’)
set可以进行集合运算:
- a = set('abracadabra')
- b = set('alacazam')
- print(a)
- print(a - b) # a 和 b 的差集
- print(a | b) # a 和 b 的并集
- print(a & b) # a 和 b 的交集
- print(a ^ b) # a 和 b 中不同时存在的元素s.
集合的基本操作
- 添加元素: s.add(x) , s.update(x) ---参数可以是列表,元组,字典等
- 移除元素: s.remove( x ), s.discard( x ) ---如果元素不存在,不会发生错误, s.pop()---随机删除一个元素, 在交互模式是删除第一个
- 清空元素: s.clear()
6.字典(dictionary): 字典是无序的对象集合。字典当中的元素是通过键来存取的,是一种映射类型,字典用 { } 标识,它是一个无序的 键(key) : 值(value) 的集合。键必须使用不可变类型。在同一个字典中,键(key)必须是唯一的。
- dict = {}
- dict['one'] = "1 - 菜鸟教程"
- dict[2] = "2 - 菜鸟工具"
- tinydict = {'name': 'runoob','code':1, 'site': 'www.runoob.com'}
- print (dict['one']) # 输出键为 'one' 的值
- print (dict[2]) # 输出键为 2 的值
- print (tinydict) # 输出完整的字典
- print (tinydict.keys()) # 输出所有键
- print (tinydict.values()) # 输出所有值
六.条件控制
if 语句:
- 每个条件后面要使用冒号 :,表示接下来是满足条件后要执行的语句块。
- 使用缩进来划分语句块,相同缩进数的语句在一起组成一个语句块。
- 在Python中没有switch – case语句。
七.循环语句
1.while 循环:
while 判断条件:
语句
在 while … else 在条件语句为 false 时执行 else 的语句块
2.for循环
- for <variable> in <sequence>:
- <statements>
- else:
- <statements>
for 实例中使用了 break 语句,break 语句用于跳出当前循环体
3.range()函数: 你需要遍历数字序列,可以使用内置range()函数
- for i in range(5): 0-4
- for i in range(5,9): 5-8
- for i in range(0, 10, 3): 设置步长 0,3,6,9
- for i in range(len(a)): 遍历序列的索引
- list(range(5)): 创建一个列表
4.break: break 语句可以跳出 for 和 while 的循环体。如果你从 for 或 while 循环中终止,任何对应的循环 else 块将不执行。
5.continue: continue语句被用来告诉Python跳过当前循环块中的剩余语句,然后继续进行下一轮循环。
6.pass: pass是空语句,是为了保持程序结构的完整性,pass 不做任何事情,一般用做占位语句。
八.迭代器和生成器