Python Cookbook 第二版 汉化版 [Recipe 1.5] 去除字符串末尾的空格

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

Recipe 1.5. Trimming Space from the Ends of a String
Recipe 1.5. 去除字符串末尾的空格

Credit: Luther Blissett


问题

用户输入的字符串中,头尾可能带有空格,而您在处理字符串时,并不需要这些空格。


解法

字符串对象的 lstrip, rstrip, strip 方法正是为解决此问题而设。每个方法都可不接收参数,返回的是去掉了头尾空格的字符串:

>>> x = '    hej   '
>>> print '|', x.lstrip( ), '|', x.rstrip( ), '|', x.strip( ), '|'
| hej    |     hej | hej |


讨论

如 Recipe 1.4 所展示,您可能会须要在字符串两端填入空格,以便让字符串在一块显示区域内实现居左、居右、居中对齐;同样,您也可能须要去除字符串两端的空格(空格符、Tabs、新行符,等等)。由于这种需求常有发生,因此 Python 字符串对象的诸多方法当中,有三个方法专为实现此功能而设。除了去除两端的空格之外,三个方法都有一个可选的参数,用来指定所有您希望从字符串两端去除的字符:

>>> x = 'xyxxyy hejyx  yyx'
>>> print '|'+x.strip('xy')+'|' # 译注: 此处使用 x.strip('yx') 效果相同
| hejyx  |

注意上例,字符串中的空格被留了下来,被空格所包围的 'yx' 也被保留:只有字符串两端的 'x' 'y' 被去除掉了。


请参见

Library Reference 关于字符串方法的章节;本书 Recipe 1.4;Java Cookbook recipe 3.12 。 

从AES解密到PLC逆向:一文掌握通信加密与解密的核心原理与实战 加密与解密是现代信息安全的核心技术,其本质是通过特定算法和密钥,将可读的明文转换为不可读的密文,或反向还原的过程。从原理上可分为对称加密(如AES、SM4)和非对称加密(如RSA、ECC),前者加解密使用同一密钥,效率高;后者使用公钥和私钥配对,解决了密钥分发难题。哈希函数(如SHA-256、SM3)则提供单向的完整性校验。这些技术共同构成了数字信任的基石,广泛应用于网络通信(HTTPS/TLS)、数据存储、身份认证和软件保护等场景。针对日常遇到的具体问题,如微信DAT文件恢复、PDF密码移除或Nacos配 阅读详情

相关推荐

Python Cookbook 第二 汉化版 [Recipe 1.4] 对齐字符串

Recipe 1.4. Aligning StringsRecipe 1.4. 对齐字符串Credit: Luther Blissett 问题您想按照居左、居右、居中的方式来摆放字符串。解法字符串对象的 ljust, rjust, center 方法正是为此而准备的。每个方法都接收单个实参,用来指明操作结果中字符串的宽度;方法的返回结果是个字符串,其中包含了原来的字符串以及追加

