数据类型的内置方法
数据类型之内置方法:
在日常生活中不同类型的数据,具有不同的功能。
(比如:表格有制表、图形等。视频有快进、声音等功能.....)
快速查看数据有哪些内置方法可以使用句点符( . )
查看方法底层源码可使用:Ctrl+鼠标左键
1.先使用鼠标左键在需要调试的代码左边点击一下(会出现一个红点)
2.之后右键点击debug运行代码 (指的就是一个一个代码运行)
整形 (int)
方式在代码中展示的效果: 名字( )
类型转换,将字符串 str 转换成整型 int 。
int 还可以做进制数转换(bin ‘二进制’ 、oct ‘‘八进制’ 、hex ‘十六进制’ ):
浮点型(float)
用浮点型输入的数字就是是整数,输出后也会加上小数点。
类型转换:将字符串( str )转换成浮点型( float )
字符串 (str)
类型转换:
任何类型都可以进行类型转换只需要使用:print(想转换的类型(需要转换类型的代码))
基本用法有:
res = 'hello world!'
print(res[0])
# 索引取值
print(res[-1])
# 索引取值也支持负数 负数就是从后往前数
print(res[-5:-1])
# 必须从右开始数 不能使用步长因为会冲突
print(res[0:5]) # 切片操作 只取第0个到第四个 顾头不顾尾
print(res[0:12:2]) # 步长操作 取0:12范围按两个两个区分开 取第二个
print(len(res)) # 统计字符串中的字符个数
# strip 可移除字符串首尾的指定字符
name = ' lili '
print(name.strip()) # 删除首尾的空格
print(name.lstrip()) # 取左侧的空格
print(name.rstrip()) # 右侧的空格
# split() 按照指定的字符切割字符串 用此方法后结果都会变成列表
res2 = 'lili|18|165'
print(res2.split('|')) # 将’|‘全部切割掉
print(res2.split('|', maxsplit=1)) # 将'|'切割掉一次
# maxspilt 用于控制切割次数
print(res.upper()) # 全部转为大写
print(res.lower()) # 全部转为小写
# 忽略大小写 #
old_code = 'JasOn12Zp'
print('请您输入验证码验证码:%s' % old_code)
new_code = input('请输入验证码:').strip()
if old_code.upper() == new_code.upper():
# 这里也可以使用lower
print('验证通过')
else:
print= ('验证码错误')
# 判断是否纯大写或纯小写,只需要在upper或lower前加is
isupper
islower
# 判断是否以指定的字符开头 startswith
s = 'jason is new age man'
print(s.startswith('j')) # True
# 判断是否以指定字符结尾 endswith
print(s.endswith('man')) # True
# 格式化输出 # 与用户交互使用到的%s和%d # 字符串中可使用 format() user = 'my name is {} my age is {}' # {}花括号表示占位,使用format从左到右依次添加 print(user.format('jason', 18)) # 使用索引值可以打破顺序,随处并且重复添加 user1 = 'my name is {1} {1} my age is {0} {0}' print(user1.format(18, 'jason'))
# 花括号内写变量名,实现指定添加
user3 = 'my name is {name1} he name is {name2} my age is {age}'
print(user3.format(name2='Tony', name1='jason', age=18))
# 字符串拼接 join 注:必须是同一类型的 name = ['jason', 'tony', 'lili', 'mack'] print('|'.join(name)) # 字符中间添加分隔符| # 替换字符串中的指定字符 replace i = 'jason is new age man' print(i.replace('jason', 'lili')) # 判断字符串中是否为纯数字 isdigit age = '18Jason' print(age.isdigit()) # False age1 = '18' print(age1.isdigit()) # True
了解知识:
.title:所有单词的第一个字符大写,eg: Name Is Jason
.find:查找指定字符对应的索引值,找不到显示-1
.index:查找指定字符对应索引值,找不到直接报错
.count:统计某个字符出现次数
.capitalize :开头单词的首字母大写,eg: Name is jason
.swapcase :大小写互换 eg:Name is JASON >> nAME IS jason
列表 (list)
列表一般会存储相同数据类型的数据
基本用法:
类型转换 print ( list (需要转换的数据类型))
数字和小数不能直接写入( )内,需要设置一个变量名。
list 关键字可以支持 for 循环的数据类型转换成列表
列表修改,添加数据
name_list = ['jason', 'lili', 'mack', 'tony'] # 修改值,利用索引将内容修改 name_list[0] = 666 print(name_list) # 添加值append name_list.append(777) # 在尾部添加 print(name_list) # 插入元素 insert 将括号内的数据当成一个集体插入索引定位 name_list.insert(1, 888) # 在第1的位置插入888 print(name_list) # 扩展元素(相当于for循环+append操作) name_list.extend([111, 222, 333]) # 插入原列表内容的尾部 print(name_list) # 利用for循环插入 l1 = [1, 2, 3] l2 = [4, 5, 6] for i in l2: l1.append(i) # 将l2追加至l1尾部 print(l1)
列表删除数据
name = ['jason', 'tony', 'lili', 'mack'] # 删除数据 del name[1] # 根据索引直接删除 del就是delete print(name) # ['jason', 'lili', 'mack'] print(name.remove('jason')) # None 直接就没了 name.pop(1) # 弹出索引位数据,如果是空()则默认弹出尾部元素 print(name) # ['lili']
可变类型与不可变类型
可变类型:列表
值改变,内存 id 地址不变
不可变类型:整形、浮点型、字符串
值改变,内存id地址肯定变(产生了新值)
排序
l1 = [44, 22, 11, 33, 99, 77, 88, 66] l1.sort() # 默认降序 l1.reverse( ) # 顺序颠倒 l1.sort(reverse=True) # 升序 print(l1[::-1]) # 冒号左右不写数字默认是全选 # 冒号左边不写就默认从头开始;右边不写则默认到尾部
字典内置方法
dic = {
'name': 'lili',
'age': 18,
'hobbies': ['read', 'music', 'sports']
}
# 字典取值是按k取值,如果K不存在则直接报错
print('name') # lili
print('height') # 报错
# 修改k值,新增键对值
dic['name'] = 'jack' # 'name': 'jack'
# 在后增加值
dic['hobbies'].append('shopping')
# 'hobbies': ['read', 'music', 'sports', 'shopping']
# 如果增加不存在的键对值则在最后增加
dic['height'] = 180
# 统计字典内部键值对个数
print(len(dic)) # 4
# 成员运算 默认暴露在外的是K
print(18 in dic) # False
print('age' in dic) # True
# 删除元素
del dic['name'] # 直接删除
# 指定弹出元素 k弹给v
print(dic.pop('age')) # 18
# 弹出键对值 组成元组的形式 第一个元素为k第二个为v
print(dic.popitem()) # {'hobbies': ['read', 'music', 'sports']}
# 获取v值
print(dic['name']) # jack
print(dic['xxx']) # 不太推介这种,输入不存在的名字会直接报错
print(dic.get('xxx')) # 显示None 键不存在不直接报错
print(dic.get('name', 'xxx'))
# 当k存在时,第二参数不存在也不报错。
print(dic.get('xxx', 'jack'))
# 当K不存在时,就会打印第二参数无论他是什么。
# keys() values() item() #
# 在python2当中是列表,在python3中是迭代器'老母猪'
print(dic.keys()) # 获取字典的所有键 看成列表即可
print(dic.values()) # 获取字典的所有值
print(dic.items()) # 获取字典里所有的键对值 组织成列表套元组形式
需要了解的内置
1.更新字典
. update ( { 新建字典内容 } )
# 若修改的键存在则修改成新内容,若不存在则在后添加新值
2.初始化字典
. fromkeys([原字典],[ ])
3.当键存在的情况下,不修改而是获取该键对应的值
当键不存在的情况下,则新增一组键值对,并且该方法的结果是新增的值
. setdefault( k , v)
元组内置方法
小括号括起来, 内部存放多个元素, 元素与元素逗号隔开
元素可以是任意数据, 但是元组内元素不支持‘修改’(索引指向的元素的内存地址不能改变)
也可以简单的认为它是一个不可变的列表。
注:在元组中输入任意字符后都需增加逗号,哪怕只有一个元素
容器类型:内部可以存放多个值的数据类型都可以称之为容器类型
建议:所有的容器类型在存储数据的时候 如果内部只有一个元素那么也推荐加上逗号
常见内置方法:
t = (111, 222, 333, 444, 555) # 1.索引取值 print(t[2]) print(t[-1]) # 2.切片操作 print(t[1:5]) print(t[1:]) print(t[:]) # 3.步长 print(t[1:5:2]) # 4.统计元组内元素的个数 print(len(t)) # 5 # 5.for循环 for i in t: print(i) # 6.count计数 print(t.count(111)) # 1 '''笔试题''' t1 = (111, 222, [11, 22, 33]) t1[2].append(44) print(t1)
集合内置方法
集合去重操作:
#定义空集合需要使用关键字set s1 = set() #类型转换 能够支持for循环的数据类型都可以转成集合(元素要是不可变类型) '''集合内元素是无序的''' #去重 #s1 = {1, 2, 2, 2, 3, 4, 3, 2, 3} print(s1) # {1, 2, 3, 4} name_list = ['kevin', 'jason', 'jason', 'jason', 'kevin', 'kevin'] #1.先将列表转换成集合 s1 = set(name_list) #2.再将去重之后的集合转换成列表 l1 = list(s1) print(l1)
练习:去重
要求:去重后保持原来的顺序
集合关系运算:
两个群体之间做差异比较 共同好友 共同关注...
friends1 = {"zero", "kevin", "jason", "eg"} friends2 = {"lili", "ricky", "jason", "eg"} # 求共同好友 print(friends1 & friends2) # 求所有的好友 2.求两个用户所有的好友 # print(friends1 | friends2) # 求1的好友 print(friends1 - friends2) # 求2的好友 print(friends2 - friends1) # 求各自的好友 print(friends1 ^ friends2)
父级与子级:
f1 = {11, 22, 33 ,44}
f2 = {22, 44}
print(f1 > f2) # 判断f1是否是f2的父级 True
print(f1 > f2) # 判断f2是否是f1的子级 True