数字类型内置方法
1. int()强制类型转化成整型
age_str = '18' # 定义字符串
age = int(age_str) # 将强制转化成数字类型
print(type(age))
<class 'int'>
2. float()强制类型转化成浮点型
age_str = '18.5' # 定义字符串
age = float(age_str) # 将强制转化成数字类型
print(type(age))
<class 'float'>
注意:不是所有的字符都能转化成数字类型,只有字符串中全为数字字符时才能转化成int型或浮点型
字符串类型内置方法
1. 按索引取值
name = 'Hello world, I am coming' # 定义一个字符串name
print(name[0]) # 取第一个字符
print(name[-2]) # 取倒数第二个字符
H
n
2. 切片:步长为正数,从左到右切片;如果步长为负数,从右到左切片
格式:[start:end:step] step默认为1
name = 'Hello world, I am coming'
print(name[0:5]) # 取出 Hello
print(name[-6:]) # 取出 coming
print(name[-1:-12:-1]) # 取出gnimoc ma I
Hello
coming
gnimoc ma I
3. 长度:len()返回字符串的长度
name = 'Hello world, I am coming'
print(len(name))
24
4. 成员运算符 in|not in:判断是否在字符串里面,返回布尔值True或者False
name = 'Hello world, I am coming'
print('Hello world' in name)
print('hello' in name)
print('world' not in name)
True
False
False
5. 移除空白strip(self, chars=None):移除两端的空白或字符,原字符串不变。从左开始去除lstrip(self, chars=None)和从右开始去除rstrip(self, chars=None),用法同strip(self, chars=None)
name = ' Hello world, I am coming1234 '
print(name.strip()) # 默认移除两端的空格
print(name.strip('1234 oldeH')) # 在name中移除括号内的字符
print(name)
print(name.lstrip()) # 从左端移除
print(name.rstrip()) # 从右端移除
Hello world, I am coming1234
world, I am coming
Hello world, I am coming1234
Hello world, I am coming1234
Hello world, I am coming1234
6. 切分/割split(self, sep=None, maxsplit=-1):使用sep作为字符串的分隔符,若sep未指定或为None,默认以一个或多个空格作为分割符;maxsplit为分割的次数;返回一个列表。rsplit(self, sep=None, maxsplit=-1)用法同split(),从右开始切分
name = ' Hello world, I am coming,1234 '
print(name.split()) # 默认以空格分割
print(name.split(',')) # 以','分割
print(name.split(',',1)) # 以','分割,分割一次
print(name.rsplit(',',1)) # 从右开始以','分割,分割一次
['Hello', 'world,', 'I', 'am', 'coming,1234']
[' Hello world', ' I am coming', '1234 ']
[' Hello world', ' I am coming,1234 ']
[' Hello world, I am coming', '1234 ']
7. 循环遍历字符串
name = 'Hello world, I am coming,1234'
for i in name:
print(i,end=',')
H,e,l,l,o, ,w,o,r,l,d,,, ,I, ,a,m, ,c,o,m,i,n,g,,,1,2,3,4,
8. 变小写字母lower(self) & 变大写字母upper(self)
name = 'Hello world, I am coming,1234'
print(name.lower()) # 将字符串中的大写字母变成小写
print(name.upper()) # 将字符串中的小写字母变成大写
hello world, i am coming,1234
HELLO WORLD, I AM COMING,1234
9. 判断字符串是否以...开始 startswith(self, prefix, start=None, end=None) & 判断字符串是否以...结尾endswith(self, prefix, start=None, end=None):prefix为指定的字符;从start开始,到end结束,默认从0开始,到最后结束。返回布尔值True或者False
name = 'Hello world, I am coming,1234'
print(name.startswith('H'))
print(name.endswith('4'))
print(name.startswith('H',1))
True
True
False
10. 连接join(self, iterable)
name = 'Hello'
print(','.join(name)) # 用','作为连接符,将括号内每个字符连接。连接符可自定义
H,e,l,l,o
11. 替换replace(self, old, new, count=None):用new来替换old;count表示替换的个数,不写或为None时全部替换
name = 'Hello'
print(name.replace('l', 'w'))
print(name.replace('l', 'w', 1))
Hewwo
Hewlo
12. 判断数字isdigit(self): 判断是否全为数字字符,返回布尔值True或者False
name = 'Hello123'
age = '123'
print(name.isdigit())
print(age.isdigit())
False
True
13.查找find(self, sub, start=None, end=None) & rfind(self, sub, start=None, end=None) & index(self, sub, start=None, end=None) & rindex(self, sub, start=None, end=None):sub表示要查找的字符,start查找的开始位置,end查找的结束位置,不写或为None时表示查找整个字符串
name = 'Hello123'
print(name.find('l')) # 返回查找到的第一个字符下标
print(name.find('w')) # 没有找到时返回-1
print(name.rfind('l')) # 返回查找到最右端第一个字符下标
print(name.rfind('w')) # 没有找到时返回-1
print(name.index('l')) # 返回查找到的第一个字符下标
print(name.rindex('l')) # 返回查找最右端的第一个字符下标
print(name.index('s')) # 没找到时报错
print(name.rindex('s')) # 没找到时报错
2
-1
3
-1
2
3
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-55-f4490f4012ef> in <module>
6 print(name.index('l')) # 返回查找到的第一个字符下标
7 print(name.rindex('l')) # 返回查找最右端的第一个字符下标
----> 8 print(name.index('s')) # 没找到时报错
9 print(name.rindex('s')) # 没找到时报错
ValueError: substring not found
14. 计数count(self, sub, start=None, end=None):sub表示要查找的字符,start查找的开始位置,end查找的结束位置,不写或为None时表示查找整个字符串,返回sub在字符串中出现的次数
name = 'Hello123'
print(name.count('l'))
2
15. 对齐方式center(self, width, fillchar=None) & ljust(self, width, fillchar=None) & rjust(self, width, fillchar=None) & zfill(self, width):width表示字符串的长度,filchar表示要填充的字符,不写或为None时表示用空格填充
name = 'Hello123'
print(name.center(20)) # 字符串居中,用空格填充
print(name.ljust(20, '*')) # 字符串居左,用‘*’填充
print(name.rjust(20, '-')) # 字符串居右,用‘-’填充
print(name.zfill(20)) # 字符串前面用0填充
Hello123
Hello123************
------------Hello123
000000000000Hello123
16. 定义制表符占的字符expandtabs(self, tabsize=8):tabsize为设置的所占字符,不写默认为8个字符
name = 'a\tb'
print(name.expandtabs(4))
a b
17. 首字母大写capitalize(self) & 转换大小写swapcase(self) & 每个单词首字母大写title(self)
name = 'HelLo123 WORLD , i am coming'
print(name.capitalize()) # 将字符串的第一个字符大写,其他为小写
print(name.swapcase()) # 将字符串中的大小写相互转换
print(name.title()) # 将字符串中的单词首字母大写
Hello123 world , i am coming
hELlO123 world , I AM COMING
Hello123 World , I Am Coming
18. is系列,返回布尔值True 或者 False(了解即可)
- isalnum(self) 是否只有数字字母
- isalpha(self) 是否都是字母
- isdecimal(self) 是否只有十进制字符
- isidentifier(self) 是否是个有效的标识符
- islower(self) 字符中的字母是否全为小写
- isnumeric(self) 是否全为数字
- isprintable(self) 是否可以打印
- isspace(self) 是否全为空格
- istitle(self) 是否是标题
- isupper(self) 字符中的字母是否全为大写
有序 or 无序
有索引的数据有序,无索引的数据为无序。所以,数字类型没有有序无序的所说,字符串为有序的
可变 or 不可变
值变化时id不变的为可变数据,值变id也变的为不可变数据。所以数字类型是不可变数据,字符串也是不可变数据