方舟 K ][ N G of A R K 2666

Recipe 1.12. Controlling Case(Python Cookbook)

capitalize1>>>'onetWothrEe'.capitalize()2'Onetwothree'3>>>'hellosunshine'.title()4'HelloSunshine'5>>>"abc".upper()6'ABC'7>>>"RAY".lower()8...

weixin_30950887的博客 121

Python Cookbook 第二 汉化版 [Recipe 1.1] 逐个处理字符串中的各个字符

Recipe 1.1. Processing a String One Character at a TimeRecipe 1.1. 逐个处理字符串中的各个字符Credit: Luther Blissett[问题]您想逐个处理字符串中的各个字符。[解法]您可以构建一个列表,其中每个元素存放一个字符串中的字符(由于 Python 中没有用来表示单个“字符”的类型,因此列表的每个元

方舟 K ][ N G of A R K 2465

Recipe 1.10. Filtering a String for a Set of Characters(Python Cookbook)

1>>>importstring2>>>allchars=string.maketrans('','')3>>>defmakefilter(keep):4delchars=allchars.translate(allchars,keep)5defthefilter(s):6...

weixin_30367873的博客 109

Recipe 1.5. Trimming Space from the Ends of a String(Python Cookbook)

1>>>x='hej'2>>>print'|',x.lstrip(),'|',x.rstrip(),'|',x.strip(),'|'3|hej|hej|hej|4>>>x='xyxxyyhejyxyyx'5>>>print'|'+x...

weixin_30386713的博客 74

Recipe 1.6. Combining Strings(Python Cookbook)

string1>>>importoperator2>>>pieces=['a','b','c']3>>>largestring=reduce(operator.add,pieces)4>>>largestring5'abc'6>>>faststring='...

weixin_30721899的博客 103

Recipe 1.4. Aligning Strings(Python Cookbook)

align1>>>print'|','hej'.ljust(20),'|','hej'.rjust(20),'|','hej'.center(20),'|'2|hej|hej|hej|3>>>print'hej'.cente...

weixin_30739595的博客 90

Chef Cookbook在Ubuntu上的声明式配置管理实战

声明式配置管理是现代基础设施自动化的核心范式,其原理在于通过可本化、可验证的代码定义系统期望状态,而非编写执行脚本。技术价值在于消除配置漂移、保障多环境一致性,并支持自动合规校验与快速回滚。典型应用场景包括Ubuntu服务器集群的Nginx部署、Docker运行时加固、UFW防火墙策略统一管控及系统级调优(如journald日志限制、systemd资源约束)。本文聚焦Chef Cookbooks如何深度适配Ubuntu 22.04发行特性——从metadata.rb的平台约束、attributes的de

weixin_34197488的博客 520

Recipe 1.8. Checking Whether a String Contains a Set of Characters(Python Cookbook)

maketrans 1>>>intab="aeiou" 2>>>outtab="12345" 3>>>fromstringimportmaketrans 4>>>trantab=maketrans(intab,outtab) 5>>>s="thisi...

weixin_30920091的博客 132

Recipe 1.1. Processing a String One Character at a Time(Python Cookbook)

set 1>>>importsets 2>>>magic_chars=sets.set('abracadabra') 3>>>magic_chars=sets.Set('abracadabra') 4>>>poppins_chars=sets.Set('supercalifragili...

weixin_30825199的博客 115

Recipe 1.11. Checking Whether a String Is Text or Binary(Python Cookbook)

1>>>from__future__importdivision2>>>importstring3>>>text_chars="".join(map(chr,range(32,127)))+"\n\r\b\b"4>>>_null_trans=string.maketrans('',...

weixin_30719711的博客 129

Recipe 1.7. Reversing a String by Words or Characters(Python Cookbook)

reverse1>>>astring="helloray"2>>>revwords=astring.split()3>>>revwords4['hello','ray']5>>>revwords.reverse()6>>>revwords7['ray','h...

weixin_30906425的博客 115

Recipe 1.3. Testing Whether an Object Is String-like(Python Cookbook)

isAString1>>>defisAString(anobj):2returnisinstance(anobj,basestring)34>>>a="hello"5>>>isAString(a)6True7>>>b='t'8>>>isAStri...

weixin_30725315的博客 94

Recipe 1.2. Converting Between Characters and Numeric Codes(Python Cookbook)

1>>>printord('a')2973>>>printchr(65)4A5>>>printunichr(8224)6†7>>>printrepr(unichr(8224))8u'\u2020'9>>>printord(u'\u2020')10822...

weixin_30477293的博客 109

Python学习路径规划:从入门到精通的三大经典书籍指南

在编程学习过程中,选择合适的教材是构建扎实知识体系的关键一步。Python作为一门语法简洁、应用广泛的高级编程语言,其学习路径通常遵循从基础语法掌握到高级特性理解,再到工程实践应用的递进逻辑。理解Python的核心设计哲学和数据结构原理,能够帮助开发者编写出更高效、更优雅的代码,这是提升技术价值的重要体现。在实际应用场景中,无论是数据分析、Web开发还是自动化脚本,都需要将语言特性与具体问题解决方案相结合。本文围绕Python学习这一核心主题,结合**学习路径**和**实战项目**两个关键维度,系统分析了三

weixin_30294295的博客 323

Python面向对象全面分析

Python面向对象核心:类定义属性与方法,对象为实例;支持继承、方法重写、类/实例变量等。内置类属性如__dict__等;对象销毁依赖引用计数与垃圾回收。继承时需注意构造方法调用及查找顺序;私有属性经名称修饰防止覆盖。

2403_87085642的博客 209
上一篇: Python Cookbook 第二版 汉化版 [Recipe 1.4] 对齐字符串
下一篇: Python Cookbook 第二版 汉化版 [Recipe 1.6] 字符串的组合
kingofark
博客等级 码龄26年 330粉丝 134原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值