跟老齐学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在windows和linux下获得本机本地ip地址方法小结
Mar 20 Python
Python基础篇之初识Python必看攻略
Jun 23 Python
Django网络框架之HelloDjango项目创建教程
Jun 06 Python
Python3.0 实现决策树算法的流程
Aug 08 Python
Django中自定义模型管理器(Manager)及方法
Sep 23 Python
Pytorch训练过程出现nan的解决方式
Jan 02 Python
Tensorflow 1.0之后模型文件、权重数值的读取方式
Feb 12 Python
Python递归函数特点及原理解析
Mar 04 Python
python 操作mysql数据中fetchone()和fetchall()方式
May 15 Python
Django Session和Cookie分别实现记住用户登录状态操作
Jul 02 Python
filter使用python3代码进行迭代元素的实例详解
Dec 03 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 FPDF类库应用实现代码
2009/03/20 PHP
php以fastCGI的方式运行时文件系统权限问题及解决方法
2015/05/11 PHP
PHP实现图片不变型裁剪及图片按比例裁剪的方法
2016/01/14 PHP
yii2.0实现创建简单widgets示例
2016/07/18 PHP
PHP怎样用正则抓取页面中的网址
2016/08/09 PHP
PHP编程文件处理类SplFileObject和SplFileInfo用法实例分析
2017/07/22 PHP
jQuery中文入门指南,翻译加实例,jQuery的起点教程
2007/02/09 Javascript
JQuery textlimit 显示用户输入的字符数 限制用户输入的字符数
2009/05/14 Javascript
JavaScript中的style.display属性操作
2013/03/27 Javascript
Bootstrap组件系列之福利篇几款好用的组件(推荐)
2016/06/23 Javascript
JS监听微信、支付宝等移动app及浏览器的返回、后退、上一页按钮的事件方法
2016/08/05 Javascript
微信小程序 弹窗自定义实例代码
2017/03/08 Javascript
require.js与bootstrap结合实现简单的页面登录和页面跳转功能
2017/05/12 Javascript
js实现音乐播放控制条
2017/09/09 Javascript
微信小程序表单验证form提交错误提示效果
2020/06/19 Javascript
Vuejs监听vuex中值的变化的方法示例
2018/12/02 Javascript
vue中组件的3种使用方式详解
2019/03/23 Javascript
electron-vue开发环境内存泄漏问题汇总
2019/10/10 Javascript
了不起的11个JavaScript代码重构最佳实践小结
2021/01/11 Javascript
Python中使用logging模块代替print(logging简明指南)
2014/07/09 Python
使用Python3+PyQT5+Pyserial 实现简单的串口工具方法
2019/02/13 Python
Python提取频域特征知识点浅析
2019/03/04 Python
Python生成词云的实现代码
2020/01/14 Python
Python关于__name__属性的含义和作用详解
2020/02/19 Python
django序列化时使用外键的真实值操作
2020/07/15 Python
纯CSS实现的大小渐变、渐远效果
2014/04/15 HTML / CSS
印尼穆斯林时尚购物网站:Hijabenka
2016/12/10 全球购物
Under Armour安德玛意大利官网:美国高端运动科技品牌
2020/01/16 全球购物
Cynthia Rowley官网:全球领先的生活方式品牌
2020/10/27 全球购物
Servlet面试题库
2015/07/18 面试题
竞聘副主任科员演讲稿
2014/01/11 职场文书
建筑设计学生的自我评价
2014/01/16 职场文书
作弊检讨书1000字
2014/02/01 职场文书
羽毛球社团活动总结
2014/06/27 职场文书
锦旗赠语
2015/06/23 职场文书
2019大学生暑期实习心得总结
2019/08/21 职场文书