Python基础篇——Day2
Python基础篇——Day2
Python变量赋值
- 链式赋值
e.g. x=y=123,其结果为x=123,y=123 - 系列解包赋值
e.g. a,b,c=4,5,6,其结果为a=4,b=5,c=6
用此赋值方式可实现变量交换
e.g. a,b=1,2; a,b=b,a,其结果为a=2,b=1 - Python不支持常量,没有语法规则限制改变一个常量的值,只能约定常量的命名规则,以及在逻辑上不对它做出更改
e.g. MAX_SPEED=120,全大写,并用下划线分开
Python中的进制
在Python中,除了10进制外,还有:
- 0b 或 0B:二进制,任意位的数值可取0或1,逢2进1,如0b101
- 0o 或 0O:八进制,任意位的数值可取0-7,逢8进1,如0o17
- 0x 或 0X:十六进制,任意位的数值可取0-9及a-f(相当于10-15),逢16进1,如0xf
Python中时间的获取方式
计算机中的时间从1970年1月1日 00:00:00开始,以毫秒(1/1000s)为单位进行计算,把这个时刻称为“unix时间点”。这样就可以把时间全部以数字的方式表示了。
Python中可用time.time()方法获取当前时刻,返回值以秒为单位,以毫秒为精度,如1530167364.8566
Python内置数据类型
Python内置的数据类型分为:
- 整型(integer)
- 浮点型(float)
- 字符串型(string)
- 布尔型(boolean)
整型(int)
Python2中,整型(int)是32位,范围是-2147483648-2147483647,长整型(long)是64位,范围是(-2^63, 2^63-1),而在Python3中,int可存储任意大小的数,long被取消,所以,Python3可用于超大数的计算
浮点型(float)
浮点型(float)一般用科学计数法表示,比如3.14,可表示位314E-2或者314e-2
布尔型(boolean)
布尔型数据的返回值是True(真)或False(假)
Python2中,无布尔值,取而代之的是数字0和1,表示False和True
Python3中,True和False被定义为关键字,但本质还是0和1,可与数字进行运算
同一运算符:is 和 is not
- 同一运算符用于比较两个对象的存储单元,实际比较的是对象的地址,返回值位布尔值
- 除了比较对象的地址外,还可比较两个对象的值是否相等,用“==”实现,当值相等时返回True,此方法默认调用了对象的__eq__()方法。
- 注意,is 比“==”的效率高
整数缓存问题:
Python仅仅对比较小的整数对象缓存,范围为[-5,256],而非所有整数,但这仅仅是在命令行中执行,在Pycharm或者保存文件执行时,结果又不一致,因为对解释器做出了一些优化,此时范围为[-5, 任意正整数]
所以,若比较值,则用“==”。若比较对象地址,则用 is 或 is not
字符串型(str)
字符串的本质是字符序列,一旦创建不可改变,无法对原字符串做出任何修改。
字符串编码:
Python3支持Unicode编码,可表示世界上任何书面语言的字符,在Unicode之前是ASCⅡ码,Python3默认16位Unicode编码,ASCⅡ码是Unicode编码的子集
ord():将字符转换为Unicode编码
chr():将10进制数转换为对应的字符
转义字符:
使用’+特殊字符’可实现某些特定的效果:
’\‘(在行尾时):续航符
\\:反斜杠
\’:单引号
\’’:双引号
\b:退格backspace
\n:换行
\t:横向制表符
\r:回车
使用[]提取字符:
正向:最左侧第一个字符,偏移量为0,以此类推,直到 len(str)-1为止
反向:最右侧,起始偏移量为-1,以此类推,直到-len(str)为止
用replace()函数对字符串进行操作:
e.g. a=‘abccdeffc’
a=a.replace(‘c’,‘k’) #将a中的c替换为k,并创建新的字符串对象,并将地址赋予a
输出为’abkkdeffk’
字符串切片slice:
标准形式:[start: end: step]
原则:提取的字符包含起始字符,但不包含终止字符,俗称“包头不包尾”。
- [:]:提取整个字符串
- [start:]:从开头到结尾
- [:end]:从开头到(结尾-1)
- [::step]:从头到尾,步长为step
字符串分隔和拼接:
split():基于指定的分隔符将字符串分成多个子字符串(存储到列表中),默认分隔符为空白字符(换行符、空格、制表符)
join():将一系列字符串拼接,经常与列表一起使用
join()与"+"的效率对比:
使用“+”拼接,会生成新的字符串对象,因此会消耗更多的时间,所以更推荐join()函数,因为其在拼接之前会计算所有字符串的长度,然后逐一拷贝,仅新建一次对象,故效率更高
证明用join()函数拼接字符串的效率高于"+"
import time
t1=time.time()
a=''
for i in range(10000000):
a+='str'
t2=time.time()
delta_t1=t2-t1
t3=time.time()
b=[]
for i in range(10000000):
b.append('str')
''.join(b)
t4=time.time()
delta_t2=t4-t3
print(delta_t1)
print(delta_t2)
'''
输出的结果:
+:59.125553369522095
join():1.9766478538513184
'''
字符串驻留:
仅保存一份相同且不可变的字符串的方法,不同的值被存放在字符串驻留池中,Python支持字符串驻留机制,对于符合标识符规则的字符串(仅包含下划线,字母和数字)会启用该机制
e.g. a=“abc_33”, b=“abc_33”, a is b, 结果为True
e.g. c=“dd#”, d=“dd#”, c is d, 结果为False
本文地址:https://blog.csdn.net/qq_43004138/article/details/107383574