PythonDay2Base

前文见上一篇文章

数据类型详解

字符串 str 补充

  • startswith 判断字符串是否以某个小字符串开头

    s1 = "shujia数加科技学习study"
    b = s1.startswith('sh')
    print(b) # True
  • endswith 判断字符串是否以某个小字符串结尾

    s1 = "shujia数加科技学习study"
    # b = s1.startswith('sh')
    # print(b) # True
    b = s1.endswith('wdy')
    print(b) # False
  • split 指定分隔符从左向右切进行切分

    # 扩展知识:.csv后缀格式的文件,若以记事本打开的话,
    # 列和列之间,默认使用的是英文逗号分割的
    # 1001,张三,18,男,33期
    s1 = "1001,张三,18,男,33期"
    l1 = s1.split(',')
    print(l1)

    默认是所有分隔符都会切分,但是可以设置maxsplit参数值,指定切割的次数

    s1 = "1001,张三,18,男,33期"
    l1 = s1.split(',', maxsplit=2)
    print(l1) # ['1001', '张三', '18,男,33期']
  • rsplit 指定分隔符从右向左切进行切分

    s1 = "1001,张三,18,男,33期"
    # l1 = s1.split(',', maxsplit=2)
    # print(l1)
    # ['1001', '张三', '18,男,33期']
    l1 = s1.rsplit(',', maxsplit=1)
    print(l1)
  • join 以调用该方法的字符串进行拼接

    # 1001,张三,18,男,33期
    s1 = "1001,张三,18,男,33期"
    l1 = s1.split(',')
    print(l1) # 1001|张三|18|男|33期 print("---------------------")
    s2 = '|'.join(l1)
    print(s2)
  • replace 指定新字符串替换旧字符串

    s1 = '今天我在数加科技学习,今天学习了大数据相关的知识,在数加每一天都很充实!'
    s2 = s1.replace('数加', 'shujia')
    print(f"s1:{s1}")
    print(f"s2:{s2}")
  • strip() 去除字符串两边的空白字符, 注意不会去除字符串中间本身的空白字符

    s1 = ' hello world '
    s2 = s1.strip()
    print(f"s1:{s1}")
    # s1: hello world
    print(f"s2:{s2}")
    # s2:hello world

    rstrip() 去除字符串右边的空白字符

    ltrip() 去除字符串左边边的空白字符

整数 int

所有的整数都是int类型,包括负数

浮点数 float

所有的小数都是float类型,包括负数

布尔 bool

两种值,True和False

列表list

用于存储多种元素的容器,列表中的元素具有有序【存储和取出的顺序一致】且可以发生重复的特

同样具备索引的概念,同一个列表中的元素类型可以是不一样的

举例:[10, 12.23, '数加', True, [11,22,33,44], 'shujia']

公共功能

  • 长度功能

    # 如何创建一个空列表?
    # 方式1:直接使用[]
    list1 = []
    # 方式2:使用内置函数list()
    list1 = list()
    # 使用len()函数获取元素的个数
    list1 = [10, 12.23, '数加', True, [11,22,33,44], 'shujia']
    print(f"list1列表中的元素个数为:{len(list1)}")
    # 6
    # 列表本身就是一个可以迭代的序列,所以直接使用for循环获取元素
    list1 = [10, 12.23, '数加', True, [11,22,33,44], 'shujia']
    for i in list1:
    print(i)
  • 索引功能

    # 0 1 2 3 4 5
    list1 = [11, 22, 33, 44, 55, 66]
    # -6 -5 -4 -3 -2 -1
    # 获取44这个元素
    print(list1[3])
  • 切片功能

    # 0 1 2 3 4 5
    list1 = [11, 22, 33, 44, 55, 66]
    # -6 -5 -4 -3 -2 -1
    print(list1[2:5])
    print(list1, type(list1))
    # 使用负数索引获取33,44,55
    print(list1[-4:-1])
    # [33, 44, 55]
    # 按顺序取55,44,33
    print(list1[-2:-5:-1])
    # [55, 44, 33]
  • in 判断一个元素是否在列表内出现

    list1 = [11,22,33,44,55,66,22,11,55,77,22,11,22]
    if 77 in list1:
    print("77出现在列表中")
    else:
    print("未出现")

独有功能

在列表自身基础上做修改

  • 增加元素

    • 追加 append

      # 创建一个空列表
      list1 = []
      # list1 =list()
      list1.append(100)
      list1.append('hello')
      list1.append('world')
      list1.append(True)
      list1.append('hello')
      list1.append('flink')
      print(f"list1:{list1}")
      # list1:[100, 'hello', 'world', True, 'hello', 'flink']
    • 插入 insert

      # list1:[100, 'hello', 'world', True, 'hello', 'flink']
      print(f"list1:{list1}")
      print("--------------------")
      list1.insert( 2,'黄沪生')
      print(f"list1:{list1}")
  • 删除元素

    • 方式1:调用remove()函数 在已知要删除元素的值

      list1 = [11, 22, 33, 44, 55, 66]
      list1.remove(44)
      # list1.remove(100)
      # 报错 print(f"list1: {list1}")
      print('hello world')

      注意:使用remove需要确保要删除的元素在列表中,否则报错,程序终止运行

    • 方式2:调用pop()函数 根据索引删除元素,返回被删除元素的值

      list1 = [11, 22, 33, 44, 55, 66]
      s = list1.pop(3)
      print(f"list1: {list1}")
      print(s)
      print('hello world')
    • 方式3:使用python内置关键字 del

      list1 = [11, 22, 33, 44, 55, 66]
      del list1[3]
      print(f"list1: {list1}")
  • 修改元素 直接通过索引覆盖原有的值,起到修改的效果

    list1 = [11, 22, 33, 44, 55, 66]
    list1[3] = 100
    print(f"list1: {list1}")
  • 反转功能

    list1 = [11, 22, 33, 44, 55, 66]
    print(f"反转前:{list1}")
    list1.reverse()
    print(f"反转后:{list1}")

    练习:判断某一个字符串是否是对称字符串

    # aba helloolleh hello owo
    str1 = input("请输入一个字符串:")
    list2 = list(str1) # 字符串转列表,每个字符作为列表中的元素
    list2.reverse() # 将列表中的元素进行反转
    str2 = ''.join(list2) # 将元素以指定分隔符拼接得到字符串
    if str2==str1:
    print("该字符串是一个对称字符串!")
    else:
    print("不是对称字符串!")
  • 拷贝功能

    • 浅拷贝 python列表中的copy()属于浅拷贝

      • 拷贝单个元素列表的形式

        list1 = [11, 22, 33, 44, 55, 66]
        list2 = list1.copy()
        print(f"list1:{list1}")
        print(f"list2:{list2}")
        print("-----------------------------")
        list1[3] = 100
        print(f"list1:{list1}")
        print(f"list2:{list2}")
      • 拷贝复杂元素列表的形式

        list1 = [11, 22, 33, [100, 200, 300], 55, 66]
        list2 = list1.copy()
        print(f"list1:{list1}")
        print(f"list2:{list2}")
        print("-----------------------------")
        list1[3][1] = 'hello'
        print(f"list1:{list1}")
        print(f"list2:{list2}")
    • 深拷贝

      旨在拷贝列表内嵌套的所有项目 当目标列表改变时 复制列表不改变

  • count() 统计列表中某个元素的个数

    list1 = [11,22,33,44,55,66,22,11,55,77,22,11,22]
    res1 = list1.count(11)
    print(res1)

元组 tuple

元素有序,也可以发生重复,但是元素中的元素,一旦确定了,就不能更改【无法完成增删改】

  • 创建元组

    • 创建一个空元组

      # 创建一个空元组
      # t1 = ()
      t1 = tuple()
      print(t1, type(t1))
    • 创建一个非空元组

      • 创建一个只有1个元素的元组 , 元素的后面要有一个逗号,若不加,等同于一个元素直接

        赋值

        t1 = (11,)
        print(t1, type(t1))
      • 创建一个元素个数大于等于2的元组 最后一个元素后面加逗号或者不加都行

        # t2 = (11,22,33,)
        t2 = (11,22,33)
        print(t2, type(t2))

公共功能

  • 长度功能 获取的是元素的个数

    t2 = (11,22,33,)
    print(len(t2))
  • 索引功能

    t2 = (11,22,33,)
    print(t2[1])
    # 遍历元组
    t1 = (11,22,33,44,55,66)
    for i in t1:
    print(i)
  • 切片功能

    t1 = (11,22,33,44,55,66)
    print(t1[2:5]) # (33, 44, 55)
  • in 包含

    t1 = (11,22,33,44,55,66)
    if 44 in t1:
    print("yes")
    else:
    print("no")

独有功能

  • count()

  • index()

    通常情况下,开发中我们将元组中存储固定的链接值,比如与数据库的连接信息,重要的路径信息。

字典dict

特点:

  • 元素是由键值对构成,一个键值对看作一个元素
  • 键是唯一的,不允许重复出现
  • 值可以发生重复的
  • 元素键和值的类型可以是不一样的
  • 一个字典中的元素之间是有序的【python3.6版本之后】,【python3.6之前是无序的】
  • 如何创建一个字典?

    # 创建一个空字典
    d1 = dict()
    print(d1, type(d1))
    d2 = {}
    print(d2, type(d2))

公共功能

  • 长度功能 获取的是键值对的个数

    d1 = {'name':'张三', 'age':18, 'likes':['打游戏','看电影','跑步'], 'dog':{'name':'哮 天犬','age':3}} print(len(d1)) # 4
  • 索引功能

    在字典类型里,索引指的是键,键是唯一,可以通过键获取对应的值

    d1 = {'name':'张三', 'age':18, 'likes':['打游戏','看电影','跑步'], 'dog':{'name':'哮 天犬','age':3}} print(d1['age']) # 18
    print(d1['likes'][1]) # 看电影
  • 无切片功能

  • in 包含功能 判断的是键是否存在于字典中

    if 'name' in d1:
    print('存在这个键') # 存在!!
    else:
    print("不存在")
    # -----------------------------------------
    if 18 in d1:
    print('存在这个键')
    else:
    print("不存在") # 不存在!!
  • 遍历

    • 先获取所有的键,遍历得到每一个键,根据键获取每一个值

      d1 = {'name': '张三', 'age': 18, 'gender': '男', 'clazz': '33期'}
      # 获取所有的键
      keys = list(d1.keys())
      for key in keys: # 根据键获取对应的值
      value = d1.get(key)
      print(f"{key}-{value}")
    • 直接获取所有的键值对,遍历得到每一个键值对,得到每一个键和每一个值

      key_values = list(d1.items())
      # print(key_values, type(key_values))
      for key_value in key_values:
      key = key_value[0]
      value = key_value[1]
      print(f"{key}={value}")

独有功能

  • keys() 获取字典中所有的键
  • get(键) 根据键获取值
  • items() 获取所有的键值对
  • clear() 清空字典中所有的元素
  • pop 根据键从字典中移除一个键值对,返回一个值

集合 set

元素唯一且无序

set集合创建的方式

  • 创建空的集合

    s1 = set()
  • 创建有元素的集合

    s2 = {11, 22, 33, 45, 6, 1, 1, 22, 33, 45, 11}

公共功能

  • 没有索引的概念

  • 没有切片的功能

  • 长度功能

    s2 = {11, 22, 33, 45, 6, 1, 1, 22, 33, 45, 11}
    # print(s2, type(s2))
    print(s2)
    print(len(s2))
  • in 包含

    s2 = {11, 22, 33, 45, 6, 1, 1, 22, 33, 45, 11}
    # print(s2, type(s2))
    # print(s2)
    # print(len(s2))
    if 22 in s2:
    print("yes")
    else:
    print("no")
  • 练习:去重列表中的重复元素

    • 方法1:借助一个空列表

      list1= [11, 22, 33, 45, 6, 1, 1, 22, 33, 45, 11]
      # print(list1)
      list2 = []
      for i in list1:
      if i not in list2:
      list2.append(i)
      print(f"list2:{list2}")
    • 方式2:借助转set集合进行去重

      list1= [11, 22, 33, 45, 6, 1, 1, 22, 33, 45, 11]
      list1 = list(set(list1))
      print(list1)

