1.如何理解内置方法
每个数据类型都自带一些各自独有的功能
2.如何调用内置方法
数据类型通过句点符即可调用
数据类型.内置方法
ps:数据类型可以是具体的某个数据值也可以是数据类型关键字
3.如何查看内置方法
在pycharm中会自动提示
在终端中需要按tab键 然后慢慢补全(等价于linux命令补全)
1.int整型
1.1.类型转换:将某些数据类型转成整型
可以将字符串转成整型 但是需要注意 有特殊情况
s1 = '123'
print(type(s1), s1) # 字符串里面如果是纯数字 可以转
s2 = int(s1)
print(type(s2), s2) # 字符串里面如果是纯数字 可以转
如果不是纯数字则无法转换 会直接报错
int('hello')
1.2.进制数转换:将其他进制数转成十进制
# 十进制转其他进制数
# print(bin(100)) # 0b1100100 二进制
# print(oct(100)) # 0o144 八进制
# print(hex(100)) # 0x64 十六进制
# 其他进制转十进制数
print(int(0b1100100)) # 100
print(int(0o144)) # 100
print(int(0x64)) # 100
2.float浮点型
类型转换:将某些数据类型转成浮点型
# s1 = '123'
# print(type(s1), s1) # 字符串里面如果是纯数字 可以转自动添加.0
# s2 = float(s1)
# print(type(s2), s2) # 字符串里面如果是纯数字 可以转自动添加.0
s3 = '123.23'
print(type(s3), s3) # 字符串里面如果不是纯数字 那么只允许出现一个点号
s4 = float(s3)
print(type(s4), s4) # 字符串里面如果是纯数字 那么只允许出现一个点号
3.str字符串
3.1.类型转换:可以将所有其他数据类型转成字符串
str(任意数据类型)
3.2.常见操作
s1 = 'hello jason'
# 1.索引取值
# print(s1[0]) # h
# print(s1[-1]) # n
# 2.切片操作
# print(s1[2:5]) # llo 顾头不顾尾
# 3.间隔数\方向(默认是1 默认从左往右)
# print(s1[1:10:1])
# print(s1[:]) # hello jason
# print(s1[::]) # hello jason
# print(s1[::-1]) # nosaj olleh
# print(s1[-1:-4:-1]) # nos
# print(s1[-3:]) # son
# 4.统计字符串中字符的个数(空格也算字符)
# print(len(s1)) # 11
# 5.移除字符串首尾指定的字符
# ss = '$$jason$$'
# print(ss.strip('$')) # jason
# print(ss.lstrip('$')) # jason$$
# print(ss.rstrip('$')) # $$jason
# username = input('username>>>:')
# username = username.strip() # 括号内什么都不写 默认移除首尾的空格
'''两步合并'''
# username = input('username>>>:').strip()
# if username == 'jason':
# print('登录成功')
# else:
# print('登录失败')
# 6.按照指定的字符切割字符串
# ss = "jason|123|read"
# print(ss.split('|')) # ['jason', '123', 'read'] 结果是列表 默认全部切割
# print(ss.split('|', maxsplit=1)) # ['jason', '123|read'] 也可以自定义次数
# print(ss.rsplit('|', maxsplit=1)) # ['jason|123', 'read'] 也可以变方向
# 7.字母大小写
# res = 'JaSOn666'
# print(res.upper()) # JASON666
# print(res.lower()) # jason666
# print(res.isupper()) # False (回想之前讲的小规律 布尔值相关 变量名都会有is)
# print(res.islower()) # False
"""图片验证码忽略大小写:统一转大写或者小写 然后再比较!!!"""
# code = 'YumT8'
# print('展示给用户的看的验证码>>>:', code)
# confirm_code = input('请输入您看到的验证码>>>:').strip()
# if confirm_code.upper() == code.upper():
# print('验证码正确')
# else:
# print('验证码错误')
# 8.格式化输出 方式1 占位符 方式2 format
# format用法1:等同于占位符
# print('my name is {} my age is {}'.format('jason', 18))
# format用法2:通过索引值反复使用
# print('my name is {0} {0} my age is {1} {1}'.format('jason', 18))
# format用法3:通过关键字反复使用
# print('my name is {name} {name} my age is {age} {age}'.format(name='jason', age=18))
# format究极用法
# name = 'jason'
# age = 18
# print(f'my name is {name} my age is {age}')
# 9.判断字符串中是否是纯数字
# data = input('随便输>>>:').strip()
# print(data.isdigit())
# score = input('请输入您的成绩>>>:').strip()
# if score.isdigit():
# score = int(score)
# else:
# print('成绩只能是纯数字')
# 10.替换指定的字符
# ss = 'jason jason jason say python so easy!!! jason jason jason'
# print(ss.replace('jason', 'tony')) # tony tony tony say python so easy!!! tony tony tony
# print(ss.replace('jason', 'tony', 2)) # tony tony jason say python so easy!!! jason jason jason
# 11.拼接字符串
# print('hello' + 'world') # helloworld
# print('hello' * 2) # hellohello
# print('|'.join(['hello', 'world', 'jason'])) # hello|world|jason
# 12.标题相关
# ss = 'hello world jason JAsOn'
# print(ss.title()) # Hello World Jason 所有单词首字母变大写
# print(ss.swapcase()) # HELLO WORLD JASON jaSoN 大小写颠倒
# print(ss.capitalize()) # Hello world jason jason 首字母大写 其他全部小写
# 13.判断字符串开头或者结尾
print('jason say hello'.startswith('j')) # True
print('jason say hello'.startswith('ja')) # True
print('jason say hello'.startswith('jason')) # True
print('jason say hello'.endswith('o')) # True
print('jason say hello'.endswith('llo')) # True
print('jason say hello'.endswith('hello')) # True
4.列表list
4.1.类型转换:能够支持for循环的数据类型都可以
list('hello') # ['h', 'e', 'l', 'l', 'o']
list({'name': "jason", 'pwd': 123}) # ['name', 'pwd']
4.2.内置方法
name_list = ['jason', 'kevin', 'tony', 'jerry', 'oscar']
# 1.索引相关操作
# print(name_list[0]) # jason
# print(name_list[1:4]) # ['kevin', 'tony', 'jerry'] 顾头不顾尾(左包含右不包含)
# print(name_list[1:]) # ['kevin', 'tony', 'jerry', 'oscar']
# print(name_list[1:4:2]) # ['kevin', 'jerry']
# print(name_list[1:4:-1]) # []
# 2.统计列表中所有数据值的个数
# print(len(name_list)) # 5
# 3.增数据
# append:尾部追加(括号内无论传什么 都当成一个数据值追加)
# name_list.append('jack')
# print(name_list) # ['jason', 'kevin', 'tony', 'jerry', 'oscar', 'jack']
# name_list.append([111, 222, 333])
# print(name_list) # ['jason', 'kevin', 'tony', 'jerry', 'oscar', 'jack', [111, 222, 333]]
# insert:指定索引插入(括号内无论传什么 都当成一个数据值插入)
# name_list.insert(0, 'jasonNB')
# print(name_list)
# name_list.insert(1, [11, 22, 33, 44])
# print(name_list) # ['jasonNB', [11, 22, 33, 44], 'jason', 'kevin', 'tony', 'jerry', 'oscar']
# extend:扩展列表
# name_list.extend([11, 22, 33, 44, 55])
# print(name_list) # ['jason', 'kevin', 'tony', 'jerry', 'oscar', 11, 22, 33, 44, 55]
# res = name_list + [1, 2, 3, 4, 5, 6]
# print(res) # 不推荐使用加号扩展列表
# 4.修改数据
# name_list[0] = 'jasonNB'
# print(name_list)
# 5.移除数据
# del:关键字删除
# del name_list[0]
# print(name_list) # ['kevin', 'tony', 'jerry', 'oscar']
# pop:弹出数据
# res = name_list.pop(0)
# print(name_list) # ['kevin', 'tony', 'jerry', 'oscar']
# print(res) # jason
# remove:移除数据
# res = name_list.remove('tony')
# print(name_list) # ['jason', 'kevin', 'jerry', 'oscar']
# print(res) # None:意思是什么都没有
# 6.统计列表中某个数据值出现的次数
# l1 = [11, 22, 111, 11, 11, 11, 11, 11, 22, 11, 22, 111, 11]
# print(l1.count(11)) # 8
# 7.按照大写排序
# l1 = [22, 99, 44, 33, 11, 66, 77, 88]
# l1.sort()
# print(l1) # [11, 22, 33, 44, 66, 77, 88, 99] 默认升序
# l1.sort(reverse=True)
# print(l1) # [99, 88, 77, 66, 44, 33, 22, 11]
5.字典dict
5.1.类型转换
print(dict(name='jason', pwd=123))
5.2.常见操作
d1 = {
'name': 'jason',
'pwd': 123,
'hobby': [11, 22, 33]
}
# 1.统计键值对的个数
# print(len(d1)) # 3
# 2.按key取值(字典无法使用索引取值 因为字典是无序的!!!)
# print(d1['name']) # jason
# print(d1['xxx']) # 键不存在会直接报错 不推荐使用
# print(d1.get('name')) # jason
# print(d1.get('xxx')) # None意思是什么都没有 并且对应的布尔值时False
# print(d1.get('xxx','键不存在的情况下 可以自定义提示信息')) # 键不存在的情况下 可以自定义提示信息
# print(d1.get('pwd','键不存在的情况下 可以自定义提示信息')) # 123
# 3.修改数据(语法一致)
# d1['name'] = 'jasonNB'
# print(d1) # {'name': 'jasonNB', 'pwd': 123, 'hobby': [11, 22, 33]}
# 4.新增数据(语法一致)
# d1['age'] = 18
# print(d1) # {'name': 'jasonNB', 'pwd': 123, 'hobby': [11, 22, 33], 'age': 18}
'''3和4语法是一样的 但是有区别 如果键存在则是修改 如果键不存在则是新增'''
# 5.删除数据
# del d1['name'] # 删除键值对
# print(d1) # {'pwd': 123, 'hobby': [11, 22, 33]}
# res = d1.pop('pwd') # 弹出数据
# print(d1) # {'name': 'jason', 'hobby': [11, 22, 33]}
# print(res) # 123
# 6.常见三剑客
print(d1.keys()) # dict_keys(['name', 'pwd', 'hobby']) 一次性获取字典所有的键 结果可以看成是列表 支持for循环
print(d1.values()) # dict_values(['jason', 123, [11, 22, 33]]) 一次性获取字典所有的值 结果可以看成是列表 支持for循环
print(d1.items()) # dict_items([('name', 'jason'), ('pwd', 123), ('hobby', [11, 22, 33])]) 一次性获取键值对
6.元组
6.1.类型转换
与列表一致
6.2.常见操作
t1 = (11, 22, 33)
print(type(t1)) # <class 'tuple'>
t2 = (11)
print(type(t2)) # <class 'int'>
t3 = ('hello')
print(type(t3)) # <class 'str'>
"""
当元组内只有一个数据值的时候 逗号不能省略
小建议:以后我们在定义容器类型(内部可以存放多个数据值)的时候 如果只要一个元素 逗号加上
(11,)
[11,]
{'name':'jason',}
"""
t1 = (11, 22, 33, 44)
# 1.索引操作
# 2.统计数据值个数
# 3.元组内索引绑定值的绑定关系不能改
# t1[0] = 99 # 报错 索引绑定值的关系不能修改
"""
笔试题
t2 = (11, 22, [11, 22])
t2[-1].append(33)
上述代码运行完毕后 结果是什么???
"""
t2 = (11, 22, [11, 22])
t2[-1].append(33)
print(t2) # (11, 22, [11, 22, 33])
7.集合set
集合内数据值也是无序的!!!
去重
集合内不允许出现重复的数据 如果出现会自动去重
关系运算
共同好友 共同关注 共同点赞
f1 = {'jason', 'jerry', 'kevin', 'tony'} # 小明的好友列表
f2 = {'jack', 'jerry', 'tony', 'lili'} # 小李的好友列表
# 1.求两个人共同好友
# print(f1 & f2) # {'tony', 'jerry'}
# 2.求两个人所有的好友
# print(f1 | f2) # {'tony', 'lili', 'kevin', 'jack', 'jason', 'jerry'}
# 3.求独有好友
# print(f1 - f2) # {'jason', 'kevin'}
# print(f2 - f1) # {'jack', 'lili'}
# 4.求两个人各自独有的好友
# print(f1 ^ f2) # {'jason', 'kevin', 'jack', 'lili'}
# 5.求子集 父集(谁包含谁)
print(f1 > f2)
print(f1 < f2)
print({1, } < {1, 2, 3, 4, }) # True