跟老齐学Python之玩转字符串(3)


Posted in Python onSeptember 14, 2014

字符串就是一个话题中心。

给字符串编号

在很多很多情况下,我们都要对字符串中的每个字符进行操作(具体看后面的内容),要准确进行操作,必须做的一个工作就是把字符进行编号。比如一个班里面有50名学生,如果这些学生都有学号,老师操作他们将简化很多。比如不用专门找每个人名字,直接通过学号知道谁有没有交作业。

在python中按照这样的顺序对字符串进行编号:从左边第一个开始是0号,向下依次按照整数增加,为1、2...,直到最后一个,在这个过程中,所有字符,包括空格,都进行变好。例如:

Hello,wor ld

对于这个字符串,从左向右的变好依次是:

0 1 2 3 4 5 6 7 8 9 10 11
H e l l o , w o r l d

在班级了,老师只要喊出学生的学号,自动有对应的学生站起来。在python里面如何把某个编号所对应的字符调出来呢?看代码:

>>> a = "Hello,wor ld"
>>> len(a)   #字符串的长度是12,说明公有12个字符,最后一个字符编号是11
12
>>> a[0]
'H'
>>> a[3]
'l'
>>> a[9]
' '
>>> a[11]
'd'
>>> a[5]
','

特别说明,编号是从左边开始,第一个是0。

能不能从右边开始编号呢?可以。这么人见人爱的python难道这点小要求都不满足吗?

>>> a[-1]
'd'
>>> a[11]
'd'
>>> a[-12]
'H'
>>> a[-3]
' '

看到了吗?如果从右边开始,第一个编号是-1,这样就跟从左边区分开了。也就是a[-1]和a[11]是指向同一个字符。

不管从左边开始还是从右边开始,都能准确找到某个字符。看官喜欢从哪边开始就从哪边开始,或者根据实际使用情况,需要从哪边开始就从哪边开始。

字符串截取

有了编号,不仅仅能够找出某个字符,还能在字符串中取出一部分来。比如,从“hello,wor ld”里面取出“llo”。可以这样操作

>>> a[2:5]
'llo'

这就是截取字符串的一部分,注意:所截取部分的第一个字符(l)对应的编号是(2),从这里开始;结束的字符是(o),对应编号是(4),但是结束的编号要增加1,不能是4,而是5.这样截取到的就是上面所要求的了。

试一试,怎么截取到",wor"

也就是说,截取a[n,m],其中n<m,得到的字符是从a[n]开始到a[m-1]

有几个比较特殊的

>>> a[:]  #表示截取全部
'Hello,wor ld'
>>> a[3:]  #表示从a[3]开始,一直到字符串的最后
'lo,wor ld'
>>> a[:4]  #表示从字符串开头一直到a[4]前结束
'Hell'

去掉字符串两头的空格

这个功能,在让用户输入一些信息的时候非常有用。有的朋友喜欢输入结束的时候敲击空格,比如让他输入自己的名字,输完了,他来个空格。有的则喜欢先加一个空格,总做的输入的第一个字前面应该空两个格。

好吧,这些空格是没用的。python考虑到有不少人可能有这个习惯,因此就帮助程序员把这些空格去掉。

方法是:

S.strip() 去掉字符串的左右空格
S.lstrip() 去掉字符串的左边空格
S.rstrip() 去掉字符串的右边空格
看官在看下面示例之前,请先自己用上面的内置函数,是否可以?

>>> b=" hello "
>>> b
' hello '
>>> b.strip()
'hello'
>>> b
' hello '
>>> b.lstrip()
'hello '
>>> b.rstrip()
' hello'

练习

学编程,必须做练习,通过练习熟悉各种情况下的使用。

下面共同做一个练习:输入用户名,计算机自动向这个用户打招呼。代码如下:

#coding:utf-8

print "please write your name:"
name=raw_input()
print "Hello,%s"%name

这段代码中的raw_input()的含义,就是要用户输入内容,所输入的内容是一个字符串。

其实,上面这段代码存在这改进的地方,比如,如果用户输入的是小写,是不是要将名字的首字母变成大写呢?如果有空格,是不是要去掉呢?等等。或许还有别的,看看能不能在这个练习中,将以前学习过的东西综合应用一下?

