006-python 之元组&字符串

本文详细介绍了Python中的元组和字符串数据类型,包括它们的定义、特点、操作方法(如字符串格式化、编码字符、常用方法等),以及如何进行字符处理和字符串操作。重点讲解了元组的不可变性质和字符串的转义字符、编码应用。
摘要由CSDN通过智能技术生成

元组

一、认识元组
1、元组tuple

元组是容器型数据类型;将()作为容器的标志,里面多个元素用逗号隔开︰(数据1,数据2,数据3,...)

元组是不可变的(不支持增删改);有序的(支持下标操作)

元素:没有要求

a. 元组可以为空

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

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

#空元祖
t1=()
# 只有一个元素的元组
t2=(10,)
# 省略括号()
t3=1,2,3
print(t3,type(t3),len(t3)) # (1, 2, 3) <class 'tuple'> 3

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

# 方法1
t4 = (10, 'a', '98')
print(t4[0], t4[1], t4[2])  # 10 a 98
# 方法2
x, y, z = t4
print(x, y, z)  # 10 a 98

e. 元组就是不可变的列表 不能增加删除修改

字符串

一、认识字符串
1、字符串

a.字符串是容器型数据类型(字符串对应的容器只能保存多个文字符号-字符),将''或者""作为字符串的标志。

b.字符串不可变(不支持增删改);字符串有序(支持下标)

c. 元素:引号中每个符号都是字符串的元素(任何文字符号都可以是字符串的元素),字符串的元素又叫字符
注意:字符串的元素(字符)分为两种:普通字符、转义字符

str1='abc'
str2="abc"
# 多行字符串
str3='''abc'''
str4="""abc"""

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

字符串不可变,所有可变的操作都是在创建对应的新的字符串

str1='abv'
new_str=str1.upper()
print(new_str) # ABV

字符串有序

print('abv'=='abc') # False
2、字符

字符:字符串中给每个独立的符号就是字符

2.1、转义字符

转义字符是由\和一个或者多个字符组合而成;在特定的字符前加上\,这个字符就具有特殊的功能或者特殊的意义

str1='\t'
print(str1)

常见的转义字符

\n\r\t\\\'\"
换行回车水平制表相当于tab键代表一个反斜线字符代表一个单引号代表一个双引号
str1='It\'s me!'
print(str1) # It's me!
2.2、r字符串

在字符串的引号前加R或者r

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

str2='\tabc\n123'
str3=r'\tabc\n123'
print(str2)
print(str3)
'''
	abc
123
\tabc\n123
'''
3、编码字符(所有的字符都可以表示成编码字符)
3.1

\u是四位的十六进制数

\xhh\0dd
1-2位十六进制数1-2位八进制数
\x61\071
2进制数8进制数10进制数16进制数
由0和1组成的数由0~7组成的数字由0~9组成的数由09和(af)A~F组成的数字
1001 1100345 72318 921f abc 4e00 0ff
3.2、字符编码

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

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

编码表:保存每个符号对应的编码值的表

(1)、ASCII码表

​ 总共有128个字符对应的编码值,主要包含:常用的英文符号,数字字符和字母

​ A-65 a-97

(2)、Unicode编码表(Python)

​ Unicode编码表中包含ASCII表

​ Unicode又叫万国码、统一码,它包含了师姐上所以有国家所有民族的所有语言的符号

​ 中文编码:4e00~9fa5

print(0x9fa5-0x4e00)  # 20901

(3)编码值的应用

chr(编码值) 获取指定编码值对应的字符

print(chr(97))
print(chr(0x4e00))
print(chr(0x9fa5))

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

注意 字符–长度为1 的字符串

print(ord('a'), ord('A'))  # 97 65
print(ord('婷'))  # 23159

(4)编码字符

在字符串中表示字符的方式有两种:直接提供字符,提供编码字符

str1='a'
str2='\u0061'
print(str1,str2) # a a
3、字符串的操作
3.1查

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

message='helloworld!'
print(message[0],message[2])  # h l
print(message[1:-1:2])  #elwol
for index,item in enumerate(message):
    print(index,item,end=' ') #0 h 1 e 2 l 3 l 4 o 5 w 6 o 7 r 8 l 9 d 10 !

3.2 +、*

字符串1+字符串2 将两个字符串合并,长生一个新的字符串

字符串*N 字符串重复N次产生一个新的字符串

3.3 in 和 not in

字符串1 in 字符串2 判断字符串2中是否包含字符串1

print('avsc' in 'afseeag') # False
4、字符串的相关方法
4.1、常用的方法:

