一、数值型
python的数值型数据,有整型,浮点型和复数型,我们之前一篇文章中讲过的进制就属于整型,就不在这篇文章中赘述了,那么我们说一下剩下的两种类型,浮点和复数。
1、浮点型
也就是小数,如下代码:
a=0.1
print (a)
print (type(a)) #type是python内置函数,可查看数据类型
浮点型数据做运算时都有尾数不确定的问题,其他编程语言中也会出现这个问题,原因是内存做运算时,是以二进制进行运算的,所以这也是正常的,那么我们希望小数点后就保存1位有效数字,怎么做呢?我们来看下边的代码:
上边这句代码中的round是python的内置函数,作用是限定小数位数。代码格式为:round(表达式,保留位数)
2、复数
复数分为实部和虚部,如下
a=235+45j #j是复数的一个基本单位,也就是j跟在谁后面,谁就是虚数
print ('实数部分:',a.real) #235是实数
print ('虚数部分:',a.imag) #45是虚数
二、字符串
1、常用字符串
用引号引起来的称之为字符串,如下代码
s1 = 'hello world'
s2 = "你好"
s3 = '''姓名:张三
年龄:20
电话:13577889900'''
s4 = """姓名:张三
年龄:20
电话:13577889900"""
print (s1,s2,sep='\n')
print ('--------------s3--------------')
print (s3)
print ('--------------s4--------------')
print (s4)
结果如下:
2、转义字符
\n:换行
\t:tab键,8个字符
':表示单引号本身
":表示双引号本身
\:表示一个反斜杠
print ('abcdefghi') #原样字符串
print ('abc\ndef\nghi') #两个回车
print ('abc\tdefghi') #一个tab键
print ('ab\'cde\'fghi') #一对单引号
print ('ab\"cdef\"ghi') #一对双引号
print (r'abc\ndef\nghi') #在字符串界定符前边加上r或R,则转义字符失效
print (R'ab\"cdef\"ghi') #字符串界定符指字符串前边的引号
结果如下:
3、切片
切片是想要检索字符串中的某个区域的字符串值,那么想要了解切片,先要知道字符串的索引是怎么算的,如下:
-5 | -4 | -3 | -2 | -1 |
---|---|---|---|---|
h | e | l | l | o |
0 | 1 | 2 | 3 | 4 |
如上字符串:hello,它的索引有两种展现形式,一种是从 左到右数字从0开始递增,一种是从右到左从-1开始递减。也就是说,如果想打印字符h,那么有两种打印手段,如下:
我们通过上边的例子了解了python字符串的索引,那么想要打印字符串的一部分就需要用到切片了,切片表达式为:字符串[N:M],其中的N和M为索引,意思是打印索引从N到M的字符,包含N,不包含M,为半闭半开区间。例如:我们想要打印hello中的连个L,通过下边的图示,我们可以知道,这两个字符的索引分别是,从[-3:-1]和[2:4],所以,我们可通过如下的代码实现:
#想要打印两个ll,那么可以有两种打印放方式
s = 'hello'
print (s[2:4])
print (s[-3:-1])
结果如下:
如果切片索引中,[N:M]中只有M,则表示从左边第一个字符开始取数据,如果只有N,则表示从N开始一直取到最后一个字符。如下:
-10 | -9 | -8 | -7 | -6 | -5 | -4 | -3 | -2 | -1 |
---|---|---|---|---|---|---|---|---|---|
h | e | l | l | o | w | o | r | l | d |
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
s = 'helloworld'
print (s[:5]) #从左边第一个字符开始取,结果是hello
print (s[-5:]) #从角标为-5的开始取,一直取到最后一个字符,结果是world
结果是:
补充:
切片表达式中还可以有步长,语法如下:
[start:end:step]
start:字符串开始位置,缺省的话,则表示从0开始
end:字符串结束位置,缺省的话,则表示到最后一个字符结束
step:步长,缺省的话,则表示步长为1
例子如下:
s='helloworld'
print (s[0:5:1]) #hello 从0开始,到5结束,步长为1
print (s[0:5:2]) #hlo 从0开始,到5结束,步长为2
print (s[:5:1]) #hello 缺省开始位置,则表示从0开始,到5结束,步长为1
print (s[5::1]) #world 缺省结束位置,则表示从5开始,到最后一个字符结束,步长为1
print (s[0:5]) #hello 缺省步长,则表示从0开始,到5结束,步长为1
print (s[:5:]) #hello 缺省开始位置和步长,则表示,从0开始,到5结束,步长为1
print (s[5::]) #world 缺省结束位置和步长,则表示,从5开始,到最后一个字符结束,步长为1
print (s[::2]) #hlool 缺省开始位置和结束位置,则表示,整个字符串从0开始,每2个字符打印一个
print (s[::]) #helloworld 全缺省了,则表示打印整个字符串
4、字符串操作
x+y:字符串拼接
x*n:n表示次数,x出现n次
x in y:x是不是y的子串
代码如下:
x = 'hello'
y = 'helloworld'
print (x+y)
print (x*5) #打印5个x
print (x in y) #x是不是y的子串,也就是y是否包含x,结果为true或false
结果如下:
三、布尔型
布尔类型有两个值:True和False,True值为1,False值为0。代码如下:
print (True+10) #1+10=11
print (False+10) #0+10=10
布尔值大部分情况下为真,除了下边几种为假的情况,如下代码:
print (bool(False)) #False False布尔值为假
print (bool(None)) #False None布尔值为假
print (bool(0)) #False 0,0.0,虚数0的布尔值均为假
print (bool(0.0)) #False
print (bool((23+0j).imag)) #False
print (bool('abc')) #True
print (bool('')) #False 空字符串布尔值为假
print (bool([])) #False 空列表布尔值为假
print (bool({})) #False 空字典布尔值为假
print (bool(())) #False 空元组布尔值为假
综上所述,我们已经分享完了python常用的数据类型了。