Python基础语法学习7

集合

1.什么是集合

集合是容器型数据类型:将{}作为容器的标志,多个元素用逗号隔开:{元素1,元素1,元素1,…}
集合是可变的;无序的:
元素是不可变唯一

x = {}  # {}是空字典
y = set()  # 空集合
print(type(y), len(y))  # <class 'set'> 0
# 元素不可变
set1 = {12, "cc", (10, 20)}
# set1={12,"cc",[10,20]}  # TypeError: unhashable type: 'list'
# 元素是唯一的
set3 = {1, 2, 3, 5, 2, 3}
print(set3)  # {1, 2, 3, 5}
# 集合无序
print({1, 2} == {2, 1})  # True

2.集合的增删改查

(1)查 – 遍历

set4 = {1, 2, 3, 5, 6, 8}
for i in set4:
    print(i)  # 1 2 3 5 6 8

(2)增

set4 = {1, 2, 3, 5, 6, 8}
# a.集合.add(元素)  --  在集合中添加元素
set4.add(10)
print(set4)  # {1, 2, 3, 5, 6, 8, 10}
# b.集合.update(序列)  --  将序列中所有的元素添加到集合中
set4.update("abc")  # {1, 2, 3, 5, 6, 8, 10, 'c', 'b', 'a'}
print(set4)

(3)删
a.集合.remove(元素) – 删除指定元素(如果元素不存在会报错)

set4 = {1, 2, 3, 5, 6, 8}
set4.remove(5)
print(set4)  # {1, 2, 3, 6, 8}

b.集合.discard(元素) – 删除指定元素(如果元素不存在不会报错)

set4 = {1, 2, 3, 5, 6, 8}
set4.discard(6)
print(set4)  # {1, 2, 3, 5, 8}

(4)改 – 无法修改元素

3.数学集合运算

python中的集合支持数学的集合运算:子集(<,>,>=,<=),并集(|),交集(&),差集(-),对称差集(^)
(1)子集

print({10, 20, 30} > {1, 2})  # False(不是比较大小)
print({10, 20} > {10, 20})  # False
print({10, 20, 30} > {10, 20})  # True
# a.集合1>集合2  --  判断集合2是否是集合1的真子集
# b.集合1>=集合2  --  判断集合2是否是集合1的子集

(2)并集

set1 = {1, 2, 3}
set2 = {2, 3, 4, 5, 6}  # {1, 2, 3, 4, 5, 6}
print(set1 | set2)

(3)交集

print(set1 & set2)  # {2, 3}

(4)差集

print(set1 - set2)  # {1}
print(set2 - set1)  # {4, 5, 6}

(5)对称差集

print(set1 ^ set2)  # {1, 4, 5, 6}

字符串和字符

1.什么是字符串

