Python数据类型内置方法模板

内容概要

  • 数据类型内置方法

    简介
    int整型
    float浮点型
    str字符串
    list列表
    dict字典
    元组
    set集合
    可变类型与不可变类型

     

简介

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

可变类型与不可变类型

可变类型    列表 字典
值改变 内存地址可以不变
不可变类型 整型 浮点型 字符串 元组 布尔值
值改变 内存地址肯定改变

res = '$$jason$$'
print(res.strip('$'))  # jason
print(res)  # $$jason$$
'''字符串在调用内置方法之后并没有改变自己 而是产生了新的结果'''

l1 = [11, 22, 33]
print(l1.append(44))  # None
print(l1)  # [11, 22, 33, 44]
'''列表在调用内置方法之后并没有产生新的结果 而是直接改变的自己'''
ps:重点理解课上图释
posted @ 2022-08-27 22:19  呼长喜  阅读(94)  评论(0编辑  收藏  举报