【目录】
1.replace( )函数功能
2.replace( )函数的应用
3.replace( )函数的语法
4. 代码示例
4.1 替换单个字符
4.2 替换多个字符
4.3 指定替换次数
5. 课后练习
5.1 练习1
5.2 练习2
6. 课后练习
【正文】
1.replace( )函数功能
replace[rɪˈpleɪs]:替换、更换。
replace的中文意思是替换,更换。
replace是Python字符串对象的一个方法,作用是将字符串中指定的子串
替换为新的子串
。
【功能】将指定的子
字符串替换为新的字符串。
2.replace( )函数的应用
字符串替换操作在编程中非常常见,通常有以下几种情况:
修改字符串内容
当需要修改字符串中的某些内容,比如将一个单词替换为另一个单词,或者将一个字符替换为另一个字符。
数据清洗
在数据处理和文本处理中,经常需要对字符串进行清洗和规范化。例如,去除特殊字符、修正拼写错误、替换敏感词等操作都可以通过字符串替换来实现。
格式转换
有时候我们需要将字符串从一种格式转换为另一种格式。例如,将日期格式从"YYYY-MM-DD"转换为"MM/DD/YYYY",或者将数字格式从"1,000,000"转换为"1000000"等。字符串替换操作可以帮助我们实现这种格式转换。
动态生成字符串
在一些场景下,需要根据一些规则或者条件动态生成字符串。通过替换操作,我们可以将模板字符串中的占位符替换为具体的值,从而生成最终的字符串。
总之,字符串替换操作是一种非常常用的字符串处理方式,它可以帮助我们实现字符串内容的修改、数据清洗、格式转换和动态生成等功能。
3.replace( )函数的语法
【语法】
str.replace(old, new, count)
count[kaʊnt]:计数、点数。
replace( )函数由6部分组成:
1.str:要进行替换操作的字符串; 2.函数名: replace
3.英文小括号: ( )
4.old:需要被替换的 子
字符串;5.new:替换后的新字符串; 6.count(可选):指定替换次数,默认为全部替换。
4. 代码示例
4.1 替换单个字符
【代码示例1】
# 要操作的字符串对象
s = "Hello"
# 语法:str.replace(old, new, count)
# 这里没有加入count参数,默认为全部替换
# old = H,要替换的字符
# new = h,替换后的字符
# 作用:将字符串种的H字母替换为h
new_s = s.replace("H", "h")
print(new_s)
【终端输出】
hello
4.2 替换多个字符
目标任务:将‘Hello, World!’中的字母o
和字母l
全部替换为*
。
注意str.replace(old, new, count)
中的old数据类型只能是字符串。
【代码示例2】
# s是要操作的字符串对象
s = "Hello, World!"
# old要替换的子字符,这里要替换的是2个字符
# old数据类型为列表
# 列表里的元素为字符串
old = ['o', 'l']
# 替换后的新字符串
new = '*'
# 用for循环取值,依次替换字符
for i in old:
# 语法:str.replace(old, new, count)
# 第一次取值i='o',数据类型为字符串
# new = *
# 第1次替换将所有的字母o替换为字符*,替换后s=Hell*, W*rld!
# 第2次要操作的对象为新的s,即s=Hell*, W*rld!
# 第2次替换将所有的字母l替换为字符*,最终输出结果为He***, W*r*d!
s = s.replace(i, new)
print(s)
【终端输出】
He***, W*r*d!
目标任务:用自定义函数实现替换多个字符。
【代码示例3】
# def语句自定义一个函数
def get_char(s, old, new):
for i in old :
# 语法:str.replace(old, new, count)
# 这里的i就是要替换的字符,数据类型为字符串
# i = o时,将字符串中的所有o字母替换为*
# i = l是,将字符串中的所有l字母替换为*
s = s.replace(i, new)
return s
# 要操作的字符串对象
s = "Hello, World!"
# 要替换的字符
old= ['o', 'l']
# 替换后的新字符
new= '*'
# 调用函数语法:函数名(参数)
# get_char是函数名
# s old new是要传入的3个参数
# 依次传递给get_char函数中的s old new
new_string = get_char(s, old, new)
print(new_string) # 输出:Hell W*rld!
【终端输出】
He***, W*r*d!
【代码解析】
def get_char(s, old, new):
def
语句自定义一个名为get_char
的函数,它接收3个参数s、old和new。
for i in old :
# 语法:str.replace(old, new, count)
s = s.replace(i, new)
for循环遍历列表old中的每个字符。
使用replace()方法将字符串s中的所有i(for循环得到的字符)替换为new。
return s
循环结束后,返回最终替换完成的字符串s。
4.3 指定替换次数
【代码示例4】
# 原始字符串
string = "Hello, Hello, Hello, Hello!"
# 使用replace函数替换指定次数
# 语法:str.replace(old, new, count)
# old="Hello",要替换的字符串
# new="Hi",替换后的字符
# count=2表示只替换2次
# 第1次替换将第1个Hello替换为Hi
# 第2次替换将第2个Hello替换为Hi
# 替换2次,因此后2个Hello未做改变
new_string = string.replace("Hello", "Hi", 2)
# 输出结果
print(new_string)
【终端输出】
Hi, Hi, Hello, Hello!
5. 课后练习
【知识回顾】
5.1 练习1
编写一个程序,要求用户输入一个字符串,然后将字符串中的所有空格替换为下划线,并输出替换后的结果。
# def语句自定义一个函数
def get_char():
# 用input函数从终端输入一个要操作的字符串对象,并赋值给变量s
# 我输入的字符串为:hello word!
s = input("请输入一个包含空格的字符串:")
# 使用replace函数进行替换
# 语法:str.replace(old, new, count)
# old = " "
# new = "_"
# 作用是将字符串中的空格替换为小横线
new_s = s.replace(" ", "_")
print("替换后的结果为:", new_s)
# 调用函数语法:函数名(参数)
get_char()
【终端输出】
替换后的结果为: hello_word!
5.2 练习2
编写一个程序,要求用户输入一个字符串和两个子
字符串,然后将字符串中的第一个子
字符串替换为第二个子
字符串,并输出替换后的结果。
【代码示例】
# def语句自定义一个函数
# 函数名replace_substring:替换子字符串
# 参数名:string, old_substring, new_substring
def replace_substring(string, old_substring, new_substring):
# 使用replace函数进行替换
# 语法:str.replace(old, new, count)
# string要操作的字符串对象
# old = old_substring,要被替换的`子`字符串
# new = new_substring,替换后的新字符串
replaced_string = string.replace(old_substring, new_substring)
# 返回替换后的字符串
return replaced_string
# 获取用户输入
# 我终端输入的是2023年1月1日
string = input("请输入一个字符串:")
# 我终端输入的是2023
old_substring = input("请输入要替换的子字符串:")
# 我终端输入的是2024
new_substring = input("请输入替换后的子字符串:")
# 调用函数语法:函数名(参数)
result = replace_substring(string, old_substring, new_substring)
# 输出结果
print("替换后的结果为:", result)
【终端输出】
替换后的结果为: 2024年1月1日
6. 课后练习
提供一个名为105.txt
的文本,文本的内容如下:
Who's there?
FRANCISCO
Nay, answer me: stand, and unfold yourself.
BERNARDO
Long live the king!
FRANCISCO
Bernardo?
BERNARDO
He.
任务是用代码读取该文件,并将该文件中的所有标点符号替换为空格。
# file_path变量名,存储的是hamlet.txt文件的相对路径
file_path = "105.txt"
# 使用open函数打开文件
# 参数file_path传入的是文件路径
# 参数r是以只读模式打开文件
# 使用with语句可以确保文件在使用完后会被正确关闭
# 语法:open(file, mode='r', encoding='None', errors='None')
with open(file_path, "r") as f:
# 使用read方法读取文件的内容
text = f.read()
# in后面存储的文本中可能出现的字符
# 变量ch提取要替换的字符
for ch in "`!@#$%^&*():;''|/?><,.":
# 语法:str.replace(old, new, count)
# ch第一次提取到的符号为`,将文本中的所有`替换为空格
# 没有该字符则继续往下提取
# old = ch
# new = " "
text = text.replace(ch," ")
# 打印转换后的文本
print(text)
【终端输出】
Who s there
FRANCISCO
Nay answer me stand and unfold yourself
BERNARDO
Long live the king
FRANCISCO
Bernardo
BERNARDO
He