字符串是容器型数据类型;以’‘或者"“或者”"""""或者’’’’’'作为容器的标志,里面的多个字符(任意符号)
不可变的(不支持增删改);有序的(支持下标操作)
字符串的元素:字符串的每个基本单元,字符(任何符号都可以)

# 字符串
# ''''''和""""""引起来的字符串可以直接敲回车换行
str1 = 'cc'
str2 = "cc44"
str3 = """fklgdkmfg"""
str4 = '''jkgfdkm'''
print(type(str1), type(str2), type(str3), type(str4))  # <class 'str'> <class 'str'> <class 'str'> <class 'str'>

2.字符

python没有字符对应的类型只有字符的概念
(1)普通字符:包含所有的符号,例如:数字,字母,中文,各种图形符号等
(2)转义字符:和\结合后具有特殊功能和特殊意义的字符,就是转义字符(转义字符不是python中的概念)
\n – 换行
\t – 一个水平制表符(相当于按一次tab键)
’ – 一个单引号
" – 一个双引号
\ – 一个反斜杠字符
意:任何一个转义字符的长度都是1

# \u4位的十六进制数  --  编码字符
str1 = "abc\ncc"
print(str1)
str2 = 'cc\'cc'  # cc'cc
print(str2)
str3 = "abc\\ncc"
print(str3)  # abc\ncc
str4 = "123\tcc"
print(str4)  # 123 cc
str5 = "cc\u4effabc"
print(str5)  # cc仿abc

3.阻止转义

python中在字符串的最前面加r/R,可以让这个字符串中所有的转义字符的功能消失

str7 = r"\t123\nabc\\cc\u4eaf"
print(str7)  # \t123\nabc\\cc\u4eaf
# str8="\u738B\u56FD\u8D85"  # cc
# print(str8)

字符编码

1.计算机数据存储

计算机在存储数据的时候,只能直接存储数字数据,而且以二进制的形式存储数字
位(bit)
1字节(byte) == 8位
1kb == 1024字节
1mb == 1024kb
1Gb == 1024mb
1T == 1024Gb

2.字符编码

(1)字符编码
为了能够让计算机存储字符,我们给每个字符关联一个具体的数字,在需要存储字符的时候就存储字符对应的数字;
每个字符对应的数字就是字符的编码值
(2)编码表
保存字符和数字一一对应关系的表就是字符编码表,常用的字符编码表有两种:ASCII表,Unicode编码表
a.ASCII码表:采用1个字节对128个字符进行编码,其中包括常用的英文符号,数字和字母。
其他数字的编码在字母的前面,大写字母的编码在小写编码的前面,大写字母和小写字母不连续
b.Unicode编码表:万国码,包含了世界上所有国家所有民族的所有语言的符号。前128个字符就是ASCII码表中的字符
其中中文的编码范围:4e00~9fa5
(1)编码字符:\u四位的十六进制数 (这儿的4位的16进制数就是字母的编码值)

str1="a\u0061"
print(str1)  # aa
print("\u4e00")  # 一
print("\u4e01")  # 丁

(2)chr函数

# chr(编码值)  --  获取编码值对应的字符
print(chr(97))  # a

# 练习:打印所有的汉字
for i in range(0x4e00,0x9fa6):
    print(chr(i),end=" ")

(3)ord函数

# ord(字符)  --  获取字符的编码值
print(hex(ord("超")))  # 0x8d85
# \u738B\u56FD\u8D85

字符串相关操作

1.获取字符

字符串获取字符和列表获取元素的方法一样
(1)获取单个字符

str1 = "人生苦短,我用Python!"
print(str1[5])  # 我

(2)切片

message = "曾经有一份真挚的爱情摆在我面前,我没有珍惜...."
print(message[1:])  # 经有一份真挚的爱情摆在我面前,我没有珍惜....
print(message[2:10:3])  # 有真爱
print(message[-10:-2:-1])  # ""

(3)遍历

# 练习1: 打印message2中每个字符的编码值
message2 = "你以为我以为就是你以为的"
for i in message2:
    print(i)

for i, j in enumerate(message2):
    print(hex(ord(j)), i, j)

# 练习2:统计message3中中文字符的个数
message3 = "how are you? 我很好! 你呢?"
count = 0
for i in message3:
    if 0x4e00 <= ord(i) <= 0x9fa5:
        count = count + 1
print(count)

加法和乘法运算

字符串1 + 字符串2 – 将两个字符串合并产生一个新的字符串
字符串 * N / N * 字符串 – 字符串重复N次产生一个新的字符串

3.比较运算>,<,>=,<=

两个字符串比较大小比较的是第一-对不相等 的字符的编码值大小
判断一个字符是否是小写字母:“a”<=x<=“z”
判断一个字符是否是大写字母: ‘A’ <= x <= ‘Z’
判断一个字符是否是字母: ‘a’ <= x <= ‘z’ or ‘A’ <= x <= ‘Z’
判断一个字符是否是数字字符: ‘0’ <= x <= ‘9’
判断一个字符是否是中文字符: ’ \u4e00’ <= x <= ‘\u9fa5’

print("abc" > "Adfuhio")  # True
print("阿123" > "a123")  # True

# 练习:取出字符串中所有的小写字母
str1 = "err154,sed亼156JJOIfs"
str2 = ""
str3 = ""
for i in str1:
    if "a" <= i <= "z":
        str2 = str2 + i
print(str2)  # errsedfs

# 练习2:将字符串中所有的小写字母转换成大写字母
for i in str1:
    if "a" <= i <= "z":
        i = chr(ord(i) - 32)
    str3 = str3 + i
print(str3)  # ERR154,SED亼156JJOIFS

4. in 和 not in

字符 in 字符串 – 判断字符串中是否有指定的字符
字符串1 in 字符串2 – 判断字符串2中是否包含字符串1

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值