python获取数据类型_python基础数据类型
⼀.什么是数据类型?
什么是数据类型?
我们⼈类可以很容易的分清数字与字符的区别,但是计算机并不能呀,计算机虽然很强⼤,但从某种⾓度上看⼜很傻,除⾮你明确的告诉它,1是数字,“汉”是⽂字,否则它是分不清1和‘汉’的区别的,因此,在每个编程语⾔⾥都会有⼀个叫数据类型的东东,其实就是对常⽤的各种数据类型进⾏了明确的划分,你想让计算机进⾏数值运算,你就传数字给它,你想让他处理⽂字,就传字符串类型给他。Python中常⽤的数据类型有多种,如下:
整数(int) ,字符串(str),布尔值(bool),列表(list),元组(tuple),字典(dict),集合(set).
int。数字:主要⽤于运算。1 ,
bool。判断真假:True, False.
str。简单少量的储存数据,并进⾏相应的操作。name = 'alex',
tuple。只读,不能更改。(1,'alex')
list:⼤量有序数据,[1,'ses',True,[1,2,3],{'name':'jinxin'}]
dict:⼤量数据,且是关联性⽐较强的数据 {'name':'jinxin','age':18,'name_list':['张三','李四']}
⼆.基础数据类型。
2.1数字int。
nt,就是咱们常见的数据类型,主要是⽤于葛总运算,加减乘数等这⾥就不给你举例说明了。
⾸先要给⼤家讲下是⼗进制与⼆进制之间的转换。
2.1.1 ⼗进制⼆进制转换
⼗进制整数转换为⼆进制整数采⽤"除2取余,逆序排列"法。具体做法是:⽤2整除⼗进制整数,可以得到⼀个商和余数;再⽤2去除商,⼜会得到⼀个商和余数,如此进⾏,直到商为⼩于1时为⽌,然后把先得到的余数作为⼆进制数的低位有效位,后得到的余数作为⼆进制数的⾼位有效位,依次排列起来。
⼗进制⼩数转换成⼆进制⼩数采⽤"乘2取整,顺序排列"法。具体做法是:⽤2乘⼗进制⼩数,可以得
到积,将积的整数部分取出,再⽤2乘余下的⼩数部分,⼜得到⼀个积,再将积的整数部分取出,如此进⾏,直到积中的⼩数部分为零,此时0或1为⼆进制的最后⼀位。或者达到所要求的精度为⽌。
⼆进制转化成⼗进制:
要从右到左⽤⼆进制的每个数去乘以2的相应次⽅,⼩数点后则是从左往右
例如:⼆进制数1101.01转化成⼗进制
1101.01(2)=1*20+0*21+1*22+1*23 +0*2-1+1*2-2=1+0+4+8+0+0.25=13.25(10)
所以总结起来通⽤公式为:
abcd.efg(2)=d*20+c*21+b*22+a*23+e*2-1+f*2-2+g*2-3(10)
或者是:
把⼆进制数⾸先写成加权系数展开式,然后按⼗进制加法规则求和。这种做法称为"按权相加"法。
此时,1101=8+4+0+1=13
再⽐如:⼆进制数100011转成⼗进制数可以看作这样:
数字中共有三个1 即第⼀位⼀个,第五位⼀个,第六位⼀个,然后对应⼗进制数即2的0次⽅+2的1次⽅+2的5次⽅, 即
100011=32+0+0+0+2+1=35
2.2.2 int操作⽅法
因为数字主要是⽤于计算,所以针对于数字可以使⽤的⽅法除了那些运算之外,没有什么经常会⽤的⽅法,python给咱们提供了⼀种⽅法:bit_length()就是帮助你快速的计算整数在内存中占⽤的⼆进制码的长度.
num = 10
print(num.bit_length()) #当⼗进制⽤⼆进制表⽰时,最少使⽤的位数#运⾏结果: 4
2.2布尔值bool。
布尔值就两种:True,False。就是反应条件的正确与否。
真 1 True。
假 0 False。
这⾥补充⼀下int str bool 三者数据类型之间的转换。
1 #int ---> bool
2 i = 100
3 print(bool(i)) #True # ⾮零即True
4 i1 =0
5 print(bool(i1)) #False 零即False
6
7 #bool ---> int
8 t =True9 print(int(t)) #1 True --> 1
10 t =False11 print(int(t)) #0 False --> 0
12
13 #int ---> str
14 i1 = 100
15 print(str(i1)) #'100'
16
17 #str ---> int # 全部由数字组成的字符串才可以转化成数字
18 s1 = '90'
19 print(int(s1)) #90
20
21 #str ---> bool
22 s1 = '太⽩'
23 s2 = ''
24 print(bool(s1)) #True ⾮空即True
25 print(bool(s2)) #False
26 #bool ---> str
27 t1 =True28 print(str(True)) #'True'
View Code
2.3字符串str。
Python中凡是⽤引号引起来的数据可以称为字符串类型,组成字符串的每个元素称之为字符,将这些字符⼀个⼀个连接起来,然后在⽤引号起来就是字符串。
s1 = '太⽩nb'
#对于s1这个字符串来说,它由四个字符组成:太, ⽩, n, b。
2.3.1、字符串的索引与切⽚。
组成字符串的字符从左⾄右,依次排列,他们都是有顺序的,就好⽐是部队的队列,从左⾄右依次报号(从零开始) :0,1,
索引即下标,就是字符串组成的元素从第⼀个开始,初始索引为0以此类推。
a = 'ABCDEFGHIJK'
print(a[0])print(a[3])print(a[5])print(a[7])
切⽚就是通过索引(索引:索引:步长)截取字符串的⼀段,形成新的字符串(原则就是顾头不顾腚)。
a = 'ABCDEFGHIJK'
print(a[0:3]) #print(a[:3]) 从开头开始取0可以默认不写
print(a[2:5])print(a[:]) #默认到最后
print(a[:-1]) #-1 是列表中最后⼀个元素的索引,但是要满⾜顾头不顾腚的原则,所以取不到K元素
print(a[:5:2]) #加步长
print(a[-1:-5:-2]) #反向加步长
2.3.2、字符串常⽤⽅法。
字符串除了可以⽤切⽚(步长)之外,还有⼀些其他的操作⽅法
1 #数字符串中的元素出现的个数。
2 #ret
3 = a1.count("a",0,4) # 可切⽚
3 #print(ret3)
4
5 a4 = "dkfjdkfasf54"
6 #startswith 判断是否以...开头
7 #endswith 判断是否以...结尾
8 #ret4 = a4.endswith('jdk',3,6) # 顾头不顾腚
9 #print(ret4) # 返回的是布尔值
10 #ret5 = a4.startswith("kfj",1,4)
11 #print(ret5)
12
13 #split 以什么分割,最终形成⼀个列表此列表不含有这个分割的元素。
14 #ret9 = 'title,Tilte,atre,'.split('t')
15 #print(ret9)
16 #ret91 = 'title,Tilte,atre,'.rsplit('t',1)
17 #print(ret91)
18
19 #format的三种玩法 格式化输出
20 res='{} {} {}'.format('egon',18,'male')21 res='{1} {0} {1}'.format('egon',18,'male')22 res='{name} {age} {sex}'.format(sex='male',name='egon',age=18)23
24 #strip
25 name='*barry**'
26 print(name.strip('*'))27 print(name.lstrip('*'))28 print(name.rstrip('*'))29
30 #replace
31 name='alex say :i have one tesla,my name is alex'
32 place('alex','SB',1))33
34 >is系列
35 name='taibai123'
36 print(name.isalnum()) #字符串由字母或数字组成
37 print(name.isalpha()) #字符串只由字母组成
38 print(name.isdecimal()) #字符串只由⼗进制组成
39
40
41 >>###下⾯这些⽅法在数据类型补充时会讲到,现在不讲>>>>
42 #寻字符串中的元素是否存在
43 #ret6 = a4.find("fjdk",1,6)
44 #print(ret6) # 返回的到的元素的索引,如果不到返回-1
45
46 #ret61 = a4.index("fjdk",4,6)
decimal是整数数据类型47 #print(ret61) # 返回的到的元素的索引,不到报错。
48
49 #captalize,swapcase,title
50 print(name.capitalize()) #⾸字母⼤写
51 print(name.swapcase()) #⼤⼩写翻转
52 msg='taibai say hi'
53 print(msg.title()) #每个单词的⾸字母⼤写
54
55 #内同居中,总长度,空⽩处填充
56 ret2 = a1.center(20,"*")57 print(ret2)
View Code
2.4列表list
Why:我们现在已经学过的数据类型有:数字,布尔值,字符串,⼤家都知道数字主要⽤于计算,boo
l值主要是条件判断,只有字符串可以⽤于数据的存储,这些数据类型够⽤么?对于⼀门语⾔来说,肯定是不够⽤的。就说字符串:
1,字符串只能存储少量的数据,对于⼤量的数据⽤字符串操作不⽅便也不易存储。
2,字符串存储的数据类型太单⼀,只能是字符串类型。
例如:‘1 True alex’ 像这样的字符串,我如果通过切⽚或者其他⽅法将1 True alex 取出来,他也只能是字符串,但是我想要得到数字的1,布尔值的True,必须还要转化,是不是很⿇烦。
所以python给咱们也提供了⼀类数据类型,他能承载多种数据类型,这类数据类型被称作容器类数据类型可以存储⼤量的数据。列表就属于容器类的数据类型。
What:这个数据类型就是list列表。
列表是python的基础数据类型之⼀ ,其他编程语⾔也有类似的数据类型.⽐如JS中的数 组, java中的数组等等. 它是以[ ]括起来, 每个元素⽤' , '隔开⽽且可以存放各种数据类型: 列表是python中的基础数据类型之⼀,其他语⾔中也有类似于列表的数据类
型,⽐如js中叫数组,他是以[]括起来,每个元素以逗号隔开,⽽且他⾥⾯可以存放各种数据类型⽐如:
li = [‘alex’,123,Ture,(1,2,3,’wusir’),[1,2,3,’⼩明’,],{‘name’:’alex’}]
列表相⽐于字符串,不仅可以储存不同的数据类型,⽽且可以储存⼤量数据,32位python的限制是 536870912 个元素,64位python的限制是 1152921504606846975 个元素。⽽且列表是有序的,有索引值,可切⽚,⽅便取值。
How:那么这个列表如何使⽤呢?咱们从这⼏⽅⾯去深⼊研究这个列表。
2.4.1 列表的创建
#创建⼀个列表有三种⽅式:
#⽅式⼀:(常⽤)
l1 = [1, 2, '太⽩']#⽅式⼆:(不常⽤)
l1 = list() #空列表#l1 = list(iterable) # 可迭代对象
l1 = list('123')print(l1) #['1', '2', '3']
#⽅式三:列表推导式(后⾯的课程会讲到)
l1 = [i for i in range(1,5)]print(l1) #[1, 2, 3, 4]
2.4.2 列表的索引切⽚
1 l1 = ['a', 'b', '太⽩', 3, 666]
2 print(l1[0]) #'a'
3 print(l1[-1]) #666
4 print(l1[1:3]) #['b', '太⽩']
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论