Python 相关文章推荐
布同自制Python函数帮助查询小工具
Mar 13 Python
Python实现的金山快盘的签到程序
Jan 17 Python
使用python获取CPU和内存信息的思路与实现(linux系统)
Jan 03 Python
win7 下搭建sublime的python开发环境的配置方法
Jun 18 Python
Python中除法使用的注意事项
Aug 21 Python
Python中循环后使用list.append()数据被覆盖问题的解决
Jul 01 Python
Python----数据预处理代码实例
Mar 20 Python
Python函数参数匹配模型通用规则keyword-only参数详解
Jun 10 Python
Python 类,property属性(简化属性的操作),@property,property()用法示例
Oct 12 Python
如何让PyQt5中QWebEngineView与JavaScript交互
Oct 21 Python
python爬虫爬取淘宝商品比价(附淘宝反爬虫机制解决小办法)
Dec 03 Python
python神经网络 使用Keras构建RNN训练
May 04 Python
跟老齐学Python之玩转字符串(2)
Sep 14 #Python
跟老齐学Python之玩转字符串(1)
Sep 14 #Python
跟老齐学Python之永远强大的函数
Sep 14 #Python
用Python实现QQ游戏大家来找茬辅助工具
Sep 14 #Python
跟老齐学Python之开始真正编程
Sep 12 #Python
跟老齐学Python之??碌某?? target=
Sep 12 #Python
跟老齐学Python之用Python计算
Sep 12 #Python
You might like
基于PHP异步执行的常用方式详解
2013/06/03 PHP
php使用qr生成二维码的示例分享
2014/01/20 PHP
ThinkPHP Where 条件中常用表达式示例(详解)
2017/03/31 PHP
老生常谈PHP数组函数array_merge(必看篇)
2017/05/25 PHP
javascritp实现input输入框相关限制用法
2007/06/29 Javascript
jQuery 在光标定位的地方插入文字的插件
2012/05/10 Javascript
javascript测试题练习代码
2012/10/10 Javascript
js移除事件 js绑定事件实例应用
2012/11/28 Javascript
IE中鼠标经过option触发mouseout的解决方法
2015/01/29 Javascript
jQuery使用prepend()方法在元素前添加内容用法实例
2015/03/26 Javascript
jquery仿百度百科底部浮动导航特效
2015/08/08 Javascript
javascript实现移动端上的触屏拖拽功能
2016/03/04 Javascript
JavaScript模拟鼠标右键菜单效果
2020/12/08 Javascript
JavaScript中的this使用详解
2016/07/27 Javascript
使用Ajax生成的Excel文件并下载的实例
2016/11/21 Javascript
详解jQuery uploadify文件上传插件的使用方法
2016/12/16 Javascript
JS图片预加载插件详解
2017/06/21 Javascript
详解Vue2.0配置mint-ui踩过的那些坑
2018/04/23 Javascript
手动下载Chrome并解决puppeteer无法使用问题
2018/11/12 Javascript
JavaScript this绑定过程深入详解
2018/12/07 Javascript
[01:27:30]LGD vs Newbee 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/19 DOTA
[01:33]完美世界DOTA2联赛PWL S3 集锦第二期
2020/12/21 DOTA
Python修改MP3文件的方法
2015/06/15 Python
bpython 功能强大的Python shell
2016/02/16 Python
Python合并字典键值并去除重复元素的实例
2016/12/18 Python
django的ORM模型的实现原理
2019/03/04 Python
python实现远程控制电脑
2019/05/23 Python
PyQt5的安装配置过程,将ui文件转为py文件后显示窗口的实例
2019/06/19 Python
python函数参数(必须参数、可变参数、关键字参数)
2019/08/16 Python
项目经理任命书范本
2014/06/05 职场文书
质量安全标语
2014/06/07 职场文书
会计专业自荐信范文
2019/05/22 职场文书
html5中sharedWorker实现多页面通信的示例代码
2021/05/07 Javascript
教你如何用Python实现人脸识别(含源代码)
2021/06/23 Python
Redis+AOP+自定义注解实现限流
2022/06/28 Redis
Sentry的安装、配置、使用教程(Sentry日志手机系统)
2022/07/23 Python