LLM系列:1.python入门:4.字符串型对象

字符串型对象

一. 字符串型对象的创建

1. 字符串的创建

字符串是 Python 中最常见的对象类型之一,凡是以双引号或单引号标注的文本,都是字符串(str)。

  • 使用双引号创建"Hello World!"
  • 使用单引号创建'Hello World!'

2. 字符串概念辨析

  • 字符串与数值1 是数值,"1" 是字符串。带引号的数值型对象也是字符串。
  • 字符串与变量名:不带引号的通常是变量名称(如 a),带引号的是字符串对象(如 "a")。变量名代入运算时,本质是该变量实际指代的对象在参与运算。
  • 字符串与函数print 是函数对象,"print" 是字符串对象。

3. 单引号与双引号的嵌套

核心在于如何创建内部包含引号的字符串:

  • 内含双引号:外部使用单引号标注,如 ' "Hello!" '
  • 内含单引号:外部使用双引号标注,如 "What's up"
  • 混合情况:使用转义符 \ 对内部引号进行转义,如 '\"What\'s Up?\"'

4. 字符串换行与转义

  • 三引号换行:使用 """..."""'''...''' 标注带有换行的字符串。
  • 转义符换行:使用 \n 代表换行。
  • 转义符理解\ 用于转换符号原有的意义。例如 \n 将字符 n 转义为换行,\' 将引号转义为普通字符。

5. 字符串基础操作符

  • 拼接 (+):加号可用于拼接两个字符串,如 "Hello" + "World"
  • 复制 (*):乘号可用于复制字符串,如 "Hello" * 2
  • 注意:操作符只能用于相同数据类型的对象,字符串不能直接与整数相加。

二. 字符串索引

1. 基础索引

  • 规则:基本格式为 字符串对象[索引值]。Python 索引从 0 开始计算。
  • 不可变性:字符串支持索引提取,但不支持通过索引赋值修改(如 a[1] = 'e' 会报错)。

2. 反向索引

从最后一个字符往前,索引值依次为 -1-2-3… 以此类推。

  • a[-1]:索引最后一个字符。

3. 字符串切片

  • 基本规则字符串[起始位置 : 结束位置 : 步长]
    • 当出现冒号时默认进行切片。
    • 左闭右开:包含起始位置,不包含结束位置。
    • 默认值:起始为0,结束为字符串长度,步长为1。
  • 正向切片
    • a[0:2]:取前两个字符。
    • a[::2]:每隔一个取一个(取奇数位)。
  • 反向切片
    • 步长为负数时(如 ::-1),表示从后往前索引。
    • 此时起始位置索引必须大于结束位置索引,否则返回空值。

三. 字符串的常用方法

所有对字符串的“修改”都会 返回一个新的字符串对象; 原字符串始终保持不变

1. 方法(Method)的概念

函数使用方式为 function(object),而方法的使用方式为 object.method()

2. replace 方法

用于替换字符串中的指定内容。

  • 特性不会修改原对象,而是返回一个新的对象。
  • 参数replace(旧内容, 新内容, 替换次数)。如果不指定次数,默认全部替换。
a = "Hallo"
# a中包含两个l,设置参数,替换第一个
a.replace("l", "a", 1)

3. find 方法

用于在指定区间内寻找确定字符串的索引值。

  • 返回值:找到返回第一次出现的下标索引值,找不到返回 -1
  • 参数find(字符, 起始索引, 结束索引)
# find方法可指定搜索范围,范围也是左闭右开;找到返回下标索引值,找不到返回-1
"Hello".find('l', 3, 5)

# 先切片后索引与先索引后切片
"Hello"[3: 5].find('l')

4. count 方法

用于计算指定索引区域内特定字符出现的次数。

  • 用法count(字符, 起始索引, 结束索引)
# 在索引区间[2, 3)中计算l出现的次数
"Hello".count('l', 2, 3)

5. split 方法

以指定字符为界切分字符串,并删除切分字符,返回列表。

# 两个连续字符作为切分依据时,将出现空字符
"Hello".split('l')		# ['He', '', 'o']

# 首字母或尾字母字符作为切分依据时,将出现空字符
"Hello".split('H')		# ['', 'ello']
"Hello".split('o')		# ['Hell', '']
  • 特殊情况
    • 两个连续字符作为切分依据时,会出现空字符。
    • 首字母或尾字母作为切分依据时,会出现空字符。

6. partition 方法

类似于 split,但有两点区别:

  • 保留分隔符:不会删除指定切分的元素。
  • 只切一次:只针对第一个出现的字符进行切分。
  • 返回值:返回一个包含3个元素的元组
# 以e为切分字符,切分字符串hello
"Hello".partition('e')		# ('H', 'e', 'llo')

# 切分字符出现多次时,只针对第一次出现位置字符进行切分
"Hello".partition('l')		# ('He', 'l', 'lo')

# 切分首、尾字符时仍然会出现空字符
"Hello".partition('H')		# ('', 'H', 'ello')
"Hello".partition('o')		# ('Hell', 'o', '')

7. upper & lower 方法

  • upper():将字符串所有字符转换为大写
  • lower():将字符串所有字符转换为小写

8. strip 方法

用于去除字符串首尾的指定字符。

  • 默认:参数为空时,默认删除首尾空格。
  • 指定strip('char') 删除首尾指定的字符,中间的字符不受影响。
# 删除指定字符
"HHelloH".strip('H')		#'ello'

# 只能删除首尾字符
"Hello".strip('e')			#'Hello'

9. join 方法

用于在指定字符串中间穿插其他字符串。

  • 用法"分隔符".join(对象)
" ".join("Hello") 结果为 `'H e l l o'`。

10. format 方法

主要用于格式化输出,实现自动填充。

  • 大括号对应"www.{}.com".format("baidu")
url = 'http://www.{}.com'
# 可实现针对大括号内进行字符串的自动填充
url.format('baidu')			#'http://www.baidu.com'
  • 数字对应"{0} {1}".format(val1, val2),利用索引控制填充位置。
# 多位置可利用数字进行自动填充
# 多位置可利用数字进行自动填充
text = '亲爱的{0},祝您{1}快乐,{2}'
text.format('荀先生', '春节', '万事如意')
  • 关键字对应"{name}".format(name="Li"),利用参数名进行填充。
text = '亲爱的{姓名},祝您{节日}快乐,{祝福语}'
text.format(节日 = '端午节', 姓名 = '李小姐', 祝福语 = '大吉大利')
# '亲爱的李小姐,祝您端午节快乐,大吉大利'
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值