最基本内置数据类型
最基本内置数据类型
每个对象都有类型,python中最基本的内置数据类型:
1. 整数
2. 浮点数
3. 布尔型
4. 字符串型
数字
Python⽀持整数和浮点数,我们可以对数字做如下运算:
运算符说明
+加法
-
减法
*乘法
/浮点数除法 eg. 8/2=4.0
//整数除法
%模(取余)
**幂
使⽤divmod()函数同时得到商和余数,会返回⼀个元组
divmod(13,3)
(4,1)
整数
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
这三种进制可以⾮常⽅便的进⾏“位运算”操作
使⽤int()实现类型转换:
1. 浮点数直接舍去⼩数部分
2. 布尔值True转为1,False转为0
3. 字符串符合整数格式(浮点数格式不⾏)则直接转成对应整数,否则报错
⾃动转型:
整数和浮点数混合运算时,表达式结果⾃动转型成浮点数
整数可以有多⼤:
Python2中,int是32位,可以存储从-2147483648到2147483647的整数(约±21亿)。Long类型是64位,可以存储:-2^63 –2^63-1之间的数值。
Python3中,int可以存储任意⼤⼩的整数,long被取消。Python3中可以做出超⼤数的计算,⽽不会造成“整数溢出”,这也是Python特别适合科学运算的特点。
整数缓存问题
Python仅仅对⽐较⼩的整数对象进⾏缓存(范围为[-5,256])缓存起来,⽽并⾮是所有整数对象。需要注意的是,这仅仅实在命令⾏中执⾏,⽽在Pycharm或者保存为⽂件执⾏,结果是不⼀样的,这是因为解释器做了⼀部分优化(范围是[-5,任意正整数])
eg.
>>> c=10
>>> d=10
>>> c is d
True
浮点数
浮点数,称为float。
浮点数⽤a x b^10形式的科学计数法表⽰
这些数字在内存中也是按照科学计数法存储
类型转换和四舍五⼊
1. 类似于int(),我们也可以使⽤float()将其他类型转化成浮点数
2. 整数和浮点数混合运算时,表达式结果⾃动转型成浮点数
3. round(value)可以返回四舍五⼊的值
注意:不会改变原有值,会⽣成⼀个新的对象
增强型赋值运算符
运算符+、-、*、/、//、**和%和赋值符=结合可以构成“增强型赋值运算符”
运算符等价
+=a+=2 => a=a+2
-=a-=2 => a=a-2
*=a*=2 => a=a*2
/=a/=2 => a=a/2
//=a//=2 => a=a//2
**=a**=2 => a=a**2
%=a%=2 => a=a%2
注:
1. 符号之间不能加空格
2. Python不⽀持⾃增(++)或⾃减(–)
时间的表⽰
计算机中时间的表⽰是从“1970年1⽉1⽇ 00:00:00”开始,以毫秒(1/1000秒)进⾏计时。我们把1970年这个时刻称为“unix时间点”。这样,我们就把时间全部都⽤数字来表⽰了。
Python中可以通过time.time()获得当前时刻,返回的值是以秒为单位,带微秒(1/1000毫秒)京都的浮点数值。布尔值
Python2中没有布尔值,直接⾷⽤数字0表⽰False,⽤数字1表⽰True。
Python3中,把True和False定义成了关键字,但它们的本质还是1和0,甚⾄可以和数字相加
⽐较运算符
所有⽐较运算符返回1表⽰真,返回0表⽰假。这分别与特殊的变量True和False等价。
运算符描述
==等于-⽐较对象的值是否相等
!=不等于-⽐较两个对象的值是否不相等
>⼤于-返回x是否⼤于y
<⼩于-返回x是否⼩于y
>=⼤于等于-返回x是否⼤于等于y
<=⼤于-返回x是否⼩于等于y
逻辑运算符
运算符说明
or 逻辑或x or y ,x为true,则不计算y,直接返回返回true,x为false,则返回y and 逻辑与x and y ,x
为true,则返回y的值,x为false,则不计算y,直接返回false not 逻辑⾮not x,x为true,则返回false,x为false,则返回true
eg. a or 30
会发⽣短路现象,如果a是true,就直接把它返回,后⾯的就不运算
同⼀运算符
同⼀运算符⽤于⽐较两个对象的存储单元,实际⽐较的是对象的地址
运算符说明
is is是判断两个标识符是不是引⽤同⼀个对象is not is not是判断两个标识符是不是引⽤不同对象
is 和 == 的区别:
is⽤于判断两个变量引⽤对象是否为同⼀个,即⽐较对象的地址
==⽤于判断引⽤变量引⽤对象的值是否相等,默认调⽤对象的__eq__()⽅法
is运算符⽐==效率⾼,在变量和None进⾏⽐较时,应该使⽤is
eg.
>>> a=1000
>>> b=1000
>>> a == b
True
>>> a is b
False
>>> id(a)
46764560
>>> id(b)
46765216
字符串
字符串基本特点:
字符串的本质是:字符序列
Python的字符串是不可变的,我们⽆法对原字符串做任何修改。但可以将字符串的⼀部分复制到新创建的字符串,达到“看起来修改”的效果
Python不⽀持单字符类型,单字符也是作为⼀个字符串使⽤的
字符串的编码:
Python3直接⽀持Unicode。可以表⽰世界上任何书⾯语⾔的字符。Python3的字符默认就是16位Unicode编码,ASCII码是Unicode编码的⼦集
使⽤内置函数ord()可以把字符转换成对应的Unicode码
使⽤内置函数chr()可以把⼗进制数字转换成对应的字符
引号创建字符串
我们可以通过单引号或双引号创建字符串。使⽤两种引号的好处是可以创建本⾝就包含引号的字符串,⽽不使⽤转义字符。
连续三个单引号或三个双引号,可以帮助我们创建多⾏字符串。
空字符串和len()函数
Python允许空字符串的存在,不包含任何字符且长度为0
len()⽤于计算字符串含有多少字符,eg. len(d)
转义字符
我们可以使⽤“+特殊字符”。实现某些难以⽤字符表⽰的效果
转义字符描述
\(在⾏尾时)续⾏符
\反斜杠符号
’单引号
"双引号
\b退格(Backspace)unicode码和ascii码区别
\n换⾏
\t横向制表符
转义字符描述
\r回车
eg.
>>> print('aaaaaa\
cccccddddd')
aaaaaacccccddddd
字符串拼接
1. 可以使⽤+将两个字符串拼接起来
(1)如果+两边都是字符串,则拼接
(2)如果+两边都是数字,则加法运算
(3)如果+两边类型不同,则抛出异常
2. 可以将多个字符串直接放在⼀起实现拼接
eg. ‘aa’‘bb’ => ‘aabb’
注:两种⽅法都会产⽣新的对象
字符串复制
使⽤*可以实现字符串复制
eg.
>>> a='Sxt'*3
>>> a
'SxtSxtSxt'
不换⾏打印
我们前⾯调⽤print时,会⾃动打印⼀个换⾏符,有时,我们不想换⾏,不想⾃动添加换⾏符。我们可以⾃⼰通过参数end=“任意字符串”,实现末尾添加任何内容
eg.
>>> print("sxt",end=' ')
>>> print("sxt",end='##')
>>> print("sxt")
sxt sxt##sxt
从控制台读取字符串
我们可以使⽤input()从控制台读取键盘输⼊的内容
eg.
>>> myname = input("请输⼊名字:")
请输⼊名字:⾼
>>> myname
⾼
str()实现数字转型字符串
str()可以帮助我们将其他数据类型转换为字符串。
当我们调⽤print()函数时,解释器⾃动调⽤了str()将⾮字符串的对象转换成了字符串。
使⽤[ ]提取字符
字符串的本质就是字符序列,我们可以通过在字符串后⾯添加[ ],在[ ]⾥⾯指定偏移量,可以提取该位置的单个字符。
正向搜索:最左侧第⼀个字符,偏移量是0,第⼆个偏移量是1,以此类推,知道len(str)-1
反向搜索:最右侧第⼀个字符,偏移量是-1,倒数第⼆个偏移量是-2,以此类推,直到-len(str)为⽌
eg.
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论