1.28学习总结

一、元组

1.什么是元组

元组是容器(序列),将()作为容器的标志,里面多个元素用逗号隔开:(元素1,元素2,元素3)
不可变的(不支持增删改);有序的(支持下标)
元组就是不可变的列表。

t1 = (10, 20, True, '1234', [1, 2])
print(t1, type(t1))

2.查

列表获取元素的方法元组都支持

t2 = ('周一', '周二', '周三', '周四', '周五', '周六', '周天')
print(t2[1])            # 周二
print(t2[-1])           # 周天
print(t2[1:])           # ('周二', '周三', '周四', '周五', '周六', '周天')
print(t2[:4:-1])        # ('周天', '周六')

3.元祖特有或常用的一些操作

​ 1.只有一个元素的元组(必须在唯一元素后面加逗号)

t3 = (10)
print(t3, type(t3))         # 10 <class 'int'>

t4 = (10,)
print(t4, type(t4))         # (10,) <class 'tuple'>

​ 2.在没有歧义的情况下,元组的小括号可以省略(直接将多个元素用逗号隔开,也是一个元组

t5 = (10, 20, 30)
print(t5, type(t5))         # (10, 20, 30) <class 'tuple'>

t6 = 10, 20, 30
print(t6, type(t6))         # (10, 20, 30) <class 'tuple'>

​ 3.可以通过变量的个数和元组中的元素的个数保持一致,来获取元组的元素值

point = (12, 23)
print(point[0], point[1])       # 12 23

x, y = point        # 列表和元组都可以这样用,比较方便
print(x, y)         # 12 23

list1 = [10, 'hk']
x, y = list1
print(x, y)         # 10 hk

​ 4.带*的变量得到一个序列,其余变量依次对应元组里面的元素

t7 = ('小明', 31, 43, 432, 53, 90)
*x1, x2, x3 = t7
print(x1, x2, x3)       # ['小明', 31, 43, 432] 53 90
x1, *x2, x3 = t7
print(x1, x2, x3)       # 小明 [31, 43, 432, 53] 90

二、集合

1.什么是集合(set)

集合是容器,将{}作为容器的标志,里面多个元素用逗号隔开
{元素1,元素2,元素3}
可变,无序的(支持增删改,不支持下标)
元素要求:不可变的;唯一的

​ 1.空集合 x = {} --这是空字典,不是空集合

s1 = set()
print(type(s1), len(s1))

​ 2.元素不可变

s2 = {19, 'jkd', True, (1, 5)}      # {True, 'jkd', 19, (1, 5)}
print(s2)
# s3 = {19, 'jkd', True, [1, 5]}      # 报错,列表是有序的
# print(s3)

​ 3.元素唯一 去重操作

score = [89, 86, 89, 90, 90, 65, 56, 65]
new_scores = list(set(score))
print(new_scores)       # [65, 86, 56, 89, 90]

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

s1 = {1, 2, 3, 4, 5, 6, 7, 8}
s2 = {5, 6, 7, 8, 9}
# 交集(&)
result1 = s1 & s2
print(result1)
# 并集(|)
result2 = s1 | s2
print(result2)
# 差集(-)
result3 = s1 - s2       # 去掉s1中有s2中的数据
print(result3)          # {1, 2, 3, 4}
# 对称差集(^)           # 两个集合合并,再去掉公共部分
result4 = s1 ^ s2
print(result4)          # {1, 2, 3, 4, 9}

练习:

# 练习
# 3.用三个集合表示三门学科的选课学生姓名(一个学生可以同时选多门课)
#  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.
a = len(python | java | h5)
print(a)
# b.
b = (python - java) - h5
print(b, len(b))
# c.
c = (python ^ java ^ h5) - (python & java & h5)
print(c, len(c))
# d.
d = ((python & java) | (python & h5) | (java & h5)) ^ (python & java & h5)
print(d, len(d))
# e.
e = python & java & h5
print(e, len(e))

三、字符串

1.什么是字符串(str)

字符串还是容器(序列),将单引号、双引号、三个单引号、三个双引号,作为容器的标志
在引号中的每一个符号,成为字符串的每一个元素(又叫字符)
不可变(增删改):所有字符串相关的可变操作,都是在产生新的字符串,原字符串不变
有序的(支持下标)
字符串的元素(字符)

# ''和""没有区别
str1 = 'abc'
str2 = "abc"
# 引号之间的内容不能通过回车换行,不然报错,并且上述abc是相同的,地址是一样的
print(id(str1), id(str2))
str3 = '''abc'''
str4 = """abc
123456"""
# 引号之间的内容,可以通过回车换行,如果内容一样,地址也一样
print(str3, str4)

# 字符
"""
字符分为普通字符和转义字符
1)转义字符
反斜杠+特定的符号:(有特定的功能和意义)
\n(换行),\t(水平制表符。缩进,相当于tab键)
\'(表示一个单引号),\"(表示一个双引号)
\\(表示一个普通的反斜杠)
"""
# \u四位的十六进制编码值        --将编码值转换为对应的值
str5 = '\tabc\n123'
print(str5)

str6 = "abc'123"            # abc'123
print(str6)

str7 = 'ac\"n\'456'         # ac"n'456
print(str7)

str8 = 'acb\123'            # acbS
print(str8)

str9 = 'acb\\123'           # acb\123
print(str9)

四、字符编码

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

# 计算机智能直接存数字,所以为存字符,就每个字符对应一个数字,用于直接保存
# 字符对应的固定那个的数字,就是这个字符的编码值

2.编码表

# 字符和编码值一一对应关系表:ASCII码表和Unicode编码表
# 中文的范围:4e00 ~9fa5

3.编码值的使用

# 1) \u编码值(4位十六进制)
print('\u9e01')

# 2) chr(编码值)       -获取编码值对应的字符
# for x in range(0x4e00, 0x9fa5):
#     print(chr(x), end=' ')
#
# for x in range(0x2800, 0x28ff):
#     print(chr(x), end=' ')

# 3) ord(字符)    --获取字符的编码值(十进制返回)
print(ord('胡'), ord('亮'))
print(hex(ord('胡')), hex(ord('亮')))

# 4)字符串比较大小
# 比较第一对儿不相等的字符的编码值大小,之后不管。第一相同的就往后比较
print('abc' > 'ABCDE')      # True
print('aBc' > 'abCDE')      # False
"""
数字字符:'0' <= char <= '9'
大写字母:'A' <= char <= 'Z'
小写字母:'a' <= char <= 'z'
字母:'A' <= char <= 'Z' or 'a' <= char <= 'z'
中文:'\u4e00' <= char <= '\u9fa5'
"""
# 字符串获取字符和列表获取元素的方法一样
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值