欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Python基础篇——Day2

程序员文章站 2022-04-16 16:17:31
Python基础篇——Day2Python变量赋值Python中的进制Python中时间的获取方式Python内置数据类型整型(int)浮点型(float)布尔型(boolean)字符串型(str)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=1Python不支持常量,没有语法规则限制改...

Python变量赋值

  1. 链式赋值
    e.g. x=y=123,其结果为x=123,y=123
  2. 系列解包赋值
    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
  3. Python不支持常量,没有语法规则限制改变一个常量的值,只能约定常量的命名规则,以及在逻辑上不对它做出更改
    e.g. MAX_SPEED=120,全大写,并用下划线分开

Python中的进制

在Python中,除了10进制外,还有:

  1. 0b 或 0B:二进制,任意位的数值可取0或1,逢2进1,如0b101
  2. 0o 或 0O:八进制,任意位的数值可取0-7,逢8进1,如0o17
  3. 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内置的数据类型分为:

  1. 整型(integer)
  2. 浮点型(float)
  3. 字符串型(string)
  4. 布尔型(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

  1. 同一运算符用于比较两个对象的存储单元,实际比较的是对象的地址,返回值位布尔值
  2. 除了比较对象的地址外,还可比较两个对象的值是否相等,用“==”实现,当值相等时返回True,此方法默认调用了对象的__eq__()方法。
  3. 注意,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]
原则:提取的字符包含起始字符,但不包含终止字符,俗称“包头不包尾”。

  1. [:]:提取整个字符串
  2. [start:]:从开头到结尾
  3. [:end]:从开头到(结尾-1)
  4. [::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