链式赋值用于同一个对象赋值给多个变量。 eg:
>>> a=b=789 >>> a 789 >>> b 789系列数据赋值给对应相同个数的变量(个数必须保持一致) eg:
>>> a,b,c = 1,2,3 >>> a,b,c = c,b,a >>> print(a,b,c) 3 2 1Python不支持常量,即没有语法规则限制改变一个常量的值。约定常量的命名规则,以及在程序的逻辑上不对常量的值作出修改。
Python中最基本的内置数据类型: (1)整型:整数,123,4,50 (2)浮点型:小数,3.14或者科学计数法314e-2 (3)布尔型:表示真假,仅包含:True、False (4)字符串型:由字符组成的序列。“ert”,“ext”,“小饭团”
注 :除数为0,会产生异常:
>>> 4/0 Traceback (most recent call last): File "<pyshell#105>", line 1, in <module> 4/0 ZeroDivisionError: division by zero(1)divmod() 使用divmod()函数同时得到商和余数: eg:
>>> divmod(17,3) (5, 2)(2)整数 Python中,除10进制,还有其他三种进制: 二进制:0b或0B 八进制:0o或0O 十六进制:0x或0X 使用int()实现类型转换: 1.浮点数直接舍去小数部分。 2.布尔值True转为1,False转为0。 3.字符串符合整数格式(浮点数格式不行)则直接转成对应整数,否则报错。 自动转型:整数和浮点数混合运算时,表达式结果自动转型成浮点数。 (3)浮点数 浮点数称为float,可用float()将其他类型转化成浮点数。 注: 1.整数和浮点数混合运算时,表达式结果自动转型成浮点数。 2.round(value)可以返回四舍五入的值(但不会改变原有值,而是产生新的值) (4)增强型赋值运算符 注意: "+="中间不能加空格。 (5)时间的表示 unix时间点:1970年1月1日00:00:00 当前时刻:time.time() (精确到微妙) (6)操作例题 定义多点坐标-绘出折线段-计算两点间的距离
import turtle import math #定义多个点的坐标 x1,y1=200,200 x2,y2=150,0 x3,y3=-150,0 x4,y4=-100,200 #绘制折线 turtle.penup() turtle.goto(x1,y1) turtle.pendown() turtle.goto(x2,y2) turtle.goto(x3,y3) turtle.goto(x4,y4) #计算起始点和终点的距离 distance = math.sqrt((x1-x4)**2 + (y1-y4)**2) turtle.write(distance)结果: (7)布尔值 把True和False定义成了关键字,本质是1和0,甚至可以和数字相加。 (8)比较运算符 所有的比较运算符返回1表示真,返回0表示假。分别与特殊的变量True和False等价。 以下假设变量a为15,变量b为30: (9)逻辑运算符 (10)同一运算符 同一运算符用于比较两个对象的存储单元,实际比较的是对象的地址。 is 与 == 区别: ①is用于判断两个变量引用对象(id)是否为同一个。 ② = =用于判断引用变量引用对象的值(value)是否相等。 ③is运算符比= =效率高,在变量和None进行比较时,应该使用is。 (11)整数缓存问题 Python在命令执行程序中,对比较小的整数对象(范围为[-5,256]进行缓存。 在Pycharm或者保存文件执行,缓存范围为[-5,任意正整数]。
(1)字符串的编码 ①Python支持Unicode,可以表示世界上任何书面语言的字符。 ②使用内置函数ord()可以吧字符串转换成对应的Unicode码。 ③使用内置函数chr()可以把十进制数字转换成对应的字符。 eg:
>>> ord('B') 66 >>> ord('三') 19977 >>> chr(88) 'X'(2)引号创建字符串 ①可以使用单引号或者双引号创建字符串 ②使用两种引号的好处是可以创建本身就包含引号的字符串,而不用使用转义字符。 ③可以使用连续三个单引号或三个双引号创建多行字符串。 (3)空字符串和len()函数 ①Python允许空字符串的存在,不包含任何字符且长度为0。 ②len()用于计算字符串含有多少字符。 (4)转义字符 转义字符可以使用"+特殊字符 (5)字符串拼接 ①可以使用+将多个字符串拼接起来。 补充: 1.如果+两边都是字符串,则拼接。 2.如果+两边都是数字,则加法运算 3.如果+两边类型不同,则抛出异常。 ②可以将多个字面字符串直接放到一起实现拼接。 (6)字符串复制 可以使用*实现字符串复制。 (7)str()实现数字转型字符串 str()可以将其他数据类型转换为字符串。 (8)使用[]提取字符 ①字符串的本质就是字符序列,可以通过在字符串后面添加[],在[]里面制定偏移量,可以提取该位置的单个字符。 ②正向搜索:最左侧第一个字符,偏移量是0,第二个偏移量是1,以此类推,直到len(str)-1为止。 ③反向搜索:最右侧第一个字符,偏移量是-1,倒数第二个偏移量是-2,以此类推,直到-len(str)为止。 注意:超出索引范围会报错。 (9)replace()实现字符串替换 字符串是不可变类型,有些时候需要替换某些字符串,只能通过创建新的字符串。 以上整个过程中实际上是创建了新的字符串对象,并指向了变量a,而不是修改了以前的字符串。 (10)字符串切片slice操作 切片操作标准格式为:[起始偏移量start:终止偏移量end:步长step] 典型操作(三个量为正数的情况): 其他操作(三个量为负数)的情况:
注意 :切片操作时,其实偏移量和终止偏移量不在[0,字符串长度-1]这个范围,也不会报错。起始偏移量小于0则会被当做0,终止偏移量大于"长度-1"会被当成-1。 (11)split()分割和join()合并 split()可以基于指定分隔符将字符串分割成多个子字符串(存储到列表中)。如果不指定分隔符,则默认使用空白字符(换行符/空格/制表符)。 join()的作用和split()作用刚好相反,用于将一系列子字符串连接起来。 测试+=与join()函数的效率
import time time01 = time.time() #起始时刻 a = "" for i in range(1000000): a += "sxt" time02 = time.time() #终止时刻 print("运算时间:"+str(time02-time01)) time03 = time.time() #起始时刻 li = [] for i in range(1000000): li.append("sxt") a = "".join(li) time04 = time.time() #终止时刻 print("运算时间:"+str(time04-time03))(12)字符串驻留机制和字符串比较 字符串驻留:仅保存一份相同且不可变字符串的方法,不同的值被存放在字符串驻留池中。 Python支持字符串驻留机制,对于符合标识符规则的字符串(仅包含下划线(_)、字母和数字)会启用字符串驻留机制。 (13)字符串比较和同一性 ①可以直接使用==,!=对字符串进行比较,是否含有相同的字符。 ②使用is/not is,判断两个对象是否同一个对象,比较的是对象的地址,即id(obj1)是否和id(obj2)相等。 (14)成员操作符 in/not in关键字,判断某个字符(子字符串)是否存在于字符串中。
(1)常用查找方法 (2)去除首尾信息 通过strip()去除字符串首尾指定信息,通过lstrip()去除字符串左边指定信息,rstrip()去除字符串右边指定信息。
>>> "*s*x*t*".strip("*") 's*x*t' >>> "*s*x*t*".lstrip("*") 's*x*t*' >>> "*s*x*t*".rstrip("*") '*s*x*t' >>> "*s*x*t*".strip() '*s*x*t*'(3)大小写转换 eg: 设定一个测试变量: a=“gaoqi love programming,love SXT” (4)格式排版 center()、ljust()、rjust()这三个函数用于对字符串实现排版。 (5)其他方法 ①isalnum() 是否为字母或数字。 ②isalpha() 是否只由字母组成(含汉字)。 ③isdigit() 检测是否只由数字组成。 ④isspace() 检测是否为空白符。 ⑤isupper() 是否为大写字母。 ⑥islower() 是否为小写字母。 (6)字符串format()格式化 可通过{索引}/{参数名},直接映射参数值,来实现字符串的格式化。同时有位置参数和关键字参数时,位置参数要在关键字参数之前。关键词参数要在format()里写出参数名。 eg: (7)填充与对齐 (8)数字格式化 其他格式: