2021.1.28

本文详细介绍了Python中的元组、集合和字符串。元组是不可变的列表,支持下标操作;集合是无序且元素唯一的容器,可用于去重和数学集合运算;字符串是有序容器,不可变,支持转义字符和编码值操作。同时,文章通过实例展示了如何利用这些数据结构进行数据处理和分析。
摘要由CSDN通过智能技术生成

学习日志2021.1.28

  1. 元组

    元组是容器(序列),()容器标志,元组不可变(不支持增删改查),有序(支持下标操作),

    元素要求和列表相同,元组可以视为不可变的列表

    t1 = (1, 2, True, 'asd', [], {'sd': 2})
    print(t1)
    

    和列表相同

    t1 = (1, 2, True, 'asd', [], {'sd': 2})
    l1 = list(t1)
    print(l1[1], t1[1])
    

    元组的特有性质

    只有一个元素的元组

    t2 = (1,)  # 必须加逗号
    print(type(t2))
    

    在没有歧义的情况下,元组的括号可以省略

    t3 = 1, 2, 3
    print(type(t3))
    x, y, z = t3
    print(x, y, z)
    

    不等位赋值,按照数量将元组分段,除了*全部是一个元素(不等位时有且只有一个)

    t4 = ('a', 1, 34, 56, 34)
    x1, x2, *x3, x4 = t4
    print(x1, x2, x3, x4)
    
  2. 集合 set

    集合是容器(序列),可变的、无序的。

    元素要求:不可变的、唯一的

    x = {}  # 空字典
    y = set()  # 空集合
    

    集合无序 且元素唯一

    print({1, 2, 3} == {3, 2, 1})
    print({1, 1, 1, 2, 3, 4, 5})  # 此特性可以用于去重
    

    数学集合运算:交集、并集、差集、对称差集、子集真子集

    s1 = {1, 2, 3, 4, 5}
    s2 = {4, 5, 6, 7, 8}
    # 交集 &  并集 | 差集直接相减
    print(s1 - s2)
    # 对称差集 ^  等于 A|B - A&B
    print(s1 ^ s2)
    

    用三个集合表示三门学科的学生姓名

    a.求选课学生共有多少人

    b.求只选了第一个学科的人的数量和对应的名字

    c.求只选了一门学科的学生的数量和对应的名字

    d.求只选了两门学科的学生的数量和对应的名字

    e.求选了三门学科的学生的数量和对应的名字

    python = {'stu1', 'stu4', 'stu5', 'stu6', 'stu8', 'stu10', 'stu11'}
    java = {'stu2', 'stu4', 'stu7', 'stu8', 'stu9', 'stu10'}
    h5 = {'stu1', 'stu3', 'stu7', 'stu8', 'stu10', 'stu11'}
    a = python | java | h5
    print(f'选课总共{len(a)}人')
    b = python - java - h5
    print(f'只选python{len(b)}人,分别是:{b}')
    c = python ^ java ^ h5 - (python & java & h5)
    print(f'只选一门学科的有{len(c)}人,分别是{c}')
    e = python & java & h5
    d = a - c - e
    print(f'选了两门的有{len(d)}人,分别是{d}')
    print(f'三门全选有{len(e)}人,分别是{e}')
    
  3. 字符串 str

    字符串是容器(序列)’’、""、"""、""""""是容器的标志

    每一个符号都是字符串元素(字符串元素又叫字符)

    字符串、元组不可变,所以相同的字符串、元组用的同一地址(所有的可变都是产生新的字符串)

    a = '''a
    b'''
    print(a)
    a = '♥🐎💃💃💃🚩'
    

    转义字符

    在特定符号前加\表示特殊意义

    # \n    换行
    # \t    tab
    # \'    表示一个单引号
    # \"    表示一个双引号
    # \\    表示一个\
    # \u四位的十六进制编码    将编码值转换成字符
    str = "\u4e20"
    print(str)
    
  4. 字符编码

    1. 字符在计算级的存储问题

      计算级只能存数字,所以为了能够保存字符,给每一个字符对应一个固定数字

      这个数字就是字符的编码值

    2. 编码表

      记录字符和编码值一一对应的表格,常见编码表:ASCII、Unicode编码表

      ASCII需要记住大概布局

      Unicode是ASCII编码表的补充,中文的编码范围:4e00 ~ 9fa5

    3. 编码值的使用

      # \u编码值
      # chr(编码值)  获取相应字符
      # for x in range(0x4e00,0x9fa5):
      #     print(chr(x),end='')
      # ord(字符)   获取字符的编码值,输出为十进制
      print(hex(ord('李')), hex(ord('博')))
      
    4. 字符串比较大小

      两个字符串中位置相同的为一对,比较第一对不相等的字符串的大小

      print('你好' > 'hello')
      
      """
      数字字符:'0' <= char <= '9'
      字母:'A' <= char <= 'Z' or 'a' <= char <= 'z'
      中文:'\u4e00' <= char <='\u9fa5'
      """
      pw = input('输入密码')
      for char in pw:
          if not ('0' <= char <= '9' or 'A' <= char <= 'Z' or 'a' <= char <= 'z'):
              print('输入错误')
              break
      else:
          print('密码合法')
      
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值