一.数据类型的内置方法
数据类型的内置方法就是:数据类型自带的操作方法或功能
调用数据类型的内置方法句式为:句点符
数据类型.方法名()
eg:
name = '张三'
1) 变量名.字符串的内置方法()
2) 数据值.字符串的内置方法()
1.整型相关操作方法
1)类型转换
int(待转换的数据)
1) 浮点型可以转整型,'只要小数点前面的,不做四舍五入'
print(int(11.11)) # 11
2) 字符串可以转整型,'但是字符串内部必须是【整数】才可以'
print(int('11')) # 11
3) 布尔值的使用
print(int(True)) # 1
print(int(False)) # 0
4) 其他类型转换会报错
2)进制数转换
【十进制转其他进制】:
# 十 >> 二
print(bin(100)) # 0b1100100
# 十 >> 八
print(oct(100)) # 0o144
# 十 >> 十六
print(hex(100)) # 0x64
'''
0b 二进制数的标识
0o 八进制数的标识
0x 十六进制数的标识
数字开头没有任何标识的就是十进制
'''
【其他进制转十进制】:
#会自动识别转换
print(int(0b1100100)) # 100
print(int(0o144)) # 100
print(int(0x64)) # 100
#人为主动转换进制数
print(int('0b1100100',2)) # 100
print(int('0o144', 8)) # 100
print(int('0x64', 16)) # 100
2.浮点型相关操作方法
1)类型转换
float(待转换的数据)
1) 整数型可以转浮点型,'在数字后会跟一个小数点'
print(float(11)) # 11.0
2) 字符串可以转浮点型,'但是字符串内部必须是数字(整、浮点)才可以'
print(int('11.11')) # 11.0
3) 布尔值的使用
print(float(True)) # 1.0
print(float(False)) # 0.0
4) 其他类型转换会报错
2)数学运算易出错
a = 23.00
b = 1.2
c = a * b
print(c) # 27.599999999999998
'''
由以上举例得出:python对数字运算精确度很低,容易出错!
如需要精准的计算需借助其他模块!
'''
3.字符串相关操作方法
字符串在调用内置方法后会产生新的值
具体需看【可变类型与不可变类型】
1)类型转换
str(待转换的数据)
#1.所有数据类型都可以转换成字符串
str(123)
str(True)
str({'name':'张三'})
...
#2.给所有数据类型前后加引号也可以转换成字符串
2)常用内置方法
1.索引取值(单个字符)
'''
1.索引值是从0开始(顾头不顾尾)
2.超出索引范围会直接报错
3.索引可跟负数,[-1]为取最后一个
'''
s1 = 'abcde'
print(s1[0]) # a
print(s1[-1]) # e
2.切片取值(多个字符)
s1 = 'abcde'
print(s1[:]) # abcde 取所有值
print(s1[:3]) # abc 取索引0~索引2的值
print(s1[1:3]) # bc 取索引1~索引2的值
print(s1[-2:-1]) # d 取倒数第二(包含)~倒数第一(不包含)的值
3.修改切片间隔
s1 = 'abcde'
print(s1[0:5:1]) # abcde 取索引0~索引4的值且间隔1
print(s1[0:5:2]) # ace 取索引0~索引4的值且间隔2
print(s1[::2]) # ace 取所有值且间隔2
4.统计字符个数
len()
统计字符个数
s1 = 'abcde'
print(len(s1)) # 5
5.移除首位指定字符
strip()
常用于移除空格
name = '$张三$'
1)移除首尾所有指定字符
print(name.strip('$')) # 张三
2)移除首指定字符
print(name.lstrip('$')) # 张三$
3)移除尾指定字符
print(name.rstrip('$')) # $张三
4)括号内不写默认移除空格
print(name.strip()) # 张三
'常用于获取用户输入移除用户不小心打的空格'
6.切割字符串中指定字符
split('')
当字符串中有多个重复字符分割不同数据时,可切割该指定字符以列表形式显示。
a = 'aaa|bbb|ccc'
1)切割所有指定字符
print(a.split('|')) # ['aaa', 'bbb', 'ccc']
#注意:此处可以用【解压赋值】依次赋值给不同变量名!
2)从左往右切指定个数
print(a.split('|',maxsplit=1)) #['aaa', 'bbb|ccc']
3)从右往左切指定个数
print(a.rsplit('|',maxsplit=1)) #['aaa|bbb', 'ccc']
7.字符串大小写相关
upper()
lower()
isupper()
islower()
常用于验证码
a = 'aBcDe'
1)将字符串全部转成大小写
print(a.upper()) # ABCDE
print(a.lower()) # abcde
2)判断字符串是否为纯大写或小写(True/False)
print('AAA'.isupper())
print('aaa'.islower())
8.字符串格式化输出
方式1):等价于%s 没优势
lx = '我的名字是{},我的年龄是{}'
print(lx.format('张三',18))
#结果为:我的名字是张三,我的年龄是18
方式2):支持索引取值,可以重复使用
lx = '我的名字是{0},我的年龄是{1}{0}{1}'
print(lx.format('张三',18))
#结果为:我的名字是张三,我的年龄是18张三18
方式3):支持关键字取值(按K取值),可重复使用
lx = '名字是{name}{name}年龄是{age}'
print(lx.format(name='张三',age=18))
#结果为:名字是张三张三年龄是18
方法4):最常用!!!*****************
name = '张三'
age = 18
print(f'名字是{name}年龄是{age}{age}')
#结果为:名字是张三年龄是1818
9.判断字符串中是否是纯数字
isdigit()
判断是否为纯数字。常用于获取用户输入校验等
print('123'.isdigit()) # True
print('123a'.isdigit()) # False
3)其他内置方法
1.替换字符串中指定内容
replace()
括号内写被 替换的字符 与 替换的字符
a='a a a b b b'
1)从左往右替换所有指定内容
print(a.replace('a','c'))
#结果为:c c c b b b
2)从左往右替换指定个数的内容
print(a.replace('a','c',1))
#结果为:c a a b b b
2.字符串的拼接
''.join([a,b])
引号中可以加中间拼接的字符,不写则不添加,a与b分别是要拼接的数据值
a='张'
b='三'
方式1):直接用+号,但是易占用较多内存
print(a+b) # 张三
方式2):直接*该字符串实现拼接多个
print(a*2) # 张张
方式3):建议使用join方法!切可以在拼接中插入指定字符
print(''.join([a,b])) # 张三
print('|'.join([a,b])) # 张|三
3.统计指定字符出现次数
count()
统计个数
a='aabcdef'
print(a.count('a')) #2
4.判断字符串开头或结尾
startswith()
判断开头是否为某个值
endswith()
判断结尾是否为某个值
a='hello'
#判开头是否是'he'
print(a.startswith('he')) # True
#判断结尾是否是'lo'
print(a.endswith('lo')) # True
5.查找某个字符对应索引值
index()
存在则返回索引值,只会返回左边数第一个,不存在则报错
find()
存在则返回索引值,不存在则报错
a='helloh'
#获取'h'的索引值 不存在则报错
print(a.index('h')) # 0
#获取'a'的索引值 不存在则返回-1
print(a.find('a')) # -1
6.正文相关转换首字母大写
title()
将字符串中所有单词的首字母大写
capitalize()
将字符串第一个字母大写
a = 'my name is zhangsan'
1)将所有单词的首字母大写
print(a.title())
#结果为:My Name Is Zhangsan
2)将字符串第一个字母大写
print(a.capitalize())
#结果为:My name is zhangsan
4.列表相关操作方法
列表在调用内置方法后会修改自身
具体需看【可变类型与不可变类型】
1)类型转换
list(其他数据类型)
能够被for循环的数据类型都可以转成列表
支持for循环的数据类型有:列表、字符串、字典、元组、集合
字符串、字典、元组、集合:
print(list('123')) # ['1', '2', '3']
print(list({'name':'张三','age':'18'})) # ['name', 'age']
print(list((1,2,3))) # [1, 2, 3]
print(list({1,2,3})) # [1, 2, 3]
2)常用内置方法
1.索引取值(单个数据值)
'''
1.索引值是从0开始(顾头不顾尾)
2.超出索引范围会直接报错
3.索引可跟负数,[-1]为取最后一个
'''
l1 = [1, 2, 3]
print(l1[0]) # 1
print(l1[-1]) # 3
2.切片取值(多个数据值)
l1 = [1,2,3,4,5]
print(l1[:]) # [1,2,3,4,5] 取所有值
print(l1[:3]) # [1,2,3] 取索引0~索引2的值
print(l1[1:3]) # [2,3] 取索引1~索引2的值
print(l1[-2:-1]) # [4] 取倒数第二(包含)~倒数第一(不包含)的值
3.修改切片间隔
l1 = [1,2,3,4,5]
print(l1[0:5:1]) # [1,2,3,4,5] 取索引0~索引4的值且间隔1
print(l1[0:5:2]) # [1,3,5] 取索引0~索引4的值且间隔2
print(l1[::2]) # [1,3,5] 取所有值且间隔2
4.统计列表数据值个数
l1 = [1,2,3,4,5]
print(len(l1)) # 5
5.修改数据值
l1 = [1,2,3,4,5]
l1[0] = 'z'
print(l1)
#结果为:['z',2,3,4,5]
6.添加数据值
1)尾部追加数据值
l1 = [1, 2, 3, 4, 5]
l1.append('zzz')
print(l1)
#结果为:[1, 2, 3, 4, 5, 'zzz']
2)任意位置插入数据值(在索引几的位置插入什么数据)
l1 = [1, 2, 3, 4, 5]
l1.insert(1,'zzz')
print(l1)
#结果为:[1, 'zzz', 2, 3, 4, 5]
3)扩展列表、合并列表
l1=[1,2,3]
l2=[4,5,6]
方式一:不建议使用
print(l1+l2)
#结果为:[1,2,3,4,5,6]
方式二:底层是用for+append实现的
l1.extend(l2)
print(l1)
#结果为:[1,2,3,4,5,6]
7.删除数据值
l1 = [1,2,3,4,5]
1)通用删除 del:(删除某个索引对应的值)
del l1[0]
print(l1)
#结果为:[2, 3, 4, 5]
2)指定删除 remove:(彻底删除指定的数据值)
l1.remove(2)
print(l1)
#结果为:[1, 3, 4, 5]
3)取出后删除 pop:(可以把取出的值赋值给一个变量)
'括号内不写默认最后一个,0代表第一个,1代表第二个'
l1.pop()
print(l1)
#结果为:[1, 2, 3, 4]
a = l1.pop()
print(a)
#结果为:5
pop常用于观展人数中,xxx退出观战
8.查看数据值对应索引值
l1=[1,2,3,4]
print(l1.index(1))
#结果为:0
9.统计某个数据值出现的次数
l1=[1,1,2,3,4,5]
print(l1.count(1))
#结果为:2
10.数据值排序
l1=[4,2,5,1,2,3]
1)升序:
l1.sort()
print(l1)
#结果为:[1, 2, 2, 3, 4, 5]
2)降序:
l1.sort(reverse=True)
print(l1)
#结果为:[5, 4, 3, 2, 2, 1]
11.反转列表数据值顺序
不等同于降序排序!
l1=[4,2,5,1,2,3]
l1.reverse()
print(l1)
#结果为:[3, 2, 1, 5, 2, 4]
12.两个列表比较
a = [99,11]
b = [11,22,33]
print(a > b)
#结果为:True
l1 = ['a','b']
l2 = ['A','B']
print(l1 > l2)
#结果为True
'''
1.两个列表在比较大小时,是按照索引0来互相比较。
2.不同数据类型之间无法比较
3.a比A大的原因是因为中间涉及到字符编码。a=97 A=65
'''
二.可变类型与不可变类型
可变类型 | 不可变类型 |
---|---|
字典、列表、集合 | 字符串、整型、浮点型、元组 |
值改变,内存地址不变(改自身) | 值改变,内存地址也变(产生新的结果) |
1.【不可变类型】:
#值改变,内存地址也变(产生新的结果)
s1='$$jason$$'
s1.strip('$')
'由于产生的是新的结果,所以打印原字符串没有变化'
print(s1)
#结果为:$$jason$$
'因为产生了新的结果,所以可以打印出来(可直接打印出来,也可以赋值一个变量名接收后打印)''
print(s1.strip('$'))
#结果为:jason
2.【可变类型】:
#值改变,内存地址不变(改自身)
l1=[11,22,33]
l1.append('z')
'由于改的是自身 所以打印原本的列表就是修改后的列表'
print(l1)
#结果为:[11,22,33,'z']
'因为没有产生新的结果,所以打印出来的是None'
print(l1.append('z'))
#结果为:None
标签:内置,name,s1,数据类型,索引,字符串,l1,print,方法
From: https://www.cnblogs.com/oreoz/p/16743364.html