自学Python--数据类型

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_41402059/article/details/82024992

数据类型:int、bool、str、list、tuple、dict、set

列表list:

a = [1, 2, 3, 4, 5, 6]

元组tuple:

'只读列表',不可修改

a = (1, 2, 3, 4, 5, 6)

字典dict:键值对

a = {'name':'xinian', 'age':18}

集合set:类似数学概念中的集合

a = {1, 2, 3, 4, 5, 6}

int类型:

方法:bit_lenth(),bin()

i = 9
print(bin(i)) # 输出0b+二进制,此时输出0b1001,因此9的二进制是1001
print(i.bit_length()) #转换为二进制后的最小位数,9的二进制是1001,因此输出4

bool类型:

效率:

0 , ‘’, [], (), {}, set()转换成bool全是false

str类型:

s = '123456789'

s[0:9:2]

起始位置:终止位置:步长,步长默认1,“顾头不顾尾”,起止位置可超出范围

步长是正数时,起始位置必须在结束位置前面,否则输出空

步长是负数时,会反向输出,起始位置必须在结束为止后面,否则输出空

s = '123456789'
# 起止位置必须从左到右
print(s[1:3]) # '23'
print(s[-1:-3]) # -1是9,-3是7,步长1,起始位置在结束位置后面,因此输出空
print(s[-3:-1]) # -3是7,-1是9,输出78
print(s[-1:-3:-1]) #98

字符串操作:

首字母大写:capitalize()

全部变大写:upper()

全部小写:lower()

场景:验证码等,以上方法对数字无影响

大小写反转:swapcase()

标题化,所有单词首字母大写,空格、数字或者特殊字符等隔开的单词:title()

填充:center(width, '填充字符默认none')

判断字符串以什么开头:startswith('xxx') ,可带索引范围

s = '1chinaCCCCCCC'
print(s.startswith('hi', 2, 4)) # 带索引范围  True

判断字符串以什么结尾:endswith('xxx') 可带索引范围

判断字符串是否包含:find('xxx') 可带索引范围,返回第一个元素下标,找不到返回-1

和 xxx in xxxxxx相比,find可以返回元素位置

和 index()相比,find找不到时不会保存

判断字符串中元素位置:index('xxx'),返回第一个元素下标,找不到报错

去掉字符串中空格:strip() ,用于移除字符串头尾指定的字符(默认为空格或换行符)或字符序列。 比直接replace简洁,但是只能去掉前后的空格,不会去掉中间的空格

a="aabcacb1111acbba"
print(a.strip("abc"))
print(a.strip("acb"))
print(a.strip("bac"))
print(a.strip("bca"))
print(a.strip("cab"))
print(a.strip("cba"))

输出:
1111
1111
1111
1111
1111
1111

类似方法lstrip()只删除字符串左边指定字符,rstrip()删除字符串右边指定字符

字符串中某个字符出现的次数:count('xxx')

字符串分割:split('xxx'),返回list,分割参数会删除,也可用于字符串转化为列表

格式化输出:fomat(),用{}占位,可用索引,可用字典

s = 'name:{},age:{}'.format('xinian','18')
print(s)

s1 = 'name:{0},age:{1}'.format('xinian','18')
print(s1)

s2 = 'name:{name},age:{age}'.format(name='xinian',age='18')
print(s2)

字符串替换:replace(old, new, count=None),默认全部替换,可指定替换次数

判断字符串是否只由十进制数字组成:isdecimal(),

True: Unicode数字,全角数字(双字节) 
False: 罗马数字,汉字数字,小数
Error: byte数字(单字节)

判断字符串是否只有数字组成:isdigit()

True: Unicode数字,byte数字(单字节),全角数字(双字节)
False: 汉字数字,罗马数字,小数
Error: 无 

判断字符串是否只有数字字符:isnumeric()

True: Unicode数字,全角数字(双字节),罗马数字,汉字数字 
False: 小数 
Error: byte数字(单字节)

s = '123'
print(s.isdecimal()) # True
print(s.isdigit()) # True
print(s.isnumeric()) # True

s = b'123'
#print(s.isdecimal()) # 报错
print(s.isdigit()) # True
#print(s.isnumeric()) # 报错

s = '123.0'
print(s.isdecimal()) # False
print(s.isdigit()) # False
print(s.isnumeric()) # False

s = '三叁'
print(s.isdecimal()) # False
print(s.isdigit()) # False
print(s.isnumeric()) # True

判断字符串是否只由字母组成:isalpha()

判断字符串是否只由大写字母组成:isuper()

判断字符串是否只由小写字母组成:islower()

判断字符串是否由字母+数字组成:isalnum()

判断字符串是否只由空格组成(至少一个空格):isspace()

猜你喜欢

转载自blog.csdn.net/weixin_41402059/article/details/82024992