字符串.join(序列) 将序列中的元素用指定的字符串拼接在一起形成一个新的字符串;序列中的元素也必须是字符串

list1=['a','b','后裔']
result=''.join(list1)
print(result) # ab后裔

如果需要join()的序列中的元素不是字符串,可以使用类型转换方法str()

nums=[1,2,3,4]
result=''.join([str(i) for i in nums])

字符串1.split(字符串2) 以字符串2为切割点对字符串1进行切割,返回多个切割列表;如果切割点连续多次出现,结果中会出现空字符串

字符串1.split(字符串2,N) 将字符串1中前N个字符串2作为切割点

str1='dvsafger,dfaew,efwaew,eter'
result=str1.split(',')
print(result) #['dvsafger', 'dfaew', 'efwaew', 'eter']

字符串1.replace(字符串2,字符串3) 将字符串1中所有的字符串2都替换成字符串3

字符串1.replace(字符串2,字符串3,N) 替换N次,替换前N个

str1='dvsafger,dfaew,efwaew,eter'
result=str1.replace('d','ABC')
print(result) # ABCvsafger,ABCfaew,efwaew,eter

字符串.strip() 删除字符串左右两端的空白字符

字符串.lstrip()

字符串.rstrip()

字符串1.center(字符串2)/rjust/ljust/zfill

str1='abc'
print(str1.center(7,'+')) # ++abc++
print(str1.rjust(7,'-')) # ----abc
print(str1.ljust(7,'*')) # abc****
print(str1.zfill(7)) # 0000abc

字符串1.count(字符串2) 统计字符串1中字符串2出现的次数

字符串1.find(字符串2) 获取字符串1中字符串2第一次出现的位置(以0开始的下标值返回);找不到字符串2则返回-1

字符串1.find(字符串2,开始下标,结束下标) 获取字符串1中指定范围内字符串2第一次出现的位置

字符串1.index(字符串2) 获取字符串1中字符串2第一次出现的位置(以0开始的下标值返回);找不到字符串2则报错

字符串1.index(字符串2,开始下标,结束下标)

str1='abdsawe32434c'
print(str1.find('sa')) # 3
print(str1.index('we')) # 5

字符.isdight() 判断字符串是否是数字字符

字符.isupper()/lower() 判断字符是否是大小写字母

maketrans,translate()

str1='32451'
table=str.maketrans('1234567890','一二三四五六七八九零')
# 根据映射表的对应关系替换成字符串的相关字符
result=str1.translate(table)
print(result)

字符串1.endswith(字符串2) 判断字符串1是否以字符串2结尾,是则返回True,不是则返回False

str4='abc231ab'
str_4=input('请输入字符串:') # ab
print(str4.endswith(str_4)) # True
5、字符串格式化
5.1、字符串拼接+
age=int(input('年龄:'))
message='小明'+'今年'+str(age)+'岁'
print(message)
5.2、格式字符串

包含一个或者多个格式占位符的字符串%(数据1,数据2,数据3,....)

%s :可以给任何类型数据占位(字符串占位符)

%d :只能给数字数据占位(整数占位符)

%f :只能给数字数据占位(浮点数占位符)

%.Nf :只能给数字数据占位(保留N位小数)

name='小明'
age=18
message='%s今年%d岁!'%(name,age)
print(message) # 小明今年18岁!
print('%.2f'%(2.324354)) # 2.32
5.3、f-string

如果在字符串的最外面加上了f,就可以往字符串中通过{}来给字符串提供内容:{表达式} 表达式的结果就是对应的字符串内容

name='小明'
age=18
str1=f'{name}今年{age}岁'
print(str1)  #  姓名:小明今年18岁

f-string的参数:{提供数据的表达式:参数}

a.控制小数位数

money=2344
result=f'余额:{money:.2f}'
print(result) # 余额:2344.00
num=3.3244
result=f'个数:{num:.0f}'
print(result) #个数:3

b.千位符分割

money=23447809
result=f'余额:{money:,}'
print(result) # 余额:23,447,809
result1=f'余额:{money:,.2f}'
print(result1)  # 余额:23,447,809.00

c. 百分数

num=0.83
result=f'百分数:{num:%}'
result1=f'百分数:{num:.2%}'
print(result,result1)  # 百分数:83.000000% 百分数:83.00%

d. 控制填充长度

num=3
result=f'{num:0>3}'
result1=f'{num:0<3}'
result2=f'{num:0^3}'
print(result,result1,result2) # 003 300 030
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qq_44087994

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值