独有功能

  • 求差集

    s1 = {11,22,33,44}
    s2 = {22,33,55,66}
    # res1 = s1 - s2 # 求差集
    res1 = s1.difference(s2)
    print(res1)
  • 求并集

    s1 = {11,22,33,44}
    s2 = {22,33,55,66}
    res1 = s1.union(s2)
    print(res1)
  • 求交集

    s1 = {11,22,33,44}
    s2 = {22,33,55,66}
    res1 = s1.intersection(s2)
    print(res1)
  • 添加元素add

    s1 = {11,22,33,44}
    s1.add('hello')
    s1.add('world')
    s1.add(14)
    print(s1)
  • 删除一个元素

    res1 = s1.pop()
    print(s1)
    print(res1)
  • 指定元素删除 remove()

    若元素不存在 则报错

    res1 = s1.remove(11)
    print(s1)
    print(res1)
  • 指定元素删除 discard()

    若元素不存在,不会报错

    s1 = {11,22,33,44}
    s1.discard(33)
    print(s1)

随机推荐

  1. 鸿蒙(HarmonyOS)常见的三种弹窗方式

    最近有一个想法,做一个针对鸿蒙官方API的工具箱项目,介绍常用的控件,以及在项目中如何使用,今天介绍Harmony中如何实现弹窗功能. 警告弹窗 警告弹窗是一个App中非常常用的弹窗,例如: 删除一条 ...

  2. 前端使用 Konva 实现可视化设计器(22)- 绘制图形(矩形、直线、折线)

    本章分享一下如何使用 Konva 绘制基础图形:矩形.直线.折线,希望大家继续关注和支持哈! 请大家动动小手,给我一个免费的 Star 吧~ 大家如果发现了 Bug,欢迎来提 Issue 哟~ git ...

  3. 合合信息推出国央企智能文档处理解决方案,AI赋能信创国产化

    信息时代,数字化转型已成为推动经济高质量发展的关键力量.国央企是国民经济的重要支柱,其数字化转型进程关乎着自身与产业链上下游企业的共同发展.文档的智能化处理可有效提升信息流转的效率.促进知识的沉淀与传 ...

  4. 通用能力及AI核心能力表现优异!合合信息智能文档处理系统(IDP)高评级通过中国信通院评估

    数字经济快速发展的背后,全球数据总量呈现出爆发式增长趋势.智能文档处理(IDP)技术能够高效地从多格式文档中捕捉.提取和处理数据,帮助机构和企业大幅提升文档处理效率,节约时间和人力成本.近期,合合信息 ...

  5. 前后端沟通 naming conversion 转换需要知道的事

    c# 是 pascal case, js 是 camel case 所以在做 web api 和 odata 的时候经常需要转换. 早年 web api 是依赖 Newtonsoft json (JS ...

  6. SQL Server 中的 NUL 设备/NIL设备

    SQL Server 中的 NUL 设备/NIL设备 在 SQL Server 中,有一个特殊的设备叫做 NUL(注意,不是 NULL),它类似于文件系统中的"黑洞".NUL 设备 ...

  7. 普元中间件Primeton AppServer6.5安装(Windows)

    本文在Windows环境下安装普元中间件Primeton AppServer6.5(以下简称PAS) 一.安装前准备 1.1使用软件版本 Primeton_AppServer_6.5_Enterpri ...

  8. 第43天:WEB攻防-PHP应用&SQL注入&符号拼接&请求方法&HTTP头&JSON&编码类

    #PHP-MYSQL-数据请求类型 SQL语句由于在黑盒中是无法预知写法的,SQL注入能发成功是需要拼接原SQL语句,大部分黑盒能做的就是分析后各种尝试去判断,所以有可能有注入但可能出现无法注入成功的 ...

  9. 【解决方案】基于数据库驱动的自定义 TypeHandler 处理器

    目录 前言 一.TypeHandler 简介 1.1转换步骤 1.2转换规则 二.JSON 转换 三.枚举转换 四.文章小结 前言 笔者在最近的项目开发中,频繁地遇到了 Java 类型与 JDBC 类 ...

  10. USB Type-C Power Role

    USB Power Role 是指 USB 设备在供电方面所扮演的角色,主要分为供电方(Provider)和受电方(Consumer).在 USB 供电协议中,电源角色的管理尤为重要,尤其是在 USB ...