文章目录
链式赋值
链式赋值用于同一个对象赋值给多个变量。
x=y=123 相当于 x=123;y=123
变量互换
系列解包赋值
系列数据赋值给对应相同个数的变量(个数必须保持一致)
常量
Python不支持常量,即没有语法规则限制改变一个常量的值。我们只能约定常量的命名规则,以及在程序的逻辑上不对常量作出修改。
python中最基本的内置数据类型
1.整型 整数
2.浮点型 小数
3.布尔型
4.字符串型
运算
(只列出特殊的,剩余和其他语言同)
浮点数除法
eg:8/2 4.0
整数除法
eg: 7//2 3
模(取余)
eg:7%4 3
幂
eg: 2**3 8
divmod()同时获得商和余数
整数(int)
二进制 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
用于“位运算”操作
使用int()实现类型转换
1.浮点数直接舍去小数部分。
2.布尔值True转为1,False转为0。
3.字符串符合整数格式(浮点数格式不行)则直接转成对应整数,否则报错。
自动转型
整数和浮点数混合运算,表达结果自动转型为浮点数。
Python3可以做超大数的运算!
浮点数(float)
3.14表示成314E-2或者314e-2
类型转换和四舍五入
1.类似于int(),我们也可以使用float()将其他类型转化成浮点数。
2.整数和浮点数混合运算时,表达式结果自动转型成浮点数。
3.round(value)可以返回四舍五入的值
注:但不会改变原有值,而是产生新的值。
“+=”之间不能加空格,其他同
布尔型
True 1
False 0
比较运算符
逻辑运算符
同一运算符
is与==区别:
is: 比较地址(是不是同一个对象)
==:比较值
is运算符比==效率高,在变量和None进行比较时,应该用is。
整数缓存问题
交互模式:[-5,256]
文件:[-5,任意正整数]
#文件形式同一运算
a=100000
b=100000
print(a==b)
print(a is b)
m=-6
n=-6
print(m==n)
print(m is n)
字符串
本质:字符序列
特点:不可变
"a"也是字符串,长度为1的字符串
单引号或双引号创建字符串
连续三个单引号或者连续三个双引号,可以帮助我们创建多行字符串。
字符串的编码
16位的Unicode编码,可以表示世界上任何书面语言的字符。
ord():把字符转换成对应的Unicode码;
chr():把十进制数字转换成对应的字符。
空字符串和len()函数
转义字符
字符串拼接:
- 用+
- 直接放到一起实现拼接
字符串复制
不换行打印:print函数自动打印一个换行符。不想换行,通过参数end=“任意字符串”。
print("aa",end="*")
print("bb",end="*")
print("cc")
从控制台读取字符串
str()实现数字、布尔值等转型字符串
使用[]提取字符:
python从0开始
正向搜索:最左侧第一个字符,偏移量是0,第二个偏移量是1,以此类推。直到len(str)-1为止。
反向搜索:最右侧第一个字符,偏移量是-1,倒数第二个偏移量是-2,以此类推,直到-len(str)为止。
replace函数
创建了新的字符串对象,并指向了变量a,而不是修改了以前的字符串。
字符串切片
[起始偏移量start : 终止偏移量end : 步长 step]
包头不包尾 [ , )
split()分割和join()合并
-
split()可以基于指定分隔符将字符串分隔成多个子字符串(存储到列表中)。如果不指定分隔符,则默认使用空白字符(换行符/空格/制表符)。
-
join()将一系列子序列字符串连接起来。
【操作】测试+拼接符和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))
join()效率更高!
字符串驻留机制和字符串比较
字符串驻留:仅保存一份相同且不可变字符串的方法,不同的值被存放在字符串驻留池中。Python支持字符串驻留机制,对于符合标识符规则的字符串(仅包含下划线(_)、字母和数字)会启用字符串驻留机制。
成员操作符
in
not in
去除首尾信息
>>>'*as*d**'.strip('*')#去除首尾
'as*d'
>>> '*as*d**'.lstrip('*')#去除左侧
'as*d**'
>>> '*as*d**'.rstrip('*')#去除右侧
'*as*d'
>>> " ab c ".strip()
'ab c'
大小写转换
格式排版
cencer()居中
ljust()左对齐
rjust()右对齐
字符串格式化
str.format()
通过{}和:来替代以前的%。
format函数可以接受不限个参数,位置可以不按顺序。
>>> a='名字是:{0},年龄是:{1}'
>>> a.format('ZMD',22)
'名字是:ZMD,年龄是:22'
>>> b='名字是:{0},年龄是{1},{0}是大好人'
>>> b.format("ZMD",22)
'名字是:ZMD,年龄是22,ZMD是大好人'
>>> c="名字是{name},年龄是{age}"
>>> c.format(age=22,name='ZMD')
'名字是ZMD,年龄是22'
填充与对齐
填充与对齐一起使用
^ 、< 、>分别是居中、左对齐、右对齐,后面带宽度。
:号后面带填充的字符,只能是一个字符,不指定的话默认是用空格填充。
数字格式化
【操作】 定义多点坐标_绘出折线_并计算器试点和终点距离
import turtle
import math
#定义多个点的坐标
x1,y1=100,100
x2,y2=100,-100
x3,y3=-100,-100
x4,y4=-100,100
#绘制折线
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)