学习总结week2_4

本文深入探讨了Python中的元组和字符串两种容器型数据。元组是不可变的有序集合,不支持增删改操作,而字符串同样不可变,且有序,支持多种编码和解码形式。文章介绍了元组的定义、解包以及字符串的转义字符、编码值和编码表。还讲解了字符串的基本操作,如查、加、乘以及如何比较字符串。通过实例展示了如何统计字符串中中文字符的个数和提取大写字母。
摘要由CSDN通过智能技术生成

python容器型数据–元组、字符串

一、元组(tuple)

容器型数据:()为标准,多个元素用,隔开
元组是不可变的(不支持增删改);有序的(支持下标操作)
元素没有要求
空元组() – 基本无意义,因为不可变

有一个元素的元组,在表示的时候,唯一元素的后面必须加逗号,

t1 = (10,)
print(type(t1), t1)

在没有歧义的情况下,元组的()可以省略(直接将多个数据用逗号隔开也是元组)

t2 = 10, 20, 30

解包 - 使用多个变量直接获取元组、列表中的多个元素

x, y, z = t2
print(x, y, z)

元组就是不可变的列表

二、字符串(str)

字符串是容器型数据类型(字符串对应的容器只能保存多个文字符号–字符)
‘’ “” 作为容器标准,里面的每个符号就是字符串中的每个元素
字符串不可变,所有可变操作都是在创建一个新的字符串;字符串有序(支持下标)
元素要求:引号中每个符号都是字符串的元素(任何文字符号都可以是字符串的元素),字符串的元素也叫字符
转义字符(符号在字符串中有特殊的功能或特殊意义,没有表示这个符号本身,比如\t), 普通字符(符号在字符串中表示它本身)

多行注释只有在特定的位置上才是注释

str1 = 'aM1,=-%函\t数笑♠'
print(str1)
1.转义字符

所有转义字符都是由\和另外一个或多个符号一起组合而成
有哪些是固定的转义字符:
\n - 换行
\t - 一个缩进(水平制表符)
\ - 表示一个普通的反斜线字符
’ - 表示一个普通的单引号
" - 表示一个普通的双引号

2.r字符串 - 在字符串引号前加r或者R

如果表示字符串的时候在字符串最前面加r/R,可以让字符串所有的转义字符功能消失

str1 = r'ab\n\\tc'
str2 = R'abd'
print(str1)
3.编码字符(所有的字符都可以表示乘编码字符)

\u四的十六进制数

str1 = '\u4e00'
print(str1)

补充: 16进制数

10进制数(life):由0~9组成的数字 - 直接表示

2进制数:由0,1组成:1011011
0b101101
8进制:由0~7组成:245,777
0o777
16进制数:由09和af(A~F)组成的数字:4e00, 9fa5
0xabc

4.字符编码

计算机存储数据只能存数字(只具备存储数字的能力)
为了能够让计算机保存文字信息,就给每一个文本符号对应一个固定的数字,每次在需要存储文本符号的,就存储这个符号对应的数字
这个数字就叫这个符号的编码值

a  ->  97
5.编码表 - 保存每个符号对应的编码值的表

1)ASCII编码表

2)Unicode编码表(python)
Unicode编码表包含ASCII编码表,也叫统一码,万国码,包含世界上所有国家,所有民族的所有语言的符号
中文编码:4e00~9fa5(16进制)

6.编码值的应用

1)chr(编码值)- 获取指定的编码值对应的字符
print(chr(97))
for x in range(0x4e00, 0x9fa5+1):
print(chr(x), end=’ ')

7…ord(字符)

获取指定字符对应的编码值(编码值以10进制的方式返回值)

注意: 字符 - 长度为1的字符串

print(ord('文'))
print(hex(25991)) # hex(数字) -   将数字表示为16进制

c1 = 'm'
print(chr(ord('m') - 32))

编码字符

在字符串中表示字符的方式有两种:直接提供字符,也可以提供一个编码字符
\u4位的16进制编码值

str1 = 'a一'
str2 = '\u0061\u4e00'
print(str1, str2)

比较两个字符串大小,比较的是第一对不相等字符的编码值的大小

print('abc' > 'Zadfwadaw')
8.字符串基本操作

1.查
字符串获取元素和列表获取元素的语法一模一样

message = 'hello'
print(message[0], message[4])
print(message[1:-1])
for x in message:
    print(x)
for index in range(len(message)):
    print(index, message[index])
for index, item in enumerate(message):
    print(index, item)

2.+、*

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

str1 = 'abc'
str2 = 'hello'
result = str1 + str2
print(result)       # 'abchello'

result = str1 * 3
print(result)       # 'abcabcabc'

3.in 和 not in 判断字符串1中是否包含字符串2

# 案例:统计str1中中文的个数
str1 = '换手机hss8223Kks是sjd==222'
count = 0
for x in str1:
    if '\u4e00' <= x <= '\u9fa5':
        count += 1
print(count)
# 案例:提取字符串中所有的大写字母
str2 = '涉及到MJk230023sjkU293shT=='
# 'MJUT'
for x in str2:
    if 'A' <= x <= 'Z':
        print(x, end=' ')
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值