一、赋值操作
1.链式赋值
链式赋值用于同一个对象赋值给多个变量
2.系列解包赋值
系列数据赋值给对应相同个数的变量(个数保持一致)
a,b,c = 1,2,3
a,b,c =c,a,b
print(a,b,c)
>>>3 1 2
补充:常量
python不支持常量,我们只能约定常量的命名规则,以及在程序的逻辑上不对常量的值作出修改。
二、最基本内置数据类型介绍
变量没有类型,但对象有类型
python中最基本的数据类型有:整型、浮点型(小数或科学计数法)、布尔类型(True和Flase)、字符串类型
1.数字
基本运算符
1)divmod()函数
使用divmod()函数同时获得商和余数,返回一个元祖
print(divmod(13,5))
>>>(2, 3)
2)整数
python中整数有四种进制,分别是
二进制—>0b或0B
八进制—>0o或0O
十进制
十六进制—>0x或0X
使用int()实现类型转换
1.浮点数—>整数:正浮点数向下取整,负浮点数向上取整
2.布尔值True转为1,Flase转为0
3.字符串符合整数格式(浮点数格式不行)则直接转成对应整数;否则会报错
自动转型
整数和浮点数混合运算时,表达式结果自动转型成浮点数
3)浮点数
使用float()函数将其他类型转换成浮点型
round(value)函数可以返回四舍五入的值
注:不会改变原有值,而是产生一个新的值
print(round(3.5))
>>>4
4)时间的表示
unix时间点:1970年1月1日00:00:00
time.time()获得当前时刻,精确到微秒
5)例子
定义多点坐标_绘出折线段_计算两点间距离
import turtle
import math
#定义多点坐标
x1,y1 = 100,0
x2,y2 = 0,-100
x3,y3 = -100,0
#绘制折线图
turtle.penup()
turtle.goto(x1,y1)
turtle.pendown()
turtle.goto(x2,y2)
turtle.goto(x3,y3)
#计算两点距离
distance = math.sqrt((x3-x1)**2+(y3-y1)**2)
turtle.write(distance)
turtle.done()
结果如图:
6)增强型赋值运算符
7)布尔值
True和Flase,可以和数字相加
8)比较运算符
9)逻辑运算符
10)同一运算符
is 与 ==的区别:
1.is比较对象地址(id)是否相等
2.==比较引用对象的值是否相等,默认调用__eq__()方法
is 比 == 运算效率高的原因:
is 的计算很快,因为它不重载,少了函数调用开销而直接比较两个整数id;
而a == b则相当于a.eq(b)重载了对应的方法
is常用的地方-和None值进行比较
a is None or a is not None
11)整体缓存问题
在命令行执行程序时,会将[-5,256]内的整数对象缓存起来
在pycharm中或保存为文件执行程序时,将[-5,任意整数]进行缓存
a = 100000
b = 100000
print(a is b)
>>>True
2.字符串
1).字符串编码
python支持Unicode(16位),可以表示世界上任何书面语言的字符
内置函数ord()可以将字符转换成对应的Uniconde编码
内置函数chr()可以把十进制数字转换成对应的字符
2).引号创建字符串
可以使用成对的单引号或双引号创建字符串
使用两种引号,可以创建本身就包含引号的字符串而不用使用转义字符
连续使用三个单引号或三个双引号,来创建多行字符串—多行注释
3).空字符串和len()函数
len()函数用于计算字符串含有多少字符
4).转义字符
+特殊字符
5).原始字符串
针对打印含有转义字符的字符串
格式:在变量赋值时,在前面加个r
>>> good=r'C:\now\no\nose\note'
>>> good
'C:\\now\\no\\nose\\note'
>>> print(good)
C:\now\no\nose\note
注意:字符串末尾不可以加\,如果加了,python会认为字符串还没有结束,就会报错
需:用“\”对自身进行转义
a = r"c:\n\baidu.com""\\"
print(a)
>>>c:\n\baidu.com\
6).字符串拼接与复制
1.可以使用+将多个字符串拼接起来
2.join()函数用于将一系列子字符串连接起来
要点:两者要达到相同效果,多次使用字符串拼接符+,每次都会生成新的字符串对象;使用join()函数,仅新建一次对象
复制:使用*实现字符串的复制
测试两者之间效率
import time
time1 = time.time()
a = ""
for i in range(1000000):
a += "sxt"
time2 = time.time()
print("运算时间为:"+str(time2 - time1))
>>>运算时间为:0.41286420822143555
import time
time1 = time.time()
a = []
for i in range(100000):
a.append("sxt")
b = "".join(a)
time2 = time.time()
print("运行时间:"+str(time2 - time1))
>>>运行时间:0.007945775985717773
7).print()和input()和str()
调用print(),默认会自动打印一个换行符
不换行打印:可以通过参数end=“任意字符串”,任意字符串包括转义字符,实现末尾添加任何内容
input()读取输入内容
str()将数字转换成字符串
8).使用[]提取字符
9).replace()实现字符串替换
字符串是不可变类型
使用replace(“old”,“new”)替换某些字符时,通过创建新的字符串来实现
10).切片操作
a = "to be or not to be"
a = a[::-1]
print(a)
11).split()函数分割
split()可以基于指定分隔符将字符串分割成多个子字符串(存储到列表中)
不指定分割符,则默认使用空白字符(换行符/空格/制表符)
12).字符串驻留机制和字符串比较
python支持字符串驻留机制,对于符合标识符规则的字符串(仅包含下划线、字母和数字),会启动字符串驻留机制。
字符串驻留机制:仅保留一份相同且不可变字符串的方法
a = "asd_il_12"
b = "asd_il_12"
print(a is b)
>>>True
3.字符串常用方法汇总
1)常用查找方法
2)去除首尾信息
3)大小写转换
4)字符串排版
5)判断字符串内容
6)字符串format格式化
通过{索引}/{参数名},直接映射参数值,,来实现字符串的格式化
同时有位置参数和关键字参数时,位置参数要在关键字参数之前
关键词参数要在format()里写出参数名
7)填充与对齐
8)数字格式化