一、数字类型内置方法
整型和浮点型统称为数字类型。
1.整型内置方法(int)
-
作用:描述年龄、号码、等级等。
-
定义方式:可以使用int()方法将纯数字的字符串转为十进制的整型。
使用方法:
age = 20 x = int('20') print(type(age)) print(type(x))
结果:
<class 'int'> <class 'int'>
错误定义方式:
x = int('1.1')
-
内置方法:无内置方法,只有算术运算和比较运算。
-
存一个值or多个值:一个值。
-
是否有序:不存在是否有序一说。
-
是否可变:不可变数据类型。
说明:
x = 10 print(id(x)) x += 1 print(id(x))
结果:
140713871926384 140713871926416
变量值改变,id同时跟着改变,所以整型为不可变数据类型。
2.浮点型内置方法(float)
-
作用:描述薪资、身高、体重等。
-
定义方式:可以使用float()方法将纯数字的字符串转为浮点型数字。
使用方法:
salary = 3.2 x = float('100') y = float('11.1') print(type(salary)) print(type(x)) print(x) print(type(y))
结果:
<class 'float'> <class 'float'> 100.0 <class 'float'>
-
内置方法:无内置方法,只有算术运算和比较运算。
-
存一个值or多个值:一个值。
-
是否有序:不存在是否有序一说。
-
是否可变:不可变数据类型。
说明:
salary = 3.2 print(id(salary)) salary = 4.2 print(id(salary))
结果:
2044777211080 2044777211056
变量值改变,id同时跟着改变,所以浮点型为不可变数据类型。
二、字符串类型内置方法
-
作用:描述人的名字、单个爱好、地址、国家等。
-
定义:使用''、""、''''''、""""""包裹的的一串字符。
- u'unicode': unicode编码的字符串。
- b'101': 二进制编码的字符串。
- r'\n': 原生字符串,也就是说'\n'这是普通的两个字符,并没有换行的意思。
使用方法:
s1 = 'Tbb' s2 = str(1.1) print(type(s1)) print(type(s2))
结果:
<class 'str'> <class 'str'>
-
常用操作+内置方法:分为优先掌握、需要掌握、其他操作。
1.优先掌握:
1.1 按索引取值(只可取不可改变)
使用方法:
s1 = 'My name'
print(s1[4])
print(s1[-1])
结果:
a
e
1.2 切片(顾头不顾尾,步长)
使用方法:
s1 = 'My name'
print(s1[1:4]) #切片,取出索引1,2,3
print(s1[0::2]) #切片,步长为2
结果:
y n
M ae
1.3 长度len
使用方法:
s1 = 'My name'
print(len(s1))
结果:
7
1.4 成员运算in和not in
使用方法:
s1 = 'My name is Tbb,age is 20'
print('Tbb' in s1)
print('Tom' in s1)
print('20' not in s1)
结果:
True
False
False
1.5 移除空白strip()
使用方法:
s1 = ' my love '
s2 = '****your name!!!!'
print(s1.strip()) ## strip()默认为‘ ’,并且不修改原值,新创建空间
print(s2.strip('*!em'))
结果:
my love
your na
1.6 切分split
使用方法:
ip = '11.11.22.33'
ip1 = ip.split('.')
ip2 = ip.split('.',2)
print(ip1)
print(ip2)
结果:
['11', '11', '22', '33']
['11', '11', '22.33']
1.7 循环
使用方法:
s1 = 'My name'
for i in s1:
print(i)
结果:
M
y
n
a
m
e
2.需要掌握:
2.1 lstrip()和rstrip()
使用方法:
s1 = '****my name***'
print(s1.lstrip('*'))
print(s1.rstrip('*'))
结果:
my name***
****my name
2.2 lower()和upper()
使用方法:
s1 = 'My name'
print(s1.lower())
print(s1.upper())
结果:
my name
MY NAME
2.3 startswith()和endswith()
使用方法:
s1 = 'My name'
print(s1.startswith('my'))
print(s1.endswith('name'))
结果:
False
True
2.4 rsplit()
使用方法:
ip = '11.22.33.44'
ip1 = ip.split('.',2)
ip2 = ip.rsplit('.',2)
print(ip1)
print(ip2)
结果:
['11', '22', '33.44']
['11.22', '33', '44']
2.5 join()
使用方法:
s1 = ['11','22','33','44']
print('.'.join(s1))
结果:
11.22.33.44
2.6 replace()
使用方法:
s1 = 'I like swimming'
print(s1.replace('swimming','running'))
结果:
I like running
2.7 isdigit()
使用方法:
salary1 = '111'
salary2 = '111.1'
print(salary1.isdigit())
print(salary2.isdigit())
结果:
True
False
3.其他操作
3.1 find()、rfind()、index()、rindex()、count()
使用方法:
msg = 'my name is tank, tank shi sb, hha'
print(f"msg.find('tank'): {msg.find('tank')}") # 找不到返回-1
print(f"msg.find('tank',0,3): {msg.find('tank',0,3)}")
print(f"msg.rfind('tank'): {msg.rfind('tank')}") # 找不到返回-1
print(f"msg.index('tank'): {msg.index('tank')}") # 找不到报错
print(f"msg.rindex('tank'): {msg.rindex('tank')}") # 找不到报错
print(f"msg.count('tank'): {msg.count('tank')}")
结果:
msg.find('tank'): 11
msg.find('tank',0,3): -1
msg.rfind('tank'): 17
msg.index('tank'): 11
msg.rindex('tank'): 17
msg.count('tank'): 2
3.2 center()、ljust()、rjust()、zfill()
使用方法:
print(f"'info tbb'.center(50,'*'): {'info tbb'.center(50,'*')}")
print(f"'info tbb'.ljust(50,'*'): {'info tbb'.ljust(50,'*')}")
print(f"'info tbb'.rjust(50,'*'): {'info tbb'.rjust(50,'*')}")
print(f"'info tbb'.zfill(50): {'info tbb'.zfill(50)}") # 默认用0填充
结果:
'info tbb'.center(50,'*'): ********************info tbb*********************
'info tbb'.ljust(50,'*'): info tbb*****************************************
'info tbb'.rjust(50,'*'): *****************************************info tbb
'info tbb'.zfill(50): 00000000000000000000000000000000000000000info tbb
3.3 expandtabs()
使用方法:
print(f"a\\tb\\tc: %s"%('a\tb\tc\t')) # 默认制表符8个空格
print(f"'a\\tb\\tc'.expandtabs(32): %s"%('a\tb\tc\t'.expandtabs(32)))
结果:
a\tb\tc: a b c
'a\tb\tc'.expandtabs(32): a b c
3.4 capitalize()、swapcase()、title()
使用方法:
s1 = 'my Name'
print(f"s1.capitalize(): {s1.capitalize()}")
print(f"s1.swapcase(): {s1.swapcase()}") # 大小写互转
print(f"s1.title(): {s1.title()}")
结果:
s1.capitalize(): My name
s1.swapcase(): MY nAME
s1.title(): My Name
3.5 is数字系列
- isdecimal(): 检查字符串是否值包含十进制字符,如果是返回True,否则返回False。
- isdigit(): 如果字符串只包含数字则返回True,否则返回False。
- isnumeric(): 如果字符串中只包含数字字符,则返回True,否则返回False。
- isalnum(): 如果字符串至少有一个字符并且所有字符都是字母或数字则返回True,否则返回False。
- isalpha(): 如果字符串至少有一个字符并且所有字符都是字母则返回True,否则返回False。
- islower(): 如果字符串中只包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回True,否则返回False。
- isspace(): 如果字符串中只包含空白,则返回True,否则返回False
- isupper(): 如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,则返回True,否则返回False。
- istitle(): 如果字符串是标题类型的(见title()),则返回True,否则返回False。
只是为了告诉你,判断是否为数字时除了中文数字以后使用isdigit()即可。其他只做了解。
-
存一个值or多个值:一个值。
-
是否有序:字符串存在索引是有序的。
-
是否可变:不可变数据类型。
说明:
name = 'Tbb' print(id(name)) name = 'frank' print(id(name))
结果:
1264470942584 1264470942752
变量名改变,id同时跟着改变,所以字符串类型为不可变数据类型。