再说内置方法之前,先来介绍一下 什么是有序or无序,什么是可变or不可变
有序:有索引
无序:无索引
可变:值变id不变,不可哈希
不可变:值变id也变,可哈希
01 数字类型内置方法
整形
-
作用 (具体参考数据类型基础)
描述年龄,id
-
定义方式(具体参考数据类型基础)
可以使用int()方法将纯数字的字符串转为十进制的整型
age = 19 # age = int(10) print(type(age)) #<class 'int'> x = int('111') print(type(x)) #<class 'int'> x = int('11.1') # 报错 print(x)
-
内置方法
没有内置方法,只有算术运算+-*/和比较运算><>=<=
-
存一个值还是多个值
一个值 这不是废话吗?一个变量名对应一个变量值
-
有序or无序
压根没有这么一说
-
可变or不可变(重点)
数字类型是不可变
浮点型
-
作用(具体参考数据类型基础)
用途:薪资、身高、体重
-
定义方式(具体参考数据类型基础)
可以使用float()方法将纯数字的字符串转为浮点型数字。
age = 3.1 # age = float(3.1) print(type(age)) #<class 'float'> x = float('111') print(x) print(type(x)) 111.0 #<class 'float'> x = float('11.1') # 报错 print(type(x)) #<class 'float'>
-
内置方法
_算术运算+比较运算
-
存一个值还是多个值
一个值
-
有序or无序
无有序or无序一说
-
可变or不可变(重点)
不可变数据类型
02 字符串类型内置方法
-
作用(具体参考数据类型基础)
描述性质的东西,如人的名字、单个爱好、地址、国家等
-
定义方式(具体参考数据类型基础)
使用''、""、''''''、""""""包裹的的一串字符
- u'unicode': unicode编码的字符串
- b'101': 二进制编码的字符串
- r' ': 原生字符串,也就是说' '这是普通的两个字符,并没有换行的意思
name = 'nick' # name =str('nick') s1 = str(1.1) s2 = str([1, 2, 3]) print(f's1:{s1}, type:{type(s1)}') print(f's2:{s2}, type:{type(s2)}') #s1:1.1, type:<class 'str'> #s2:[1, 2, 3], type:<class 'str'>
看到这里的大兄弟有福利了,这来讲一个打印二进制类型
s = b'sdkfljl' # 打印出来的bytes类型,二进制类型,010101010100110100 # 有这种二进制的定义方式,其实一点用都没有 print(s)
在来讲几个转义字符
#换行 s = 'a a' # 碰到斜杠了,计算机就清楚下一个字符和拼接在一起会有特殊的意义 print(s) 缩进4个空格 s = 'a a' print(s) 回退上一个打印结果,覆盖上一个打印结果 print('\ra',end='') # 加一个让后面的变得无意义 print('\ra',end='') s = 'a\na' print(s) s = r' a a' # raw 去掉转义字符,等于使没有意义 print(s)
在来讲一个内置包 os ,用来拼接路径
path = r'D:' print(path) import os path = os.path.join(path,'test.txt')
-
字符串内置方法(只有字符串类型才能使用)
优先掌握
1. 索引取值
print(s[1])
2. 切片
print(s[4:0:1]) # 1表示从左到右 print(s[-4::-1]) # -1表示从右到左 # 不推荐掌握 print(s[4:0:-1]) # -1表示从右到左 s = 'Thousand_Mesh handsome'
3.for循环
for i in s: print(i)
4.strip()
s1 = ' Thousand_Mesh handsome ' print(s1.strip()) # 去两端的空白 s2 = '***!!!!!Thousand_Mesh handsome----***' print(s2.strip('-*!')) # 指定多个字符一起去掉,只要strip里面有的字符就全部干掉 print(s2.strip('nick')) # 指定多个字符一起去掉,只要strip里面有的字符就全部干掉 s2.strip('*-!') # 首先判断字符串s的两端字符,为*,再去strip里找有没有*,有就去掉,再去判断字符串s的两端字符,!-,再从strip里面找,有去掉,没有停止去掉 print(s2) print('*' * 50) s2 = '***!!!!!Thousand_Mesh handsome----***'
5.split() 切割
print(s2.split()) # 默认以空格切割字符串 print(s2.split('!')) # 以!切割 print(s2.split('!', 2)) s2 = '***!!!!!Thousand_Mesh handsome----***'
6.in 或 not in
print('*' in s2) # True print('$' not in s2) # True
7.长度len
s2 = 'Thousand_Mesh handsome' print(len(s2)) # 求字符串的长度
需要掌握
1.lstrip() 和 rstrip()
s2 = '***!!!!!Thousand_Mesh handsome----***' print(s2.lstrip('*')) print(s2.rstrip('*'))
2.rsplit()
print(s2.split('*', 1)) print(s2.rsplit('*', 1))
3.lower&upper
s3 = 'aaabbJ' print(s3.lower()) print(s3.upper())
4.startswith&endswith
s3 = 'aaabbJ' print(s3.startswith('b')) print(s3.endswith('J'))
5.join(用的比较多)一般和split联用
s3 = ' ' print(s3.join(['234', '234', '234'])) # 以s3为间隔符,拼接列表里的每一个元素 s = '辣条/薯片/汽水/泡面/火腿肠/枸杞/当归/鹿茸' s1 = s.split('/') print('*'.join(s1))
6.replace
s2 = 'Thousand_Mesh handsome' print(s2.replace('Thousand_Mesh', 'tt'))
7.isdigit(纯数字)/isalpha(纯字母)
s2 = '12312' print(s2.isdigit()) s3 = 'aaac1c' print(s3.isalpha()) username_db ='nick' pwd_db = '123' inp_username = input('username:') inp_pwd = input('pwd:') if inp_username.isalpha(): pass if inp_pwd.isdigit(): pass
了解 (能就能,不能就不能)
1.find|rfind|index|rindex|count
s2 = '**23423***ni234234ck $$ hand223423some******' 01234567891011 print(s2.find('$')) # 从左找,找到第一个停止,找不到返回-1 print(s2.rfind('$')) # 从右找,找到就停止,找不到返回-1 print(s2.index('$')) # 找不到报错 print(s2.rindex('$')) # 找不到报错
2.center|ljust|rjust|zfill
s2 = 'nick handsome' print(s2.center(50, '*')) # 居中 print(s2.ljust(50, '*')) # 居左 print(s2.rjust(50, '*')) # 居右 print(s2.zfill(50)) # 填充0居右
3.expandtabs
s2 = 'a a' print(s2) print(s2.expandtabs(8)) # 针对 而言
4.captalize|swapcase|title 只针对英文
s2 = 'harry Potter' print(s2.capitalize()) # 首字母(一句话的开头)大写,其他全小写,用在段落开始 print(s2.swapcase()) # 大小写互换 print(s2.title()) # 所有单词首字母大写
5.is系列(有兴趣的自己了解)
-
存一个值还是多个值
一个值
-
有序or无序
有序
-
可变or不可变(重点)
不可变