Day7 - 集合和字符串

本文详细介绍了Python中的集合和字符串数据类型。首先讲解了集合的特性,如可变性、无序性和唯一性,并展示了如何进行增删改查操作及数学集合运算。接着,探讨了字符串的基本概念,包括其有序性、字符编码以及如何进行字符串操作,如切片、遍历、加法和乘法。最后,通过实例展示了字符串中字符的统计和删除。
摘要由CSDN通过智能技术生成

Day7 - 集合和字符串

01 - 集合

  1. 什么是集合(set)

    集合是容器型数据类型,将{}作为容器的标志,{元素1,元素2,元素3,…}

    可变的;无序的

    元素:不可变数据;唯一的

    • 空集合

      x = {}	# 空字典
      s1 = set()	# 空集合
      print(type(x), type(s1))
      print(s1)
      
    • 元素是不可变

      s2 = {10, 'abc', (1,2)}
      print(s2)
      
    • 元素是唯一的

      s4 = {10, 10, 10, 20, 30, 40}
      print(s4)
      # 集合去重
      
    • 集合是无序

      print({1,2,3} == {3,2,1})
      
  2. 集合的增删改查

    • 查 - 集合只能遍历

      补充:通过for循环遍历无序序列的时候,都是先将序列转换成列表,然后遍历列表

      games = {'命运石之门', 'gta', '阴阳师', '黑暗之魂3'}
      for x in games:
          print(x)
      
    • 集合.add(元素)	-	在集合添加指定元素
      集合.update(序列)	-	将序列中所有的元素添加到集合中
      games.add('英雄联盟')
      print(games)
      games.update(['求生之路', '糖豆人', '只狼'])
      print(games)
      
      games.update('abc')
      
      print(games)
      
    • 集合.remove(元素)	-	删除集合中指定的元素(元素不存在时会报错)
      集合.discard(元素)	-	删除集合中指定的元素(元素不存在时不会报错)
      games = {'c', '阴阳师', 'b', '命运石之门', '糖豆人', 'gta', 'a', '英雄联盟', '求生之路', '黑暗之魂3'}
      games.remove('命运石之门')
      games.add('部落冲突')
      
  3. 数学集合运算

    python中的集合支持数学中的集合运算:&(交集)、|(并集)、-(差集)、^(对称差集)、>、<、>=、<=(判断包含关系)

    set1 = {1,2,3,4,5,6,7,8,9}
    set2 = {4,5,6,7,8,9,10}
    
    • 集合1 & 集合2 - 求两个集合的公共部分
    print(set1 & set2)
    
    • 集合1 | 集合2 - 合并两个集合产生一个新的集合
    print(set1 | set2)
    
    • 集合1 - 集合2 - 集合1中去掉包含在集合2中的元素
    print(set1 - set2)
    
    • 集合1 ^ 集合2 - 将两个集合合并后去掉公共部分
    print(set1 ^ set2)
    # 集合1 > 集合2     -   判断集合2是否是集合1的真子集
    # 集合2 < 集合1     -   判断集合1是否是集合2的真子集
    # 集合1 >= 集合2     -   判断集合2是否是集合1的子集
    # 集合2 <= 集合1     -   判断集合1是否是集合2的子集
    # 3.用三个列表表示三门学科的选课学生姓名(一个学生可以同时选多门课)
    # 	a. 求选课学生总共有多少人
    #  	b. 求只选了第一个学科的人的数量和对应的名字
    # 	c. 求只选了一门学科的学生的数量和对应的名字
    #  	d. 求只选了两门学科的学生的数量和对应的名字
    # 	e. 求选了三门学生的学生的数量和对应的名字
    python = {'stu1', 'stu2', 'stu4', 'stu6', 'stu7', 'stu10', 'stu11'}
    h5 = {'stu1', 'stu3', 'stu5', 'stu7', 'stu8', 'stu10'}
    java = {'stu1', 'stu2', 'stu5', 'stu6', 'stu7', 'stu9', 'stu12'}
    s1 = python | h5 | java
    s2 = python - h5 - java
    s3 = python ^ h5 ^ java
    s4 = python & h5 & java
    print('===========a==========')
    print(len(s1))
    print('========b============')
    print(len(s2))
    print(s2)
    print('==========c============')
    nums = len(s3)-len(s4)
    print(nums)
    print(s3 - s4)
    print('==========d=============')
    print(len(s1)-len(s3))
    print(s1 - s3)
    print('==========e===========')
    print(len(s4))
    print(s4)
    

