8288分类目录 8288分类目录 8288分类目录
  当前位置:海洋目录网 » 站长资讯 » 站长资讯 » 文章详细 订阅RssFeed

python基础3-字符串操作

来源:本站原创 浏览:79次 时间:2022-08-28

上一篇我们介绍了Python的安装和基本的数字类型,从这篇开始我们学习几个python核心的序列类型,我们先从字符串开始,在开始前我先给大家纠正一个关于编程学习的误区,就是可能很多人认为程序员非常擅长数学,数学不好的人估计很难学好编程,所以有的人还没开始就放弃了,就我个人感觉,在某些领域的编程数学肯定是很重要,但对一般我们日常需求还远没有到离开数学就无法编程的地步,当然这是我的想法,所以为了验证我自己的想法,我特意采访了我们公司大概10几位程序员,他们编程时间最短的2年,最长的大概有10年,其中还有一位数学本科生,他们给出的答案基本相似,包括那位数据专业毕业的同事,说他们现在编程根本用不到什么数学知识,编程内容主要还是处理业务逻辑,所以基本可以看出,学好数学不是学好编程的必要条件,但编程需要逻辑思维,那什么是逻辑思维?说白了就是做事的先后顺序,这个我们每个人都会,比如你有5件事要从,编号从1到5,最简单的一种是你从第一件事开始一个一个做,做完这5件事,但有时候并不能按照我们意愿来,比如你完成了第一件事,突然来个电话,你不得不放弃做现在的事,等接完电话在继续,又或者某件事跟另一件事有某种关联,你不得不完成第三件事才能继续第二件事,总之就是事件完成要有先有后,并能等待某个事件处理完毕后继续进行处理,这就是编程中的逻辑,好吧说了这么多解释这件事就是希望每个人不要轻易放弃,大胆学习编程吧,它没有你想想的难,每个人都可以学会。

上一段我们花了大段篇幅解释了数学和编程的关系,那既然日常编程中碰不到大量的数学问题,那都在处理什么,这就要到我们的正题了,其实大部分程序员编程中很多代码都在处理字符串,在Python中操作字符串非常的方便,让我们开始吧:

1、单引号,双引号,三引号字符串

在Python中我们可能看到对字符串有的人用双引号来括起来,有的用单引号括起来,他们有什么不同吗?答案是它们没有区别,那为什么要用到双引号呢,因为如果一个字符串中已经有单引号了,在最外层就必须要用双引号,否则就会报错,如下:

>>> 'Let's go!'

  File "<stdin>", line 1

    'Let's go!'

         ^

SyntaxError: invalid syntax

>>> "Let's go!" 

"Let's go!"


那三引号的作用是做什么的呢?三引号是用来解决如果一行很长,而且里面又包括一些特殊字符比如换行符等,这时候就用到三引号了,比如:


>>> '''Simple million word count program.

...     main idea is Python pairs words

...     with the number of times

...     that number appears in the triple quoted string.

...     Credit to William J. Turkel and Adam Crymble for the word

...     frequency code used below. I just merged the two ideas.

... '''


2、字符串的转义、拼接、复制

python中的转义最好理解,它跟shell下一样,就是在字符前加\就可以转义一个字符,比如\n就是回车换行,\t就是制表符,如果一个字符串中有单引号或双引号或者\都可以进行转义,如下:

>>> print '\\' 

\

>>> print '\''

'

>>> print '\"'

"


在Python下字符串拼接是用+号符操作的,非常直观,例如:


>>> x = 'hello'

>>> y = ' mindg.cn'

>>> z = x + y      

>>> print z

hello mindg.cn


字符串的复制也非常简单,可以通过*操作符,例如复制20个#符:


>>> print '#' * 20

####################


3、字符串切片

切片操作是字符串的重要特性,在字符串 后面加入[]就可以提取该位置的单个字符,如果顺序是从左到右,记住第一个字符是从0开始,如果是从右到左从-1开始,如下:

>>> letter = 'continuation'

>>> letter[0]

'c'

>>> letter[-1]

'n'

>>> letter[-2]

'o'

>>> letter[1] 

'o'


除了获取单个字符,我们还可以用更复杂的方式获取一段字符,操作格式是[开始:结束:步长],这三个参数没有严格要求必须同时存在,但如果要获取某段字符至少要有开始或结束,如果都不写就是获取整个字符串内容了,如下:


>>> letter[0:4]  

'cont'

>>> letter[-5:]

'ation'

>>> letter[0:10:2]

'cniut'

>>> letter[:]     

'continuation'


4、字符串格式化

字符串格式化就是对字符输出时处理,类似C语言的 printf()函数,打印出字符,以下是Python格式化符号表:


   符   号

   说     明

     %c

   格式化字符及其ASCII码

     %s

   格式化字符串

     %d

   格式化整数

     %o

   格式化无符号八进制数

     %x

   格式化无符号十六进制数

     %X

   格式化无符号十六进制数(大写)

     %f

   格式化定点数,可指定小数点后的精度

     %e

   用科学计数法格式化定点数

     %E

   作用同%e,用科学计数法格式化定点数

     %g

   根据值的大小决定使用%f活%e

     %G

   作用同%g,根据值的大小决定使用%f或者%E

最简单的格式化例子如下:


>>> letter

'continuation'

>>> print '%s' %letter

continuation


如果要打印指定点数可以用%f,保留小数点后二位,如下:


>>> num = 0.863

>>> print '%.2f' %num  

0.86


从Python2.6版本开始字符串格式化增加了format方法进行格式化,它的格式没有了%,用{}来替代,如下:


>>> '{name},{url}'.format(name='xiaoming',url='mindg.cn')     

'xiaoming,mindg.cn'

>>> '{name},{url}'.format(url='mindg.cn', name='xiaoming')                 

'xiaoming,mindg.cn'


用format的好处是后面的参数可以不按顺序,如我们的例子,name在前或在后对输出没有影响,另外还要记住就是在Python2.6的版本{}里的内容不能为空,2.7的版本可以支持为空:


>>> '{},{}'.format('xiaoming', 'mindg.cn')             

'xiaoming,mindg.cn'


所以有时候你下载一些模块安装不上,如果出现这个format错误,就表示你目前系统的版本比较低,你要做的要么升级当前版本,要么修改下源代码就可以通过,我是之前碰到过几次。


  推荐站点

  • At-lib分类目录At-lib分类目录

    At-lib网站分类目录汇集全国所有高质量网站,是中国权威的中文网站分类目录,给站长提供免费网址目录提交收录和推荐最新最全的优秀网站大全是名站导航之家

    www.at-lib.cn
  • 中国链接目录中国链接目录

    中国链接目录简称链接目录,是收录优秀网站和淘宝网店的网站分类目录,为您提供优质的网址导航服务,也是网店进行收录推广,站长免费推广网站、加快百度收录、增加友情链接和网站外链的平台。

    www.cnlink.org
  • 35目录网35目录网

    35目录免费收录各类优秀网站,全力打造互动式网站目录,提供网站分类目录检索,关键字搜索功能。欢迎您向35目录推荐、提交优秀网站。

    www.35mulu.com
  • 就要爱网站目录就要爱网站目录

    就要爱网站目录,按主题和类别列出网站。所有提交的网站都经过人工审查,确保质量和无垃圾邮件的结果。

    www.912219.com
  • 伍佰目录伍佰目录

    伍佰网站目录免费收录各类优秀网站,全力打造互动式网站目录,提供网站分类目录检索,关键字搜索功能。欢迎您向伍佰目录推荐、提交优秀网站。

    www.wbwb.net