1.Python简介
Python提供了高效的高级数据结构,还能简单有效地面向对象编程。Python语法和动态类型,以及解释型语言的本质,使它成为多数平台上写脚本和快速开发应用的编程语言。
由荷兰人,吉多·范罗苏姆(Guido van Rossum) 1989年发明,1991年公布。Python的特点: 可读性强,简洁,开源,标准的脚本语言
Python应用场景: 人工智能,Web应用开发,操作系统管理和服务器运维的自动化脚本,科学计算和数据分析,桌面软件开发,服务器软件和网络爬虫,游戏开发
2.Python程序基本格式
Python程序的构成
python程由模块组成。一个模块对应Python源文件,一般后缀名是:.py
模块由语句组成。运行Python程序时,按照模块中语句的顺序依次执行
语句是Python程序的构造单元。用户创建对象,变量赋值,调用函数,控制语句等
代码的组织和缩进
Python语言直接通过缩进来组织代码块,缩进时,几个空格都是允许的,但是数目必须统一,通常采用”四个空格”表示一个缩进。
if 2>1:
print("True")
注释
# 单行注释
"""
多行注释
"""
换行连接符
一行程序长度过长时,为了代码可读性更强,通常将一行比较长的程序分为多行。可以使用\行连接符,放在每行结束的地方。
s = "welcome to\
xian\
traveling"
3.对象
Python中,一切皆对象。每个对象由标识,类型,值组成。
a = 10
print(id(a))
print(type(a))
print(a)
2567720141328
<class 'int'>
10
对象的本质就是:一个内存块,拥有特定的值,支持特定类型的相关操作
内存示意图
4.引用
在Python中,变量也称为:对象的引用。变量存储的就是对象的地址。变量通过地址引用了“对象”
Python是动态类型语言
变量不需要显式声明类型。根据变量引用的对象,Python解释器自动确定数据类型。
5.Python标识符命名规则
Python标识符命名规则约定:
类型 | 规则 | 举例 |
---|---|---|
模块和包名 | 全小写字母,尽量简单。若多个单词之间用下划线 | math, os_study |
函数名 | 全小写字母,多个单词之间用下划线隔开 | get_max |
类名 | 首字母大写,采用驼峰原则。多个单词时,每个单词第一个字母大写,其余部分小写 | MyClass, Phone |
常量名 | 全大写字母,多个单词使用下划线隔开 | SPEED, MIN |
6.变量和简单赋值语句
变量的声明和赋值:用于将一个变量绑定到一个对象上
a = 123
变量在使用前必须先被初始化
变量赋值时,解释器先运行右边的表达式,生成一个代表表达式运算结果的对象,然后将这个对象地址赋值给左边的变量。
删除变量和垃圾回收机制
可以通过del语句删除不再使用的变量。
如果对象没有变量引用,就会被垃圾回收器回收,清空内存空间
a = 123
del a
常量
Python不支持常量,即没有语法规则限制改变一个常量的值。
我们只能约定常量的命名规则,以及在程序的逻辑上不对常量的值作出修改。
MAX_SPEED = 120
print(MAX_SPEED)
MAX_SPEED = 150 #实际是可以修改的,只是逻辑上规定不做修改
print(MAX_SPEED) #输出150
链式赋值
链式赋值用于同一对象赋值给多个变量
x = y = 123
系列解包赋值
多个数据赋值给对应相同个数的变量(个数必须保持一致)
a,b,c = 4,5,6
# 使用系列解包赋值实现变量值交换
a,b = 1,2
a,b = b,a
7.最基本内置数据类型
Python中变量没有类型,但是对象有类型。Python中最基本的内置数据类型:
整形 int | 整数,123,10 |
---|---|
浮点型 float | 小数:3.14,172e-2 |
布尔型 bool | 表示真假,True, False |
字符串型 str | 由字符组成的序列,“abc”, ‘hello’ |
整数的四种进制
0b 或 0B | 二进制 0 1 |
---|---|
0o 或 0O | 八进制 0 1 2 3 4 5 6 7 |
0x 或 0X | 十六进制 0 1 2 3 4 5 6 7 8 9 a b c d e f |
12, 345 | 十进制 |
使用int()实现类型转换
- 浮点数直接舍去小数部分。如int(8.9)=9
- 布尔值True转为1,False转为0
- 字符串符合整数格式(浮点数格式不行)则直接转换成对应整数,否则报错
>>> int("456")
456
自动转型
整数和浮点数混合运算时,表达式结果自动转型成浮点数。
>>> 2+8.0
2.8
浮点数
- 浮点数可以用科学计数法表示。如 3.14 表示成:314E-2或314e-2
- 浮点数在内存中也是按照科学计数法存储的。
- 也可以使用float()将其它类型转换成浮点数
- round(value)可以返回四舍五入的值,但是不会改变原有值,而是产生新的值
>>> a = 3.5
>>> print(round(a))
6
>>> print(a)
3.5
布尔值
- Python2中没有布尔值,直接用数字 0 表示 False , 用数字 1 表示True 。
- Python3中,把 True 和 False 定义成了关键字,但他们的本质还是 1 和0 ,甚至可以和数字相加
>>> print(True+1)
2
>>> print(False+1)
1
>>> print(True+False)
1
8.运算符
基本运算符
运算符 | 说明 | 示例 | 结果 |
---|---|---|---|
+ | 加法 | 2+3 | 5 |
- | 减法 | 10-3 | 7 |
* | 乘法 | 2*6 | 12 |
/ | 浮点数除法 | 7/2 | 3.5 |
// | 整数除法 | 8//3 | 2 |
% | 模(取余) | 7%3 | 1 |
** | 幂 | 3**2 | 9 |
加法操作补充
- 数字相加 3+2 = 5
- 字符串拼接 “3”+“2” = “32”
- 列表,元组等合并 [1,2,3]+[5,6,7] = [1,2,3,5,6,7]
乘法操作补充
- 数字相乘 3*2 = 6
- 字符串复制 “bob”*3 = “bobbobbob”
- 列表,元组等复制 [1,2,3]*2 = [1,2,3,1,2,3]
逻辑运算符
运算符 | 格式 | 说明 |
---|---|---|
or 逻辑或 | a or b | a为true,则不计算b,直接返回true;a为false,则返回b |
and 逻辑与 | a and b | a为true,则返回b的值;a为false,直接返回false |
not 逻辑非 | not a | a为true,返回false;a为false,返回true |
比较运算符
所有比较运算符返回1表示真,返回0表示假。
假设a=3, b=4
运算符 | 描述 | 实例 |
---|---|---|
== | 等于,比较对象的值是否相等 | (a == b) 返回 False。 |
!= | 不等于,比较两个对象的值是否不相等 | (a != b) 返回 true. |
> | 大于,返回x是否大于y | (a > b) 返回 False。 |
< | 小于,返回x是否小于y。 | (a < b) 返回 true。 |
>= | 大于等于,返回x是否大于等于y。 | (a >= b) 返回 False。 |
<= | 小于等于,返回x是否小于等于y。 | (a <= b) 返回 true。 |
在Python中,关系运算符可以连用
a = 4
print(a<=10)
if(3<a<10):
print("a在3和10之间")
位运算符
按位运算符是把数字看作二进制来进行计算
运算符 | 描述 |
---|---|
& | 按位与运算符: 参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则0 |
| | 按位或运算符: 只要对应的二个二进位有一个为1时,结果为就为1. |
^ | 按位异或运算符: 当两对应的二进制位相异时,结果为1 |
~ | 按位取反运算符: 对数据的每个二进制取反,既把1变为0,把0变为1,~x类似于-x-1 |
<< | 左移动运算符: 运算数的每个二进位全部左移若干位,由”<<”右边的数据指定移动的位数,高位丢弃,低位补0 |
>> | 右移动运算符:把”>>”左边运算数的每个二进制位全部右移若干位,”>>”右边的数指定移动的位数 |
增强赋值运算符
复合赋值可以让程序更加精炼,提高效率
运算符 | 描述 | 示例 | 等价于 |
---|---|---|---|
+= | 加法赋值字符串拼接 | sum += “sxt” | sum = sum + “sxt” |
-= | 减法赋值 | num1 -= n | num = num - n |
*= | 乘法赋值 | a *= b | a = a * b |
/= | 浮点除赋值 | a/=b | a = a / b |
//= | 整数除赋值 | a//=b | a = a//b |
%= | 取余赋值 | a%=b | a = a % b |
**= | 幂运算赋值 | a**=2 | a = a**2 |
<<= | 左移赋值 | a<<=2 | a = a<<2 |
>>= | 右移赋值 | a>>=2 | a = a>>2 |
&= | 按位与赋值 | a&=b | a = a&b |
|= | 按位或赋值 | a|=b | a=a\b |
^= | 按位异或赋值 | a^=b | a = a^b |
- 与C和Java不同,Python不支持自增(++)和自减(–)
同一运算符
同一运算符用于比较两个对象的存储单元,实际比较的是对象的地址。
运算符 | 描述 |
---|---|
is | is是判断两个标识符是不是引用同一个对象 |
is not | is not 是判断两个标识符是不是引用不同对象 |
== | ==用于判断两个变量引用对象的值是否相等,默认调用对象的__eq__()方法 |
成员运算符
成员运算符测试实例中包含了一系列的成员,包括字符串,列表或元组
运算符 | 描述 |
---|---|
in | 如果在指定的序列中找到值返回 True,否则返回 False |
not in | 不在,则返回True |
>>> a = "Python"
>>> b = "tho"
>>> print(b in a) #True
>>> c = [10,20,30]
>>> print(10 not in c) #False