02- 字符串

  1. 什么是字符串(str)

    字符串是容器型数据类型,将’’,"",’’’’’’,""""""作为容器的标志里面的每一个基本符号就是字符串里面的元素

    字符串是不可变的(不支持增删改);字符串是有序到的(支持下标操作)

    元素:引号里面的每个基本单元就是字符串的元素,又叫字符(python只有字符的概念没有字符对应的类型,一般直接是用长度是1的字符串来表示字符)

    • 空串

      s1 = ''  # s1 = ""  s1 = '''''' s1 = """"""
      print(type(s1))
      
    • ‘’、""、’’’’’’、""""""的区别

      # ''、""     -   字符串中不能直接换行
      s2 = 'safdfasfdfsfsff'
      s3 = '''无言独上西楼,月如钩,寂寞梧桐深院锁清秋
              剪不断,理还乱,是离愁。
      '''
      print(s3)
      
    • 字符串有序

      print('abc' == 'cba')
      
  2. 字符

    字符分为普通字符和转义字符两种:

    • 转义字符

      在特定的一个或者多个符号前加\让符号具有特殊功能或者特殊意义。那么这种带有\字符就是转义字符

      \n  -   换行
      \t  -   水平制表符(相当于按一下tab键)
      \'  -   表示一个普通的单引号(有歧义是使用)
      \"  -   表示一个普通的双引号
      \\  -   表示一个普通的反斜杠
      

      注意:任何一个转义字符长度都是1

    • 普通字符

      除了转义字符以外的字符都是普通字符,普通字符在字符串中表示这个符号本身,包括:汉字、数字、字母、符号、表情符号等…

      # 特殊的转义字符-编码字符: \u四位的十六进制数  -   表示16进制数对应的编码值对应的字符
      str1 = '\tabc\'\\\n123'
      print(str1)
      
      str2 = '123\\n456'
      print(str2)
      
      str3 = 'abc\u4fa5'
      str4 = 'abc\ua3f3'
      print(str3, str4)
      

    字符编码

    """
    1)什么是字符编码
    计算机在存储数据的时候只能存数字(存的数字二进制补码),为了能够让计算机存储字符,我们给每一个
    符都对应一个固定的数字,那么每个字符对应的固定的数字就是这个字符的编码值
    
    2)字符编码表 -   记录字符和数字之间一一对应关系的表就是字符编码表
    常见的字符编码表有两种:ASCII码表、Unicode编码表(python采用的是Unicode编码表)
    a.ASCII码表
    ASCII码表总共用128个字符对应的编码,主要包括的是美国通用符号其中包括:英文标点符号、数字字符、
    字母字符以及其他的一些符号
    ASCII码表中,数字字符在字母的前面,大写字母在小写字母的前面,大写字母和小写字母之间有间隔
    
    b.Unicode编码表
    Unicode编码表包含ASCII码表
    中文编码范围:4e00 ~ 9fa5
    """
    
    • 编码字符

      print('\u0f00')
      print('\u4e00')
      print('\u1100')
      print('\u0f03 \u0f00 \u0f08')
      
    • chr(编码值) - 获取编码值对应的字符

      print(chr(0x4e00))
      print(chr(97))
      # count = 0
      # for i in range(0x4e00, 0x9fa5+1):
      #     print(chr(i), end=' ')
      #     count += 1
      #     if count % 25 == 0:
      #         print()
      
    • ord(字符) - 获取字符对应的编码值(返回的是十进制数)

      print(ord('s'), ord('d'))
      print(hex(ord('s')), hex(ord('d')))
      

03-字符串的操作

  1. 获取字符

    字符串获取字符和列表获取元素的方法一样

    • 获取字符

      sentence = '你好骚啊'
      print(sentence[2], sentence[-1])
      
    • 字符串切片

      sentence2 = 'good good study!\nday day up!'
      print(sentence2[5:-2])
      print(sentence2[::-1])
      
    • 遍历

      for x in sentence2:
          print('x', x)
      for index, x in enumerate(sentence2):
          print('index', index, 'x', x)
      
  2. 加法和乘法

    print('abc' + '123')
    print('you see see you!' + 'one day day')
    print('abc'*3)
    
  3. 比较大小

    # 两个字符串比较大小:比较第一对不相等的字符编码值的大小
    """
    'a' <= char <= 'z'  -   小写字母
    'A' <= char <= 'Z'  -  大写字母
    'a' <= char <= 'z' or 'A' <= char <= 'Z'    -   字母
    '0' <= char <= '9'  -   判断数字
    '\u4e00' <= char <= '\u9fa5'    -   判断中文
    """
    print('abc' > 'XYZ')
    # 练习1:输入一个字符串,统计字符串中小写字母的个数
    str1 = input('输入一串字符:')
    num = 0
    for i in str1:
        if 'a' <= i <= 'z':
            num += 1
    print(num)
    
    # 练习:输入一个字符串。删除字符串中所有的中文字符
    str2 = input('输入一串字符:')
    str3 = ''
    for i in str2:
        if '\u4e00' <= i <= '\u9fa5':
            continue
        else:
            str3 += i
    print(str3)
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值