Python——第二章:替换和切割
strip()
用法:
.strip()
是字符串方法之一,在 Python 中用于移除字符串开头和结尾的空白字符(包括空格、制表符 \t、换行符\n等)。这个方法返回一个新的字符串,原始字符串本身不会被修改。
下面是 .strip()
方法的用法示例:
s = " 你好, 我叫 周杰伦 "
s1 = s.strip()
print(s1) #输出:"你好, 我叫 周杰伦"
需要注意的是,.strip()
方法只会移除开头和结尾的空白字符,中间部分的空白字符不会受到影响。如果你想移除字符串中间的空白字符,可以使用其他方法,比如 .replace(" ", "")
。
典型案例:当用户输入admin+空格的时候,不再会出现登录失败的提示。
username = input("请输入用户名:").strip()
password = input("请输入密码:").strip()
if username == "admin":
if password == "123456":
print("登录成功")
else:
print("登录失败!")
else:
print("登录失败!")
replace(old, new) 字符串替换
.replace()
是字符串方法之一,在 Python 中用于在字符串中查找并替换指定的子字符串。这个方法返回一个新的字符串,原始字符串本身不会被修改。
string = "Hello, World!"
new_string = string.replace("Hello", "Hi")
print(string) # 输出: "Hello, World!"
print(new_string) # 输出: "Hi, World!"
需要注意的是,.replace()
方法只会替换所有匹配的子字符串。如果你只想替换第一个匹配的子字符串,可以使用 .replace("Hello", "Hi", 1)
,其中的 1
表示只替换第一个匹配。
a = "hello i am a good man!"
a1 = a.replace(" ", "") # 去掉所有的空格
print(a1) #输出:"helloiamagoodman!"
.split()
是字符串方法之一,在 Python 中用于将字符串按照指定的分隔符拆分成一个列表(或数组)的子字符串。这个方法返回一个包含拆分后子字符串的列表。
split(用什么切割) 字符串切割, 用什么切, 就会损失掉谁
a = "python_java_c_c#_javascript"
lst = a.split("_") # 切割之后的结果会放在列表当中
print(lst) #这会得到 lst 列表:['python', 'java', 'c', 'c#', 'javascript']
lst = a.split("_java_")
print(lst) #这会得到 lst 列表:['python', 'c_c#_javascript']
情看最后这个案例和分析过程
string = "Hello\tworld!\nThis is an example."
new_string =string.replace(" ", "_").replace("\t", "_").replace("\n", "_")
print(new_string) #输出:"Hello_world!_This_is_an_example."
string = "Hello\tworld!\nThis is an example."
这行代码定义了一个名为string
的字符串变量,并初始化为"Hello\tworld!\nThis is an example."
。其中,\t
表示制表符,\n
表示换行符。new_string = string.replace(" ", "_")
在这行代码中,首先使用.replace()
方法将字符串中的空格替换为下划线_
,并将结果赋值给new_string
变量。此时,new_string
变量的值是"Hello_world!\nThis_is_an_example."
。new_string = new_string.replace("\t", "_")
在这行代码中,继续使用.replace()
方法将字符串中的制表符\t
替换为下划线_
,并将结果再次赋值给new_string
变量。现在,new_string
变量的值是"Hello_world!\nThis_is_an_example."
,因为原始字符串中并没有制表符。new_string = new_string.replace("\n", "_")
最后,继续使用.replace()
方法将字符串中的换行符\n
替换为下划线_
,并将结果再次赋值给new_string
变量。现在,new_string
变量的值变为"Hello_world!_This_is_an_example."
。print(new_string)
最后,打印输出经过多次替换后的new_string
变量的值。输出结果为"Hello_world!_This_is_an_example."
。
所以,最终的输出就是经过替换处理后的字符串。这段代码的目的是将原始字符串中的空格、制表符和换行符都替换为下划线 _
。
string = " Hello\tworld!\nThis is an example. "
# 使用 .strip() 方法移除开头和结尾的空白字符,并使用 .replace() 方法将制表符\t和换行符\n替换为空格
cleaned_string = string.strip().replace("\t", " ").replace("\n", " ")
print(cleaned_string) #输出:"Hello world! This is an example."
引入正则表达式处理极端复杂字符
import re
string = " Hello\tworld!\nThis is an example. "
# 使用正则表达式替换多个连续的空白字符为单个空格,并使用 .strip() 方法移除开头和结尾的空格
cleaned_string = re.sub(r'\s+', ' ', string).strip()
print(cleaned_string)
解读表达式:re.sub(r'\s+', ' ', string)
。
re
:这是 Python 内置的正则表达式模块,用于处理字符串匹配和替换。sub
:这是re
模块中的一个函数,用于执行正则表达式替换操作。r'\s+'
:这是一个正则表达式模式,包含了以下几个部分:r
:这是一个前缀,表示字符串是原始字符串,其中的转义字符保持不变。\s
:这是一个特殊的正则表达式符号,匹配任何空白字符,包括空格、制表符、换行符等。+
:这是一个量词,表示匹配前面的元素一次或多次,即匹配一个或多个连续的空白字符。
' '
:这是替换字符串,表示将匹配到的多个连续空白字符替换为单个空格。string
:这是要进行正则表达式替换的原始字符串。
因此,整个表达式 re.sub(r'\s+', ' ', string)
的意思是:在字符串 string
中,查找所有连续的空白字符(包括空格、制表符、换行符等),并将它们替换为单个空格。这可以帮助你将多个连续的空白字符合并为一个空格,从而得到更加规范的字符串。
.join()
用法:与.split()
相反,把列表里的值用特殊符号连接成字符串。这里"_"
的_
就是连接符。“”内可以为空。
a = "python_java_c_c#_javascript"
lst = a.split("_") # 切割之后的结果会放在列表当中
print(lst) #这会得到 lst 列表:['python', 'java', 'c', 'c#', 'javascript']
lst = ['赵本山', '王大拿', '大张伟', '马大哈']
# 用_把上面的人的名字连起来
s = "_".join(lst)
print(s) #结果:赵本山_王大拿_大张伟_马大哈
s = "".join(lst)
print(s) #结果:赵本山王大拿大张伟马大哈
Python——第二章:替换和切割的更多相关文章
- 简学Python第二章__巧学数据结构文件操作
#cnblogs_post_body h2 { background: linear-gradient(to bottom, #18c0ff 0%,#0c7eff 100%); color: #fff ...
- Python 第二章-列表和元组
第二章-列表和元组 2.0 在Python中,最基本的数据结构是序列(sequence).序列中的每个元素被分配一个序列号-即元素的位置, 也称为索引.第一个索引是0,第二个是1,以此类推. ...
- 【原创】Python第二章——字符串
字符串是一个字符序列,(提醒:序列是Python的一个重要的关键词),其中存放UNICODE字符.Python中的字符串是不可变的(immutable),即对字符串执行操作时,总是产生一个新的字符串而 ...
- 【原创】Python第二章——行与缩进
Python的基本组成——逻辑行和缩进 a="我是一个物理行" a="""我是一个逻辑行 因为我一条语句便跨越了2个物理行""&q ...
- python第二章:控制流
变成实际上是一个过程的提现,每个过程都是有多个流程块组成. 比如:判断是否下雨的过程 1.布尔值 在第一章最后举例了比较操作后,最终返回的结果 True or False True 和 False是一 ...
- 【原创】Python第二章——标识符命名规则
在Python中,一切都是对象,包括常量数据类型,如整数数据类型(1,2,3...),字符串数据类型("ABC").想要使用这些对象,就要使用它的对象引用.赋值操作符,实际上是使得 ...
- python第二章:数据类型--小白博客
标准数据类型 Python3 中有六个标准的数据类型: Number(数字) String(字符串) List(列表) Tuple(元组) Set(集合) Dictionary(字典) Python3 ...
- Python第二章-变量和数据类型
变量和数据类型 一.什么是变量,常量 思考:程序执行指的是什么? 对数据进行存储处理和计算,最终获得结果,这是程序执行的本质. 变量的概念和在数学中的变量的概念一样的,只是在计算机程序中,变量不仅可以 ...
- machine learn in python 第二章2.1.1
1大约 sklearn.datasets from sklearn.datasets import load_iris import numpy as np data = load_iris() da ...
- Python第二章(北理国家精品课 嵩天等)
一.深入理解Python语言 语法简洁 >13万第三方库 二.Python蟒蛇绘制 #PythonDraw.py import turtle turtle.setup(650,350,200,2 ...
随机推荐
- 关于oop的一点回忆
昨天在一个程序员行业群里看到别人发了一条消息, 大意是:要做好封装啦,不要随便用public啦,不要随便改别人代码啦. 说的好像就是我,因为,我这辈子最后悔的一件事情之一就是手贱改动别人代码. 那大概 ...
- ERROR: nginx-1.22.1 installation failed.
libraries. You can either do not enable the module or install the libraries.make: *** No rule to mak ...
- 实现脚本自动部署docker
前言: 使用场景是 我这边的一个单体项目需要多一个多副本的部署方式,一直输入重复命令我实在是嫌烦了,使用写了一个脚本来一键更新部署上去.jar包都是我手动上传的,没有把包传入公网库里. 之所以记录就是 ...
- OpenResty入门之压测篇:压测工具界的 “悍马” wrk 审核中
在上篇文章 每个后端都应该了解的 OpenResty 入门以及网关安全实战 中,我向大家介绍了 OpenResty 的入门使用是 WAF 防御实战,这篇文章将给大家继续介绍 OpenResty 入门之 ...
- Go语言代码断行规则详解
本文深入探讨了Go语言中代码断行的各个方面,从基础概念到实际应用实践. 关注[TechLeadCloud],分享互联网架构.云服务技术的全维度知识.作者拥有10+年互联网服务架构.AI产品研发经验.团 ...
- 关于IP我们需要知道的
IP 在这个数字世界中,互联网已成为我们生活的一部分.而在互联网的背后,网络知识如同一张巨大的蜘蛛网,将我们与世界各地的信息紧密联系在一起.其中,IP这个看似平凡的名词,却是支撑这个虚拟世界的重要基石 ...
- nodejs修改npm包安装位置
适用于非个人电脑.便携使用 npm config set cache D:\nodejs\node_cache npm config set prefix D:\nodejs npm config s ...
- RLChina2022公开课-博弈论
纯博弈: 单纯的动机组合,离散的集合 混合博弈: 加入了概率论,以百分比的概率执行不同的的动机.,概率分布 零和博弈.合作博弈.协同博弈 扩展博弈和非完美信息 扩展博弈.贝叶斯博弈 纳什均衡 任何一位 ...
- ensp小实验——浮动路由
依靠优先级来保证多路径的连通性. #AR1中<Huawei>u t m<Huawei>sys[Huawei]sys r1[r1]int g0/0/1 [r1-GigabitEt ...
- Net 高级调试之五:如何在托管函数上设置断点
一.简介 今天是<Net 高级调试>的第五篇文章.今天这篇文章开始介绍如何在托管方法和非托管方法设置断点,我们要想调试程序,必须掌握调试的一些命令,动态调试的命令,我们在上一篇文章已经讲过 ...