Python 简介
Python 定义
是一个免费、开源、跨平台、动态、面向对象的编程语言。
Python程序的执行方式
交互式
在命令行输入指令,回车即可得到结果。
- 打开终端
- 进入交互式:python3
- 编写代码:print(“hello world”)
- 离开交互式:exit()
文件式
将指令编写到.py文件,可以重复运行程序。
- 编写文件。
- 打开终端
- 进入程序所在目录:cd 目录
- 执行程序: python3 文件名
执行过程
计算机只能识别机器码(1010),不能识别源代码(python)。
1.由源代码转变成机器码的过程分成两类:编译和解释。
2.编译:在程序运行之前,通过编译器将源代码变成机器码,例如:C语言。
-- 优点:运行速度快
-- 缺点:开发效率低,不能跨平台。
3.解释:在程序运行之时,通过解释器对程序逐行翻译,然后执行。例如Javascript
-- 优点:开发效率高,可以跨平台;
-- 缺点:运行速度慢。
4. python是解释型语言,但为了提高运行速度,使用了一种编译的方法。编译之后得到pyc文件,存储了字节码(特定于Python的表现形式,不是机器码)。
源代码 -- 编译 --> 字节码 -- 解释 --> 机器码
|————1次———|
解释器类型
- CPython(C语言开发)
- Jython (java开发)
- IronPython (.net开发)
pycharm常用快捷键
- 移动到本行开头:home键
- 移动到本行末尾:end键盘
- 注释代码:ctrl + /
- 复制行:ctrl +d
- 选择列:鼠标左键 + alt
- 移动行:shift + alt + 上下箭头
- 智能提示:Ctrl + Space
注释
给人看的,通常是对代码的描述信息。
- 单行注释:以#号开头。
- 多行注释:三引号开头,三引号结尾。
函数
表示一个功能,函数定义者是提供功能的人,函数调用者是使用功能的人。
例如:
- print(数据) 作用:将括号中的内容显示在控制台中
- 变量 = input(“需要显示的内容”) 作用:将用户输入的内容赋值给变量
- Round(数字),四舍六入(不考虑正负号),五取偶
- 定义:关联一个对象的标识符。三个特征:id、type、value
- 命名:必须是字母或下划线开头,后跟字母、数字、下划线。
变量
1.只能由字母数字下划线组成,不能以数字开头,不能使用关键字(蓝色),否则发生语法错误:SyntaxError: invalid syntax。
2.建议命名:字母小写,多个单词以下划线隔开。变量名应既简短又具有描述性。慎用大写字母I 和 O,容易被看成数字1和0。
3.赋值:创建一个变量或改变一个变量关联的数据。
4.语法:变量名 = 数据
变量名1 = 变量名2 = 数据
变量名1, 变量名2, = 数据1, 数据2
5.
del 语句
1.语法:
del 变量名1, 变量名2
2.作用:
用于删除变量,同时解除与对象的关联.如果可能则释放对象。
3.自动化内存管理的(数据对象的)引用计数:
每个对象记录被变量绑定(引用)的数量,当为0时被销毁。
核心数据类型
- 在python中变量没有类型,但关联的对象有类型。
- 通过type函数可查看。
- 表示不存在的特殊对象。
- 作用:占位和解除与对象的关联。
- 表示整数,包含正数、负数、0。
空值对象 None
整形int
如: -5, 100, 0
- 字面值:
十进制:5
二进制:0b开头,后跟1或者0
八进制:0o开头,后跟0~7
十六进制:0x开头,后跟0~9,A~F,a~f(数据的内存地址是以16进制数表示的)
- 小整数对象池:CPython 中整数 -5 至 256,永远存在小整数对象池中,不会被释放并可重复使用。
- 表示小数,包含正数、负数,0.0)。
- 字面值:
浮点型float
小数:1.0 2.5
科学计数法:e/E (正负号) 指数
1.23e-2 (等同于0.0123)
1.23456e5(等同于123456.0)
字符串str
是用来记录文本信息(文字信息)。
字面值:双引号
str.upper():将字符串改为全部大写
str.lower():将字符串改为全部小写
str.title():将字符串中每个单词的首字母都改为大写
str.rstrip():删除右边空白
str.lstrip():删除左边空白
str.strip():删除两端空白
复数complex
由实部和虚部组成的数字。
虚部是以j或J结尾。
字面值: 1j 1+1j 1-1j
布尔bool
用来表示真和假的类型
True 表示真(条件满足或成立),本质是1
False 表示假(条件不满足或不成立),本质是0,” ”
数据类型转换
- 转换为整形: int(数据)
- 转换为浮点型:float(数据)
- 转换为字符串:str(数据)
- 转换为布尔:bool(数据)
结果为False:bool(0) bool(0.0) bool(None)
- 混合类型自动升级:
4/2 返回的结果是 2.0
1 + 3.0 返回结果是: 4.0
运算符
算术运算符
+ 加法
- 减法
* 乘法
/ 除法:结果为浮点数
// 地板除:除的结果去掉小数部分(商为负数时去掉小数部分再 -1)向下圆整
% 求余
** 幂运算
优先级从高到低: ()
**
* / % //
+ -
增强运算符
y += x 等同于 y = y + x
y -= x 等同于 y = y - x
y *= x 等同于 y = y * x
y /= x 等同于 y = y / x
y //= x 等同于 y = y // x
y %= x 等同于 y = y % x
y **= x 等同于 y = y ** x
比较运算符
< 小于
<= 小于等于
> 大于
>= 大于等于
== 等于
!= 不等于
返回布尔类型的值
比较运算的数学表示方式:0 <= x <= 100
逻辑运算符
与and
表示并且的关系,一假俱假。
示例:
True and True # True
True and False # False
False and True # False
False and False # False
或or
表示或者的关系,一真俱真
示例:
True or True # True
True or False # True
False or True # True
False or False # False
非 not
表示取反
例如:
not True # 返回False
not False # 返回True
短路运算
一但结果确定,后面的语句将不再执行。
身份运算符
语法:
x is y
x is not y
作用:
is 用于判断两个对象是否是同一个对象,是时返回True,否则返回False。
is not 的作用与is相反
优先级
高到低:
算数运算符
比较运算符
身份运算符
逻辑运算符
语句
行
- 物理行:程序员编写代码的行。
- 逻辑行:python解释器需要执行的指令。
- 建议一个逻辑行在一个物理行上。
- 如果一个物理行中使用多个逻辑行,需要使用分号;隔开。
5. 如果逻辑行过长,可以使用隐式换行或显式换行。
隐式换行:所有括号的内容换行,称为隐式换行
括号包括: () [] {} 三种
显式换行:通过折行符 (反斜杠)n换行,必须放在一行的末尾,目的是告诉解释器,下一行也是本行的语句。
pass 语句
通常用来填充语法空白。
选择语句
If elif else 语句
- 作用:
让程序根据条件选择性的执行语句。
- 语法:
if 条件1:
语句块1
elif 条件2:
语句块2
else:
语句块3
- 说明:
if,elif,else所对应的条件是彼此互斥的。:不能省略
elif 子句可以有0个或多个。
else 子句可以有0个或1个,且只能放在if语句的最后。
if 语句的真值表达式
if 100:
print("真值")
等同于
if bool(100):
print("真值")
条件表达式
语法:变量 = 结果1 if 条件 else 结果2
作用:根据条件(True/False) 来决定返回结果1还是结果2。
循环语句
while语句
- 作用:
可以让一段代码满足条件,重复执行。
- 语法:
while 条件:
满足条件执行的语句
else:
不满足条件执行的语句(可以看循环是从条件离开的还是从循环体离开的)
- 说明:
else子句可以省略。
在循环体内用break终止循环时,else子句不执行。
for 语句
- 作用:
用来遍历可迭代对象的数据元素。适用于预定次数的循环
可迭代对象是指能依次获取数据元素的对象,例如:容器类型。
- 语法:
for 变量列表 in 可迭代对象:
语句块1
else:
语句块2
- 说明:
else子句可以省略。
在循环体内用break终止循环时,else子句不执行。
#示例
while True:
循环体(如需要多次输入,input)
if 条件:
break # 退出循环
range 函数
- 作用:用于生成容器的索引作为for循环遍历的可迭代对象
用来创建一个生成一系列整数的可迭代对象(也叫整数序列生成器)。
- 语法:
range(开始点,结束点,间隔)
- 说明:
函数返回的可迭代对象可以用for取出其中的元素
返回的数字不包含结束点
开始点默认为0
间隔默认值为1
跳转语句
break 语句
- 跳出循环体,后面的代码不再执行。
- 可以让while语句的else部分不执行。
continue 语句
跳过本次,继续下次循环。
for 循环嵌套
1.end=""不换行,print()换行
2.外层循环做一次,内层循环全做完
3.外层循环控制行,内层循环控制列(控制一维,平面上的问题)
4.先写内再写外
容器类型
通用操作
数学运算符
- +:用于拼接两个容器
- +=:用原容器与右侧容器拼接,并重新绑定变量
- *:重复生成容器元素
- *=:用原容器生成重复元素, 并重新绑定变量
- < <= > >= == !=:依次比较两个容器中元素,一但不同则返回比较结果。
- 语法:
成员运算符
数据 in 序列
数据 not in 序列
- 作用:
如果在指定的序列中找到值,返回bool类型。
索引index
- 作用:访问容器元素,定位单个元素
- 语法:容器[index]
- 说明:索引必须是整数,注意索引越界
正向索引从0开始,第二个索引为1,最后一个为len(s)-1。
反向索引从-1开始,-1代表最后一个,-2代表倒数第二个,以此类推,第一个是-len(s)。
切片slice
- 作用:
从容器中取出相应的元素重新组成一个容器(在赋值号 ”=”右侧时),在赋值号(=)左侧时起定位作用定位多个元素。
- 语法:
容器[(开始索引):(结束索引)(:(步长))]
- 说明:
小括号()括起的部分代表可省略
结束索引不包含该位置元素
步长是切片每次获取完当前元素后移动的偏移量
4. 切片:定位多个元素
message = "我叫齐天大圣。"
print(message[2:6])# 齐天大圣
print(message[2:6:2])# 齐大
# 开始索引,默认从头开始。
print(message[:6])# 我叫齐天大圣
# 结束索引,默认到末尾。
print(message[2:])# 齐天大圣。
# 正向获取
print(message[:])# 我叫齐天大圣。
# 反向获取
print(message[::-1])# 。圣大天齐叫我
print(message[-3:-6:-1])# 大天齐
# 可以同时使用反向与正向索引
print(message[-3:1:-1])# 大天齐
print(message[3:1])# 空
print(message[3:1:-1])# 天齐
print(message[1:1])# 空
print(message[-2:1])# 空
print(message[1:500])# 叫齐天大圣。
内建函数
- len(x) 返回序列的长度
- max(x) 返回序列的最大值元素
- min(x) 返回序列的最小值元素
- sum(x) 返回序列中所有元素的和(元素必须是数值类型)
字符串 str
定义
由一系列字符序列组成的不可变容器,存储的是字符的编码值。
编码
- 字节byte:计算机最小存储单位,等于8 位bit.
- 字符:单个的数字,字母与符号。
- 字符集(码表):存储字符与二进制序列的对应关系。
- 编码:将字符转换为对应的二进制序列的过程。ord(字符串)-->数字
- 解码:将二进制序列转换为对应的字符的过程。chr(数字)-->字符串
- 编码方式:
--ASCII编码:包含英文、数字等字符,每个字符1个字节。
--GBK编码:兼容ASCII编码,包含21003个中文;英文1个字节,汉字2个字节。
--Unicode字符集:国际统一编码,旧字符集每个字符2字节,新字符集4字节。
-- UTF-8编码:Unicode的存储与传输方式,英文1字节,中文3字节。
相关函数
- ord(字符串):返回该字符串的Unicode码。
- chr(整数):返回该整数对应的字符串。
字面值
可见即所得。’’ “” ‘’’‘’’ “”””””
单引和双引号的区别
- 单引号内的双引号不算结束符 #同种引号不能嵌套使用
- 双引号内的单引号不算结束符
- 换行会自动转换为换行符
- 三引号内可以包含单引号和双引号
- 作为文档字符串
- 改变字符的原始含义。
三引号作用
转义字符
’ ” ”””
换行符输出
\
制表符,输出是缩进