第三章 python的数据类型(上),,在本章,我们介绍下p


在本章,我们介绍下python的数据类型。 这章的内容比较多,我们分上,下两部分来介绍。

3.1 整型(int),浮点型(float)

3.1.1 整形的长度

在py2中有int和long,但是在py3中只有int,py3的int相当于py2的int+long。py3的int的长度跟内存容量一样。

3.1.2 整除

py2和py3的整除是不一样的
py2:除的结果是小数也会返回整数,小数点后面的直接砍掉(不是四舍五入)
py3:除的结果是小数会自动转换成浮点类型

3.1.3 浮点型(float)

占位符 %f 的时候默认小数点后6位,第7位四舍五入。

3.2 布尔(bool)

用于表示真假的类型,只有True和False两种。

其他类型转换成布尔值:
{},[],None,"",0 -> False

3.3 字符串(str),及其方法

字符串是写代码中最常见的,python内存中的字符串是按unicode编码存储的。在python中字符串用‘‘或者""括起来表示。

在python中‘和"是一样的

注意:字符串是不可变类型

下面介绍下字符串的方法:

3.4.1 字母大小写

.capitalize(self)首字母大写

.casefold(self)字符串变小写。除此之外,可以把英语以外的字母变小写(多用于unicode)。(py3中新追加的)

.upper()英字母全转大写,没有大小写的字符串不会报错

.isupper() 判断都是大写

.lower()英字母全转小写

.islower() 判断都是小写

.swapcase(self) 大小写互相转换

.title(self) 每个单词的首字母变大写

3.4.2 判断数字

判断是否是数字有下面3中方法:

.isdigit()
s1 = '1's2 = '二's3 = '③'s1.isdigit()  # Trues2.isdigit()  # Falses3.isdigit()  # True# '1','②'可以判断
.isdecimal() 和int()能转换的字符串一致,所以推荐使用。
s1 = '1's2 = '二's3 = '③'s1.isdecimal()  # Trues2.isdecimal()  # Falses3.isdecimal()  # False# 只有'1'可以判断,和int()能转换的一致。推荐使用# 详细:判断是否是10进制小数 
.isnumeric() # 判断是否是数字 -> ‘1‘,‘二‘,‘②‘都可以判断
s1 = '1's2 = '二's3 = '③'s1.isdecimal()  # Trues2.isdecimal()  # Trues3.isdecimal()  # True# '1','二','②'都可以判断

3.4.3 字符串格式化

.center(self,width,fillchar=None) 占用文本长度并居中,fillchar 是填充的字符

类似的还有居左 .ljust(),居右 .rjust(),居右补0 .zfill()

.format(self,*args,**kwargs) 类似于字符串里用 %s 插入内容
s = "Welcome {0} to Apeland,you are No.{1} user. you are {0}"s.format("Alex",998)print(s)                            #输出不出来print(s.format("Alex",998))         #这种方式或者加个变量 d = s.format("Alex",998) 然后print(d)s = "Welcome {name} to Apeland,you are No.{num} user. you are {name}"s.format(name = "Alex",num = 998)print(s.format("Alex",998))         
.format_map(self,mapping) 用字典的元素填充{}。基本与format类似,只是{}里面要放入字典的key。
s = "Welcome {key1} to Apeland,you are No.{key2} user. you are {key2}"d = {"key1":"aaa","key2":"bbb"}s = s.format_map(d)print(s)执行结果:Welcome aaa to Apeland,you are No.bbb user. you are bbb

3.4.4 查询,判断字符串内容

.endswith(self,suffix,start=None,end=None) 判断以什么字符串结尾,也可以切片后判断

类似的有: .startswith(self,prefix,start=None,end=None)

.find(self,sub,start=None,end=None) 从左到右找第一个sub相同的字符串,找到了返回下标,找不到返回-1。可切片。

注意:切片后返回的下标依然是原字符串的下标
类似的有: .rfind()

.index(self,sub,start=None,end=None) 与find基本一样,但是找不到会报错

类似的有: .rindex()

.count(self,sub,start=None,end=None) 查询sub的个数,可以用start和end切片后数(范围count)

.isspace(self) 判断是不是空格,多个空格也可以

.isalnum(self) 判断是不是字母或数字

.isprintable(self) 是否可以打印(比如\r,\t,\n,空格 等)

.istitle() 每个单词的首字母都是大写

3.4.5 字符串处理

.strip(self,chars=None) 默认去掉字符串前后的 ‘\t‘,‘\n‘,‘\r‘,空格 (‘\t‘相当于tab)。输入参数可以去掉前后参数指定的字符串。
#去掉特殊的字符串,然后去掉空格s = '  aabbccdd  ee's = s.strip('ee').strip()print(s)#输出结果:aabbccdd

类似的有:
只去掉右边的:rstrip(),只去掉左边的:lstrip()

.join(self,iterable) 把iterable的列表拼接起来,每个元素之间用self字符串隔开。返回拼接后的字符串

注意:只有字符串型的元素可以拼接

list1 = ["hello","the","world!"]str1 = "-".join(list1)     #用 - 拼接print(str1)#执行结果:hello-the-world!

.split(self,sep=None,maxsplit=-1) 把字符串分割并且返回一个列表,可以指定sep字符串来分割元素,sep会被删除。

不指定sep,整个字符串会变成一个元素。注意sep不能同时指定两个字符。maxsplit是最大分割次数,1就是分割一次。从左往右分割。

.splitlines(self,keepends=None) 根据换行分割,类似split(‘\n‘)

.partition(sep) 找到第一个sep,分割成3份:["sep前的","sep","sep后的"]

类似的有: .rpartition()

1对1的文字替换.maketrans(self,*args,**kwargs) .translate()
str1 = 'abcdefg'str2 = '1234567'table = str.maketrans(str1,str2)str3 = 'abcdefghijklmnopqrstuvwxyz'result = str3.translate(table)print(result)# 执行结果1234567hijklmnopqrstuvwxyz

.replace(self, old, new, count) 用new替换掉所有old字符串,并且返回替换后结果。

字符串反转 str[::-1]

注意:字符串没有reverse方法,reverse是列表的方法

第三章 python的数据类型(上)

评论关闭