day 9

day 9

集合

1.什么是集合(set)

1)集合是容器型数据类型;将{}作为容器的标志,里面多个元素用逗号隔开:{元素1,元素2,元素3,…}
2)可变的;无序的
3)元素的要求:
a.必须是不可变类型的数据
b.元素是惟一的(自动去重)

  • 空集合

    s1=set()
    print(len(s1),type(s1))
    
  • 集合无序

    print({10,20,30}=={30,10,20})
    
  • 元素是不可变类型的数据

    s2={10,'abc',23.9,(1,2)}
    print(s2)
    s3={10,'abc',23.9,[1,2]}  #报错,列表是可变数据不能作为集合元素
    
  • 元素是唯一的

    s4={10,10,20,30,20,40}
    print(s4)
    
2.增删改查(了解)

1)查 – 只能遍历

2)增
集合.add(元素) – 将元素添加到集合中

3)删
集合.remove(元素) --删除指定元素,元素不存在,报错
集合.discard(元素) --删除指定元素,元素不存在不报错

4)改 --没有改的语法,如果要改,就先删除旧的,添加新的

数学集合运算

python中的集合支持的数学运算:并集(|) 、交集(&)、差集(-)、对称差集(^)、子集(>= 、<=)、真子集(> 、<)
A = {1, 2, 3, 4, 5, 6, 7}
B = {5, 6, 7, 8, 9}
  • 1.并集(|) --两个集合合并
    集合1 | 集合2 --将两个集合合并产生一个新的集合

    print(A | B)
    
  • 2.交集(&)
    集合1 & 集合2 – 获取两个集合的公共部分产生一个新的集合

    print(A & B)
    
  • 3.差集(-)
    集合1 - 集合2 --获取集合1中没有包含在集合2中的元素
    集合2 - 集合1 --获取集合2中没有包含在集合1中的元素

print(A - B)
print(B - A)
  • 4.对称差集(^) --两个集合合并,去掉公共部分

    print(A ^ B)
    
  • 5.子集和真子集

集合1 >= 集合2 --判断集合2是否是集合1的子集
集合1 <= 集合2 --判断集合1是否是集合2的子集

集合1 > 集合2 --判断集合2是否是集合1的真子集
集合1 < 集合2 --判断集合1是否是集合2的真子集

print({1,2,3}>{0})
print({1,2,3}>{1})

字符串

1.什么是字符串(str)

1)字符串是容器型数据类型;将‘’、“”、’’’ ‘’’、“”“ ”“”作为容器标志,里面的每一个符号就是它的一个元素
2)字符串不可变;字符串有序
3)字符串元素:引号中的每一个符号都是字符串元素,又叫字符。
字符分为普通字符和转义字符:
普通字符 – 在字符串中表示符号本身的字符

str1='abc' 
str2="abc" 

str3="""abc"""
str4='''abc'''
print(type(str1))
print(type(str2))
print(type(str3))
print(type(str4))
  • 三个引号开头的字符串,字符串可以直接换行
print('=======================')
str5='abc\n123'
str6='''abc
123'''
print(str5)
print(str6)
2.字符–字符串的元素
str1='iejfioewJDIW'
str2='243飞凡网'
str3='21321DIW'
  • 转义字符
str0='abc\n123'
print(str0)
  • 字符串有序
str8='abc'=='bca'
print(str8)

转义字符

1.字符 - 字符串的每个元素
  • 字符分为普通字符和转义字符
1)转义字符 - 在特定的一些符号前加\ 来表示特殊功能或特殊意义的符号

常用的转义字符
\n --换行(相当于按回车)
\t --水平制表符(相当于tab键)
’ --相当于一个普通的单引号
" --相当于一个普通的单引号
\ 一个普通的反斜杠

\u4位得16进制数 – 编码字符

print('====================')
print('\tabc\n123')
str1 = 'It\'s ok'  # "It's ok"
print(str1)
str2 = "I say: \"good good study,day day up!\""
str3='I say: "good good study,day day up!"'
print(str2)
path = 'c:\\users\\test\\name\\peng\\aaa.txt'
print(path)
print('====================')
2) R 语法

如果在字符串的最前面加r或R,可以让字符串中所有的转义字符功能消失,每个符号都会变成普通字符

str5=r'\tabc\n123\'mn'
print(str5)
print('====================')

字符编码

1.计算机存储数据的原理

计算机只具备存储数字的能力,

2.字符编码

为了让计算机存储文字信息,给每一个符号对应了一个固定的数字,每次需要存储文字符号的时候
就存储这个符号对应的数字。
这个数字就是这个符号的编码值。

3.编码表 – 保存不同字符对应的编码值的表
  • 1)ASCII码表

    数字:0-9 --48…
    大写字母:A-Z --65…
    小写字母:a-z --97…
    有128个符号(美国符号)
    数字在大写字母前面,大写字母在小写字母前面,大写字母和小写字母之间有间隙

  • 2)Unicode编码表(python)

    Unicode编码表中包含了ASCII码表
    Unicode包含了世界上所有的国家所有的民族的所有符号,又叫万国码
    中文范围:4e00~9fa5

4.python对编码值的使用
  • 1)chr函数
    chr(编码值) --获取数字(编码值)对应的字符

    print(chr(97))
    print(chr(10000))
    print(chr(0x4e00))
    num=0
    for x in range(0x4e00,0x9fa5):
        print(chr(x),end=' ')
        num += 1
        if num % 30 == 0:
            print()
    
  • 2)ord函数
    ord(字符) – 获取字符对应的编码值

    print(ord('彭'),ord('滔'))
    
  • 3)编码字符

    \u4位的16进制数 --创建一个字符,字符就是4得16进制数作为编码值对应的字符

进制

  • 数字常见的表示方式有:二进制、八进制、十进制、十六进制
1.十进制

基数:0、1、2、3、4、5、6、7、8、9
表示方式:直接写
转换方法:print(其他进制的数)

print(int('12',base=8))  #把‘12’看成8进制的12,转换成十进制为10
print(10, 123)
print(0o12)
print(0x4e00)
2.二进制

基数:0、1
表示方式:加前缀0b、0B
转换方法:bin(其他进制的数)

3.八进制

基数:0、1、2、3、4、5、6、7
表示方式:加前缀0o、0O
转换方法:oct(其他进制的数)

4.十六进制

基数:0、1、2、3、、4、5、6、7、8、9、A/a、B/b、C/c、D/d、E/e、F/f
表示方式:加前缀0x、0X
转换方式:hex(其它进制的数)

字符串作为容器的操作

  • 字符串不可变,所以只支持查的操作

    1.查-获取字符

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

    str1 = 'abc123'
    print(str1[2], str1[-4])
    print(str1[1:])
    print(str1[1: -1:2])
    for i in str1:
        print(i)
    
  • 每一个有效转义字符的长度都是1

str2 = '\ta\u4e00bc\n123'
print(str2[1])
print(str2[3])

print('====================')
str2 = r'\ta\u4e00bc\n123'
print(str2[2])
2.in 和not in

字符串1 in 字符串2 - 判断字符串2中是否包含字符串1(判断字符串1是否是字符串2的子串)

print('ab' in 'abc')  # True
print('a' in 'abc')  # True
print('ab' in 'acb')  # Flase


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值