Day2
链式赋值
链式赋值用于同一个对象支付给多个变量
x=y=3,即把3的内存地址赋值给变量x和y。
系列解包赋值
系列解包数据赋值给对应相同个数的变量(个数必须保持一致)
a,b,c = 4,5,6
通过系列解包赋值,实现变量的交换
a, b = 1, 2
a, b = b, a
print(a, b)
常量
python不支持常量,即没有语法规则限制改变一个常量的值。
MAX_SPEED = 120
MAX_SPEED = 140
# 实际上将变量的值指向了140的内存地址
最基本的数据类型介绍
-
整型:integer-整数:1,2,350
-
python中,除10进制,还有其他三种进制:
-
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;
print(0b10) # 2 print(0o10) # 8 print(0x10) # 16
-
-
-
浮点型:float-小数,3.14或科学计数法314E-2或者314e-2(314乘以10的负二次方),这些数字在内存中也是按照科学计数法存储。
- 使用int()对浮点数进行类型转换,转化结果为整数,int(9.9)的结果为9;
- 使用float()对其他类型转化成浮点数;
- 整数和浮点数混合运算时,表达式结果自动转化成浮点数;
- round(value)可以返回四舍五入的值;
- 进行数据类型转换后,不改变原有的对象,而是在内存空间内创建新的对象;
-
布尔型:bool-True(1)和False(0)
-
使用int()堆布尔值进行类型转换,int(True),int(False);
-
比较运算符
-
-
逻辑运算符
a = True b = False print(a or 30) # True print(b or 30) # False
-
字符串型:string-由字符组成的序列:“new pants” ,‘大波浪’
-
字符串属于不可变数据类型;
-
创建字符串的方式: ''或""
-
python中允许空字符串的存在,长度为0;
-
可以通过+将多个字符串拼接起来,例如:‘a’ + ‘b’ = ‘ab’
-
转义字符
-
不换行打印:
print('a',end='') print('b',end='') print('c',end='')
-
str()可以将数据类型转为字符串
-
字符串是不可变数据类型:
a = 'megadeth' a[0] = 'h' #报错TypeError: 'str' object does not support item assignment
-
可以通过replace进行替换,但整个过程中我们是创建了新的字符串对象,并指向了变量a,而不是修改了以前的字符串,内存图如下:
a = 'Aetallic' a = a.replace('A', 'M') print(a) print(id(a))
-
字符串的切片:标准格式为[起始偏移量:start,终止偏移量end:步长step],即便起始偏移量或终止偏移量不在范围内,也不会报错。
-
字符串的分割和合并
-
split():如果不指定分隔符,则默认使用空白符(换行符/空格/制表符)
c = 'to be or not to be' print(c.split()) # ['to', 'be', 'or', 'not', 'to', 'be'] print(c.split('be')) # ['to ', ' or not to ', '']
-
join():用于将一些列字符串连接起来,推荐使用join函数,因为join函数在拼接字符串之前会计算所有字符串的长度,然后注意拷贝,仅新建一次对象,而通过+拼接字符串会产生新的字符串对象。
d = ['你', '你', '你', '你要跳舞吗!'] print('!'.join(d))
-
-
字符串的驻留机制:
-
字符串的常用查找方法:
# 字符串的常用查找方法: a = 'adiadadjdadadoad编程daidjaio编程shiadhiaio编程' # 计算字符串长度 print(len(a)) # 是否以指定的字符串开头 print(a.startswith("a")) # 是否以指定的字符串结尾 print(a.endswith("编程")) # 显示第一次出现指定字符串的位置 print(a.find('编程')) # 显示最后一次出现指定字符串的位置 print(a.rfind("编程")) # 显示指定字符串出现了几次 print(a.count("编程")) # 判断所有字符串是否全是字母或数字 print(a.isalnum())
-
去除收尾信息:strip()去除字符串首尾指定信息,参数为空,默认去除首尾空格。
- lstrip():去除字符串左边指定信息;
- rstrip():去除字符串右边指定信息;
-
大小写转化:
-
格式排版:
-
center():居中
a = "sxt" # 十个字符,"sxt"居中,其他位置由*补足 print(a.center(10, "*"))
-
ljust():左对齐
-
rjust():右对齐
-
-
格式化输出:
a = "名字是:{0},年龄是:{1}" b = a.format("彭裤子", 40) print(b) a = "名字是:{name},年龄是:{age}" b = a.format(name = "彭裤子", age = 40) print(b)
- 对齐与填充:# ^ < >分别是居中,左对齐,右对齐,后面带宽度:10,不足用*补足
print("我是{0}, 我的外号是{1:*^10}".format("彭裤子", "王子")) # 我是彭裤子, 我的外号是****王子****
-
数字格式化:
print("我是{0},我的存款有{1:.2f}".format("尼达叶", 3000.4233)) # 我是尼达叶,我的存款有3000.42
-
数字支持如下运算方式:
divmod()函数:可同时得到商和余数
a = divmod(13, 3)
print(a)
#(4,1)
增强型赋值预算符号
时间的表示
计算机中时间的表示是从“1970年1月1日00:00:00”开始,以毫秒(1/1000秒)进行计算,我们也罢1970年这个时间刻成”unix时间点“。
time.time()获得当前时间
import time
t = time.time()
totalMinutes = t//60 # 使用整除
totalHours = totalMinutes//60
totalDays = totalHours//24
同一运算符
is比较内存地址,=比较value。