Python程序的构成
1.Python程序由模块组成。一个模块对应python源文件,一般后缀名是:.py
2.模块由语句组成。运行Python程序时,按照模块中语句的顺序依次执行
3.语句是Python程序的构造单元,用于创建对象、变量赋值、调用函数、控制语句等
使用\行连接符
一行程序长度是没有限制的,但是为了可读性更强,通常将一行比较长的程序分为多行,这是可以使用\行连接符,把它放在行结束的地方。
对象
Python中,一切皆对象。每个对象由:标识(identity)、类型(type)、值(value)组成。
1.标识用于唯一标识对象,通常对应于对象在计算机内存中的地址。使用内置函数id(obj)可返回对象obj的标识。
2.类型用于标识对象储存的“数据”的类型。类型可以限制对象的取值范围以及可执行的操作。可以使用type(obj)获得对象的所属类型。
3.值表示对象所存储的数据的信息。使用print(obj)可以直接打印出值。
对象的本质就是:一个内存块,拥有特定的值,支持特定类型的相关操作。
引用
在Python中,变量也成为:对象的引用。因为,变量存储的就是对象的地址。变量通过地址引用了“对象”。
变量位于:栈内存
对象位于:堆内存
标识符
用于变量、函数、类、模块等的名称。
有特定的规则:
1.区分大小写。如:sxt和SXT是不同的
2.第一个字符必须是字母或者下划线。其后的字符是:字母、数字、下划线
3.不能使用关键字,如:if、or、while等
4.以双下划线开头和结尾的名称通常有特殊含义,尽量避免这种写法,如:_init_是类的构造函数
Python标识符命名规则
赋值及常量
链式赋值
链式赋值用于同一个对象赋值给多个变量。
x=y=123 相当于:x=123;y=123
系列解包赋值
系列解包赋值给对应相同个数的变量(个数必须保持一致)
a,b,c=4,5,6 相当于:a=4;b=5;c=6
常量
Python不支持常量,即没有语法规则限制改变一个常量的值。我们只能约定常量的命名规则,以及在程序的逻辑上不对常量的值作出修改。(常量实际是可以改的,只能逻辑上不做修改)
最基本内置数据类型
最基本的内置数据类型:
1.整型:2345,10,50
2.浮点型:小数,3.14或者科学计数法314e-2
3.布尔型:表示真假,仅包含:True、False
4.字符串型:由字符组成的序列:"abc","sxt"
数字运算
0不能作除数,0作除数会报错
使用divmod()函数可同时得到商和余数:
整数
Python中,除10进制,还有其他三种进制:
1.0b或0B,二进制:0,1
2.0o或0O,八进制:0,1,2,3,4,5,6,7
3.0x或0X,十六进制:0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f
类型转换:
使用int()实现类型转换:
1.浮点数直接舍去小数部分
2.布尔值True转为1,False转为0
3.字符串符合整数格式(浮点数格式不行)则直接转成对应整数,否则报错
自动转型:整数和浮点数混合运算时,表达式结果自动转型成浮点数。
浮点数
浮点数,称为float
类型转换和四舍五入
1.类似于int(),我们也可以使用float()将其他类型转化成浮点数。
2.整数和浮点数混合运算时,表达式结果自动转型成浮点数
3.round(value)可以返回四舍五入的值(但不会改变原有值,而是产生新的值)
增强型赋值运算符
运算符+、-、*、/、//、**和%和赋值符=结合可以构成“增强型赋值运算符”
a=a+1 等价于 : a +=1
时间的表示
Python中可以通过time.time()获得当前时刻,返回的值是以秒为单位,带微秒(1/1000毫秒)精度的浮点值。
布尔值
Python2 中没有布尔值,直接用数字 0表示 False,用数字 1表示 True。
Python3 中,把 True和 False 定义成了关键字,但他们的本质还是1和0,甚至可以和数字相加。
比较运算符
所有比较运算符返回1表示真,返回 0 表示假。这分别与特殊的变量True 和 False 等价。
逻辑运算符
同一运算符
同一运算符用于比较两个对象的存储单元,实际比较的是对象的地址
is 与 == 区别 :
is 用于判断两个变量引用对象是否为同一个,既比较对象的地址。
== 用于判断引用变量引用对象的值是否相等,默认调用对象的eq_()方法。
字符串
字符串的本质是:字符序列。
字符串的编码
Python3 直接支持 Unicode,可以表示世界上任何书面语言的字符。Python3 的字符默认就是 16 位 Unicode 编码,ASCII 码是 Unicode 编码的子集。
使用内置函数 ord()可以把字符转换成对应的 Unicode 码;使用内置函数 chr()可以把十进制数字转换成对应的字符。
引号创建字符串
通过单引号或双引号创建字符串。例如 : a=’ abc’; b=”sxt'使用两种引号的好处是可以创建本身就包含引号的字符串,而不用使用转义字符。
通过连续三个单引号或三个双引号,可以创建多行字符串。
空字符串和len()函数
Python允许空字符串的存在,不包含任何字符且长度为0
len()用于计算字符串含有多少字符
转义字符
字符串拼接
1.可以使用+将多个字符串拼接起来。
(1) 如果+两边都是字符串,则拼接
(2) 如果+两边都是数字,则加法运算
(3) 如果+两边类型不同,则抛出异常
2.可以将多个字面字符串直接放到一起实现拼接。
字符串复制
使用*可以实现字符串复制。
不换行打印
通过参数end()="任意字符串",实现末尾添加任何内容
str()实现数字转型字符串
str()可以将其他数据类型转换为字符串
使用[]提取字符
正向搜索:最左侧第一个字符,偏移量是 0,第二个偏移量是 1,以此类推。
反向搜索:最右侧第一个字符,偏移量是-1,倒数第二个偏移量是-2
replace()实现字符串替换
字符串切片slice操作
切片 slice 操作可以让我们快速的提取子字符串
标准格式为[起始偏移量 start : 终止偏移量 end: 步长 step]
三个量为整数的情况:
三个量为负数的情况:
split()分割和join()合并
split()可以基于指定分隔符将字符串分隔成多个子字符串(存储到列表中)。如果不指定分隔符,则默认使用空白字符(换行符/空格/制表符)。
join()的作用和 split()作用刚好相反,用于将一系列子字符串连接起来。
常用查找方法
a=""
len(a) 字符串长度
a.startswith('') 以指定字符串开头 (判断True/False)
a.endswith('') 以指定字符串结尾 ( 判断True/False)
a.find('') 第一次出现制定字符串的位置
a.rfind('') 最后一次出现制定字符串的位置
a.count("") 指定字符串出现了几次
a.isalnum() 所有字符全是字母或数字( 判断True/False)
去除首尾信息
可以通过 strip()去除字符串首尾指定信息。通过Istrip()去除字符串左边指定信息,rstrip()去除字符串右边指定信息。
大小写转换
格式排版
center()左对齐,ljust()左对齐,rjust()右对齐
其他方法
字符串的格式化
format()基本用法
基本语法是通过{}和 : 来代替以前的 %
format 函数可以接受不限个参数,位置可以不按顺序
填充与对齐
填充常跟对齐一起使用
^、<、>分别是居中、左对齐、右对齐,后面带宽度
:号后面带填充的字符,只能是一个字符,不指定的话默认是用空格填充
数字格式化
浮点数通过f,整数通过d进行需要的格式化,其他格式如下:
运算符
基本运算符
运算符优先级问题
1.乘法优先加减
2.位运算和算数运算>比较运算符>赋值运算符