数据类型: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()