python的基本数据类型
1.数字 int
2.字符串 str
3.布尔型 bool
4.列表 list
5.元组 tuple
6.字典 dict
一个一个来看,分别梳理各自的方法。
一、数字 int
1.bit_length -- 得到指定数值的二进制的长度
a=10
print(a.bit_length)
输出:4
因为a=10,而10的二进制数是1010,刚好是4位,所以a.bit_length是4
2.conjugate(self, *args, **kwargs) --获取共轭复数
a = 3 + 4j
b = a.conjugate()
print(b)
输出:3-4j
3.from_bytes(cls, bytes, byteorder, *args, **kwargs) --将字节数据转化为整数,括号里带星号的可以省略。 (这个要特别注意,我没理解什么意思)
a= b'\x00\n'
b=int.from_bytes(a,byteorder='big')
print(b)
输出:10
4.to_bytes(self, length, byteorder, *args, **kwargs) --把int类型转bytes
a=10
b=a.to_bytes(2,byteorder='big')
print(b)
输出:b'\x00\n'
二、字符串
-
capitalize()
--把字符串中的首字母大写,其他字母全部变成小写
a = 'woRld'
b = a.capitalize()
print(b)
输出:World -
casefold()
--把字符串中的所有字符变成小写
a = 'WorLd'
b = a.casefold()
print(b)
输出:world -
center(width, fillchar=None)
--把字符串放在中间,总长度是width,fillchar默认为None
a = 'world'
b = a.center(15,'*')
print(b)
输出:world -
count(sub, start=None, end=None)
--用于统计字符串里某个字符或子字符串出现的次数。
sub -- 搜索的子字符串
start -- 字符串开始搜索的位置。默认为第一个字符,第一个字符索引值为0。
end -- 字符串中结束搜索的位置。字符中第一个字符的索引为 0。默认为字符串的最后一个位置。
a = 'tested'
b = a.count('e',0,5)
print(b)
输出:2
-
encode(encoding='utf-8', errors='strict')
--以 encoding 指定的编码格式编码字符串。errors参数可以指定不同的错误处理方案。
a = 'world'
b = a.encode('utf-8','strict')
print(b)
输出:b'world' -
endswith(suffix, start=None, end=None)
--判断字符串是否以某个字符结尾,返回bool型
a = 'world'
b = a.endswith('d')
c = a.endswith('d',1,5)
d = a.endswith('l')
print(b)
print(c)
print(d)
输出:True
True
False -
expandtabs(tabsize=8)
---对字符串每8位做一次分割,之后的用空格补全。如tabsize=8,字符串是abcde\tdljaljlx\tg,则第一个\t是3个空格,第二个\t是8个空格。
test = 'abcde\tdljaljlx\tg'
v = test.expandtabs(8)
print(v)
输出:abcde dljaljlx g -
find(sub, start=None, end=None) ***平时用这个
--获取字符串中某个字符所在的索引值
a = 'world'
b = a.find('d')
print(b)
输出:4 -
index(sub, start=None, end=None) ***一般不用这个,以后也不要用它。
--获取字符串中某个字符所在的索引值
a = 'hello'
b = a.index('e')
print(b)
输出:1 -
format(self, *args, **kwargs)
--格式化输出
a = 'hello'
b = 'world'
print("你好的英文是{},世界的英文是{}".format(a,b))
输出:你好的英文是hello,世界的英文是world
a = 'i am {name},age is {age}'
v = a.format(name='jack',age=10)
print(v)
输出:i am jack,age is 10
a = 'i am {0},age is {1}'
v = a.format('jack',10)
print(v)
输出:i am jack,age is 10
-
format_map(self, mapping)
--用10一样是格式化输出,区别就是这里用字典做对应关系。
a = 'i am {name},age is {age}'
v = a.format_map({'name':'jack','age':10})
print(v)
输出:i am jack,age is 10 -
isalnum()
--检测字符串是否由字母或数字组成
a1 = 'hello'
a2 = 'hello123'
a3 = 'he_llo123'
a4 = '1234'
b = a1.isalnum()
c = a2.isalnum()
d = a3.isalnum()
e = a4.isalnum()
print(b)
print(c)
print(d)
print(e)
输出:
True
True
False
True -
isalpha()
--检测字符串中是否只包含字母
a1 = 'hello'
a2 = 'hello123'
a3 = 'he_llo123'
b = a1.isalpha()
c = a2.isalpha()
d = a3.isalpha()
print(b)
print(c)
print(d)
输出:
True
False
False -
isdecimal() ***写程序用的最多的是这个
--检测字符串中是否只包含十进制数字
str1 = '123456'
str2 = 'abcd1234'
str3 = '②'
a = str1.isdecimal()
b = str2.isdecimal()
c = str.isdecimal()
print(a)
print(b)
print(c)
输出:
True
False
False -
isdigit()
--判断字符串中是否仅含有数字
str1 = '123456'
str2 = 'abcd1234'
str3 = '②'
a = str1.isdigit()
b = str2.isdigit()
c = str3.isdigit()
print(a)
print(b)
print(c)
输出:
True
False
True -
isnumeric()
--判断字符串中是否仅含有数字
test1 = '②'
test2 = '1234'
test3 = 'abcd1234'
v1 = test1.isnumeric()
v2 = test2.isnumeric()
v3 = test3.isnumeric()
print(v1)
print(v2)
print(v3)
输出:
True
True
False -
isidentifier()
--检测字符串是否为python的有效的标识符(变量)
*标识符只能由下划线或字母开始,不能是数字
*标识符不能含有除了下划线之外的其他特殊字符
str1 = 'a123'
str2 = '1a23'
str3 = '_123'
print(str1.isidentifier())
print(str2.isidentifier())
print(str3.isidentifier())
输出:
True
False
True -
islower()
--检测字符串中包含的字母全部是小写字母
str1 = 'a123'
str2 = 'Aa23'
str3 = 'abc'
print(str1.islower())
print(str2.islower())
print(str3.islower())
输出:
True
False
True -
isprintable()
--判断字符串中是否为可打印的字符
test1 = ' '
test2 = 'hello '
test3 = 'hello\tworld'
v1 = test1.isprintable()
v2 = test2.isprintable()
v3 = test3.isprintable()
print(v1)
print(v2)
print(v3)
输出:
True
True
False -
isspace()
--判断字符串是否只包含空格包括\n \t
test1 = 'hello world'
test2 = ' '
test3 = '\n'
v1 = test1.isspace()
v2 = test2.isspace()
v3 = test3.isspace()
print(v1,v2,v3)
输出:False True True -
istitle()
--判断字符串是否为标题,标题的特定就是字符串中包含的所有的英文单词全部都是大写字母开头,且只能是首字母大写。
test1 = 'HEllo World'
test2 = 'Hello World'
test3 = 'Hello 你好 World'
v1 = test1.istitle()
v2 = test2.istitle()
v3 = test3.istitle()
print(v1,v2,v3)
输出:False True True -
isupper()
--判断字符串中的字母是否全部都是大写
test1 = 'hello world'
test2 = 'HELLO WORLD'
test3 = 'HELLO 你好 WORLD'
v1 = test1.isupper()
v2 = test2.isupper()
v3 = test3.isupper()
print(v1,v2,v3)
输出:False True True -
join(iterable) ***非常重要
--把字符串中的每一个字符用特定的符号连接起来,包括空格。
test = 'hello世界'
a = '_'
v = a.join(test)
print(v)
输出:h_e_l_l_o_世_界 -
ljust(width, fillchar=None)
rjust(width, fillchar=None)
--ljust是字符串左对齐,然后右边补齐width的长度。rjust是字符串右对齐,然后左边补齐width的长度。
test = 'hello世界'
v1 = test.ljust(10)
v2 = test.rjust(10)
print(v1)
print(v2)
输出:
hello世界
hello世界 -
lower()
--把字符串中所有的英文字符都变成小写
test = 'HELLo'
v = test.lower()
print(v)
输出:hello -
lstrip(chars=None) --删除字符串左边的字符
rstrip(chars=None) --删除字符串右边的字符
strip(chars=None) --删除字符串两边的字符
--举例如下:
test1 = ' hello '
test2 = 'hello'
v1 = test1.lstrip()
v2 = test2.lstrip('h')
v3 = test1.rstrip()
v4 = test2.rstrip('o')
v5 = test1.strip()
print(v1)
print(v2)
print(v3)
print(v4)
print(v5)
输出:
hello
ello
hello
hell
hello
-
maketrans(*args, **kwargs)
--用于字符串转换然后生成新的字符串
test1 = 'abcdefg'
v = test1.maketrans('cd','mn')
result = test1.translate(v)
print(result)
输出:abmnefg -
partition(sep)
--根据指定的分隔符从左边开始查找将字符串进行分割
test = 'abcdcefg'
v = test.partition('c')
print(v)
输出:
('ab', 'c', 'dcefg') -
rpartition(sep)
--根据指定的分隔符从右边边开始查找将字符串进行分割
test = 'abcdcefg'
v = test.rpartition('c')
print(v)
输出:
('abcd', 'c', 'efg') -
replace(old, new, count=None)
--替换字符串中的字符
test = 'abcdcefg'
v1 = test.replace('c','m')
v2 = test.replace('c','m',1)
v3 = test.replace('c','m',3)
print(v1)
print(v2)
print(v3)
输出:
abmdmefg
abmdcefg
abmdmefg -
rfind(sub, start=None, end=None)
---从右边开始数,找到字符串中某个字符的索引值
test = 'abcdecfg'
v = test.rfind('c')
print(v)
输出:5 -
split(sep=None, maxsplit=-1)
--分割字符串,以某个字符进行分割,但不包含该字符
test = 'abcdecfg'
v1 = test.split()
v2 = test.split('c')
print(v1)
print(v2)
输出:
['abcdecfg']
['ab', 'de', 'fg'] -
rsplit(sep=None, maxsplit=-1)
--同split一样,只不过split如果加了maxsplit参数,表示从左边开始查找,限定可分割次数。rsplit则表示从右边开始查找
test = 'abcdecfcgdagag'
v = test.rsplit('c',2)
print(v)
输出:['abcde', 'f', 'gdagag'] -
splitlines(keepends=None)
--按照行('\r', '\r\n', \n')分隔,返回一个包含各行作为元素的列表,如果参数 keepends 为 False,不包含换行符,如果为 True,则保留换行符,默认是False.
test = 'abcdecfc\ngdagag'
v1 = test.splitlines()
v2 = test.splitlines(True)
print(v1)
print(v2)
输出:
['abcdecfc', 'gdagag']
['abcdecfc\n', 'gdagag'] -
startswith(prefix, start=None, end=None)
--判断字符串是否已某个字符开头
test = 'abcdecfcgdagag'
v1 = test.startswith('d',3,-1)
v2 = test.startswith('a')
v3 = test.startswith('c')
print(v1)
print(v2)
print(v3)
输出:
True
True
False -
swapcase()
--对字符串中大小写字母进行转换
test = 'AbCd'
v = test.swapcase()
print(v)
输出:aBcD -
title()
--把字符串转换为标题,其实就是字符串中的每个单词首字母大写
test = 'hello world'
v = test.title()
print(v)
输出:Hello World -
translate(table)
????? -
upper()
--字符串中所有字母大写
test = 'hello world'
v = test.upper()
print(v)
输出:HELLO WORLD -
zfill(width)
--填充字符串,只能以0填充,没什么实际用途。
test = 'hello'
v = test.zfill(10)
print(v)
输出:00000hello