数据类型内置方法理论
1.我们之前学过的每一种数据类型都有一系列的操作方法,内置方法是最多的,
内置方法就是本身自带的功能在python中数据类型调用的方式是句点符
比如 'suttn'. 就可以调用字符串内置方法
要用绑定字符串的变量名加上 . 号 (键盘问号边上那个)就可以使用内置方法
整形的内置方法与操作
1.转换类型 将其他数据转换为整形
int(其他数据类型)
如:print(int(11.11)) # 11
转换为11,取整数
ps:浮点型可以直接转,字符串必须取整数
2.进制数的转换
print(bin(100)) # 0b1100100 # 二进制
print(oct(100)) # 0o144 #八进制
print(hex(100)) # 0x64 #十六进制
开头为0b是二进制 0o是八进制 0x是16进制
其他进制转10进制 拿上方三个已经转换的进制为例
print(int("0b1100100", 2))
print(int("0x64", 16))
print(int("0o144", 8))
就可以转换为10进制
!!pyython这门语言对数字的敏感度很低
浮点型的内置方法与操作
类型转换
float(别的数据类型)
字符串里面可出现一个小数点(只能是一个多了不认)
而且其他必须都是纯数字
print(float(11.11)) 只能一个小数点和纯数字
print(float(11.1.1)) # 不行
print(float(1a)) #不行
字符串的内置方法与操作
str(其他任意数值)
可以转换任意数据,只要在前后加引号
2.必须掌握
索引取值
s1 = '012345678' #起始值为0 超出立马报错
print(s1[0]) # 1
print(s1[-1]) # 3 #支持复数从末尾开始
切片取值
print(s1[1:5]) # 从索引1一直切取到索引4
print(s1[-1:-5]) # 默认的顺序是从左往右所以在s1中无法取值
print(s1[-5:-1]) # 默认的顺序是从左往右
修改切片方向(间隔)
print(s1[1:5:1]) # 默认值是1
print(s1[1:5:2]) #改成2 代码取值13
print(s1[-1:-5:-1]) # 改变切片方向取值6543
print(s1[:]) # 不填写数字就是默认都要
print(s1[2:]) # 填写数字2意思是2后面的都要
print(s1[:5]) # 意思是索引值从0开始到4都要 简单说就是5前面的都要
print(s1[::2]) # 间隔一个取值 如果是3的话就间隔两个取值
统计字符串中的个数 关键字 len
print(len(s1)) #用于统计有多少个数
移除字符串首尾指定的字符 关键字strip 去除首尾空格
username = input('username>>>:')strip()
username = username
if username == 'jason':
print('恭喜你,可以去约炮了')
mane = '##pig##'
print(mane.strip('#')) # 首尾都去除
print(mane.lstrip('#')) # 首部去除
print(mane.rstrip('#')) # 尾部去除
1.切割字符中的指定符号
res = 'ping|456|song'
print(res.split('|')) 该处理方法是变成列表
#['ping', '456', 'song']
name, pwd, hobby = res.split('|')
print(res.split('|', maxsplit=1))#从左往右切指定个数
#['ping', '456|song']
print(res.rsplit('|',maxsplit=1)) #从右往左切指定个数
['ping|456', 'song'] #从右往左切指定个数
2.字符串格式化输出
format第一种:等价于占位符
res = 'my name is {} my age is {}'.format('123', '456')
print(res)
# my name is 123 my age is 456
format第二种:索引值取用并且支持反复使用
res = 'my name is {0} my age is {1} {0} {0} {1}'.format('7878', 9696)
print(res
# my name is 7878 my age is 9696 7878 7878 9696
format第三种
res = 'my name is {name1} my age is {age1} '.format(name1='jason', age1=123)
print(res)
# my name is jason my age is 123 jason 123 jason 前面说到过format第一种方法相当于占位符,使用到此代码,见名之意
foumat第四种:(******)
name = input('username>>>:')
age = input('age>>>:')
res = f'my name is {name} my age is {age}'
print(res)
username>>>:jame
age>>>:99
my name is jame my age is 99
输入变量名占位符见名之意
3.字符串需要了解的方法 upper lower
res = 'YUTYjis SJAJ JSAJ 666'
# print(res.upper()) # YUTYJIS SJAJ JSAJ 666
# 把所有英文字母打印成大写
# print(res.lower()) # yutyjis sjaj jsaj 666
# 把所有英文字母打印成小写
电脑登入平台上将没有区分大小写的验证码展示给用户看
用户输入验证码 输入的验证码和当初产生的验证码同意转大小写在对比
ddd = '12QQqqED'
print('图片验证码','ddd')
confirm_ddd = input('请输入验证码').strip()
if confirm_ddd.upper() == ddd.upper():
print('验证码正确')
判断字符串中是否纯数字
res = ''
print(res.isdigit()) guess_age = input('guess_age>>>:').strip()
if guess_age.isdigit():
guess_age = int(guess_age)
else:
print('年龄都不会输??')
替换字符串中的指定内容
res = 'hhh ooo hhh ooo hhh hhh hhh'
print(res.replace('hhh', '你是傻B'))
#你是傻s ooo 你是傻s ooo 你是傻s 你是傻s 你是傻s
从左往右替换指定的个数内容
字符串的拼接
qq1 = 'ping'
qq2 = 'iser'
print(qq1 + '$$$' + qq2) # pingwertiser
print(qq1 * 10) # 10个ping
''.join() # 输入需要拼接的变量名
统计指定字符串出现的次数
res = 'ddddyyyyooooshkajdhka'
print(res.count('y')) 出现四次
判断字符串开头或者结尾
res = 'name king in for ture'
print(res.startswith('n')) # True
print(res.startswith('na')) # True
print(res.startswith('nam')) # True
print(res.startswith('name')) # True
print(res.startswith('king')) # False
print(res.startswith('k')) # False
列表内置方法及操作
1.类型转换
list()任意数据类型 能被for循环的数据类型都可以转换成列表
list('i')
print(list('kping'))
print(list({'qwer': 'asdf', 'fgh': 369}))
print(list((6, 2, 3, 4)))
print(list({1, 2, 3, 4, 5}))
# ['k', 'p', 'i', 'n', 'g']
# ['qwer', 'fgh']
# [6, 2, 3, 4]
# [1, 2, 3, 4, 5]
需要掌握的方法:
l1 = [118, 272, 393, 4464, 5535, 6676, 7377, 8388]
print(l1[0]) # 118 索引取值
print(l1[-1]) # 8388
print(l1[0:5]) # [118, 272, 393, 4464, 5535]
print(l1[:]) # [118, 272, 393, 4464, 5535, 6676, 7377, 8388] 切片操作
print(l1[::-1]) 间隔数 方向
# [8388, 7377, 6676, 5535, 4464, 393, 272, 118]
print(len(l1)) # 8 统计列表数据值
l1[4] = 6666 # 数据值修改
print(l1)
# [118, 272, 393, 4464, 6666, 6676, 7377, 8388]
l1.append('我好菜') # 尾部追加数据1
print(l1)
# [118, 272, 393, 4464, 5535, 6676, 7377, 8388, '我好菜']
l1.append(['963, 666, 666']) # 尾部追加数据2
print(l1)
#[118, 272, 393, 4464, 5535, 6676, 7377, 8388, ['963, 666, 666']]
l1.insert(0, 'jason') 任意位置插入数据值
print(l1)
# ['jason', 118, 272, 393, 4464, 5535, 6676, 7377, 8388]
ll1 = [11, 22, 33]
ll2 = [44, 55, 66]
print(ll1 + ll2) 合并列表
# [11, 22, 33, 44, 55, 66]
ll1.extend(ll2) # for循环+append
print(ll1)
for i in ll2:
ll1.append(i)
print(ll1)
del l1[0] # 删除关键字 del
print(l1)
l1.remove(444) # 括号内填写数据值 remove
print(l1)
l1.pop(3) # 括号内填写索引值 pop
print(l1)
l1.pop() # 默认尾部弹出数据值
print(l1)
res = l1.pop(3) # 4464
print(res)
8.排序
ss = [54, 99, 55, 76, 12, 43, 76, 88, 99, 100, 33]
ss.sort() # 默认是升序
print(ss) # [12, 33, 43, 54, 55, 76, 76, 88, 99, 99, 100]
ss.sort(reverse=True)
print(ss) #改为降序
# [100, 99, 99, 88, 76, 76, 55, 54, 43, 33, 12]
9.统计列表中某个数据值出现的次数
print(l1.count(111))
10.颠倒列表顺序
l1.reverse()
print(l1)
可变类型与不可变类型
s1 = '$$jason$$'
l1 = [11, 22, 33]
s1.strip('$')
print(s1) # $$jason$$
字符串在使用内置方法后不会修改自己 二十产生了一个新结构
如何查看使用方法之后有没有新结果 可以在调用方法的代码左侧添加变量名和赋值符号
res = s1.strip('$')
l1 = [11, 22, 33]
ret = l1.append(44)
print(l1) # [11, 22, 33, 44]
print(ret) # Nome
列表在调用内置方法后 没有产生新的结果
可变类型:值改变 内存地址不变
l1 = [11, 22, 33]
print(l1) # [11, 22, 33]
print(id(l1)) # 2374029652544
l1.append(44)
print(l1) # [11, 22, 33, 44]
print(id(l1)) # 2374029652544
# 不可变类型:值改变 内存地址肯定变
res = '$$hello world$$'
print(res)
print(id(res))
res.strip('$')
print(res)
print(id(res))