数据类型的内置方法

数据类型之内置方法:

在日常生活中不同类型的数据,具有不同的功能。

(比如:表格有制表、图形等。视频有快进、声音等功能.....)

快速查看数据有哪些内置方法可以使用句点符( . )

查看方法底层源码可使用:Ctrl+鼠标左键

 

debug代码调试

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

 

 

posted @ 2021-11-05 21:51  代小白菜  阅读(40)  评论(0)    收藏  举报