python学习——字符串的常用操作

Python 字符串是一种序列数据类型,用于存储和操作文本数据。以下是一些常用的字符串方法:

查找和替换

  • str.find(sub[, start[, end]]): 返回子字符串 sub 在字符串中第一次出现的位置,如果不存在则返回 -1
  • str.index(sub[, start[, end]]): 类似于 find,但如果子字符串不存在则抛出 ValueError
  • str.replace(old, new[, count]): 返回字符串的副本,所有 old 子串被替换为 new。可选参数 count 为替换次数。

判断字符串类型

  • str.isalnum(): 如果字符串至少有一个字符且所有字符都是字母或数字则返回 True
  • str.isalpha(): 如果字符串至少有一个字符且所有字符都是字母则返回 True
  • str.isdigit(): 如果字符串只包含数字则返回 True
  • str.islower(): 如果字符串至少有一个小写字符且所有字符都是小写则返回 True
  • str.isupper(): 如果字符串至少有一个大写字符且所有字符都是大写则返回 True
  • str.isspace(): 如果字符串只包含空白字符则返回 True

大小写转换

  • str.lower(): 返回字符串的小写副本。
  • str.upper(): 返回字符串的大写副本。
  • str.capitalize(): 返回字符串的副本,首字母大写,其余小写。
  • str.title(): 返回字符串的副本,每个单词的首字母大写。

字符串分割和拼接

  • str.split(sep=None, maxsplit=-1): 返回一个列表,由字符串根据 sep 分割成多个部分。
  • str.rsplit(sep=None, maxsplit=-1): 类似于 split,但是从右侧开始分割。
  • str.join(iterable): 返回一个字符串,由 iterable 中的字符串连接而成,str 为分隔符。

去除空白字符

  • str.strip([chars]): 返回字符串的副本,删除前导和尾随的 chars(默认为空白字符)。
  • str.lstrip([chars]): 类似于 strip,但只删除前导字符。
  • str.rstrip([chars]): 类似于 strip,但只删除尾随字符。

其他

  • str.startswith(prefix[, start[, end]]): 如果字符串以指定的 prefix 开始则返回 True
  • str.endswith(suffix[, start[, end]]): 如果字符串以指定的 suffix 结尾则返回 True
  • str.format(*args, **kwargs): 执行字符串格式化操作。
  • str.count(sub[, start[, end]]): 返回子字符串 sub 在字符串中出现的次数。
  • str.center(width[, fillchar]): 返回一个长度为 width 的字符串,原字符串居中,两侧由 fillchar 填充(默认为空格)。
    这些方法可以非常方便地处理和操作字符串,使文本处理任务变得更加简单。

实操

# 大小写转换
s1 = 'HelloWorld'
new_s2 = s1.lower()
print(s1, new_s2)


new_s3 = s1.upper()
print(new_s3)

# 字符串分割
e_mail = '123456@qq.com'
lst = e_mail.split('@')
print('邮箱名:', lst[0], '邮箱服务器域名:', lst[1])

# 统计次数
print(s1.count('o'))

# 检索操作
print(s1.find('o'))     # o在字符串s1中首次出现的位置
print(s1.find('p'))     # -1:没有找到

print(s1.index('o'))    # index也可以
# print(s1.index('p')) 但是找不到回报错

# 判断前缀和后缀
print(s1.startswith('H'))
print(s1.startswith('P'))

print('demo.py'.endswith('.py'))        # True
print('aaa.txt'.endswith('.txt'))       # True

实操2

s = 'HelloWorld'
# 字符串的替换
new_s = s.replace('o', '你好', 1)  # 最后一个参数是奇幻次数,默认全部替换
print(new_s)

# 字符串在指定的宽度范围内居中
print(s.center(20))
print(s.center(20, '-'))

# 去掉字符串左右的空格
s = '     Hello     World     '
print(s.strip())        # 去左右空格
print(s.lstrip())       # 去左空格
print(s.rstrip())       # 去右空格

# 去掉指定的字符
s3 = 'dl-HelloWorld'
print(s3.strip('ld'))   # 只要是包含ld的字符都被去掉,与顺序无关
print(s3.lstrip('ld'))  # 去左侧,包含ld的
print(s3.rstrip('ld'))  # 去右侧,包含ld的
### Python 字符串处理方法和函数 #### 字符串定义 字符串Python 中最常用的数据类型之一,它们可以用单引号或双引号来表示[^1]。 ```python single_quoted_string = 'Hello, world!' double_quoted_string = "Hello, universe!" ``` #### 基本字符串操作函数 ##### 拼接字符串 可以通过加号 `+` 来实现两个字符串的拼接: ```python greeting = "Hello" name = "Alice" message = greeting + ", " + name # 输出: Hello, Alice ``` ##### 分割字符串 使用 `split()` 函数可以根据指定分隔符将字符串分割成列表: ```python text = "apple,banana,cherry" fruits = text.split(",") # ['apple', 'banana', 'cherry'] ``` ##### 查找子串位置 利用 `find()` 或者 `index()` 可以找到某个子串首次出现的位置;如果找不到,则 `find()` 返回 `-1` 而 `index()` 抛出异常: ```python sentence = "Welcome to the jungle." position_find = sentence.find("jungle") # position_find=11 try: position_index = sentence.index("desert") except ValueError as e: print(e) # substring not found ``` ##### 替换子串 通过 `replace(old, new)` 将旧子串替换成新子串: ```python old_text = "I like cats and dogs." new_text = old_text.replace("cats", "rabbits") # I like rabbits and dogs. ``` ##### 大小写转换 支持多种大小写的转换方式,比如全部大写、首字母大写等: ```python lowercase = "hello".upper() # HELLO uppercase = "WORLD".lower() # world capitalized = "john doe".capitalize() # John doe titlecased = "john DOE".title() # John Doe ``` #### 特殊字符处理 ##### 去除空白字符 为了去除字符串两端多余的空格或其他空白字符,可以采用 `strip()` 方法。此方法会移除开头和结尾处所有的空白字符(包括空格、制表符 `\t` 和换行符 `\n`),但不会影响中间部分的任何空白字符[^2]。 ```python trimmed_string = ' hello there! '.strip() print(trimmed_string) # hello there! ``` #### 序列转字符串 当有一个由多个项组成的序列并希望将其组合成单一字符串时,可借助于 `join()` 方法。该方法接收一个迭代器作为参数,并用给定的分隔符把各个元素连在一起形成一个新的字符串对象[^3]。 ```python words_list = ["Python", "is", "awesome"] joined_sentence = "-".join(words_list) print(joined_sentence) # Python-is-awesome ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Qhumaing

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

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

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

打赏作者

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

抵扣说明:

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

余额充值