第三章 python的数据类型(上)
Posted py-xiaoqiang
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第三章 python的数据类型(上)相关的知识,希望对你有一定的参考价值。
在本章,我们介绍下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() # True
s2.isdigit() # False
s3.isdigit() # True
# '1','②'可以判断
- .isdecimal() 和int()能转换的字符串一致,所以推荐使用。
s1 = '1'
s2 = '二'
s3 = '③'
s1.isdecimal() # True
s2.isdecimal() # False
s3.isdecimal() # False
# 只有'1'可以判断,和int()能转换的一致。推荐使用
# 详细:判断是否是10进制小数
- .isnumeric() # 判断是否是数字 -> ‘1‘,‘二‘,‘②‘都可以判断
s1 = '1'
s2 = '二'
s3 = '③'
s1.isdecimal() # True
s2.isdecimal() # True
s3.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的数据类型(上)的主要内容,如果未能解决你的问题,请参考以下文章