您现在的位置是:首页 > 文章详情

python 字符串(1)

日期:2018-10-14点击:308

字符串

操练一下字符串吧。

>>> print "good good study, day day up" good good study, day day up 

在python中,通常用一对双引号、或者单引号来包裹一个字符串。或者说,要定义一个字符串,就用双引号或者单引号。

转义字符例子:

>>> print "小明说:\"你好啊\"" 小明说"我没有少圆明园" 

这个例子中,为了打印出那句含有双引号的字符串,也就是双引号是字符串的一部分了,使用了一个符号:\,在python中,将这个符号叫做转义符。本来双引号表示包括字符串,它不是字符串一部分,但是如果前面有转义符,那么它就失去了原来的含义,转化为字符串的一部分,相当于一个特殊字符了。
转义符在打印第二句话:

>>> print 'what\'s your name?' what's your name? 

另外,双引号和单引号还可以嵌套,比如下面的句子中,单引号在双引号里面,虽然没有在单引号前面加转义符,但是它被认为是字符串一部分,而不是包裹字符串的符号

>>> print "what's your name?" #双引号包裹单引号,单引号是字符 what's your name? >>> print 'what "is your" name' #单引号包裹双引号,双引号是字符 what "is your" name 

变量连接到字符串

变量不仅可以跟数字连接,还能够跟字符串连接。

>>> a=5 >>> a 5 >>> print a 5 >>> b="hello,world" >>> b 'hello,world' >>> print b hello,world 

还记得我们曾经用过一个type命令吗?现在它还有用,就是检验一个变量,到底跟什么类型联系着,是字符串还是数字?

>>> type(a) <type 'int'> >>> type(b) <type 'str'> 

连接字符串(1)

>>> a = "我们" >>> b= "学python" >>> c = a+b >>> print c 我们学python 

用+号实现连接,的确比较简单,不过,有时候你会遇到这样的问题:

>>> a = 1989 >>> b = "free" >>> print b+a Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: cannot concatenate 'str' and 'int' objects 

抱错了,其错误原因已经打印出来了(一定要注意看打印出来的信息):cannot concatenate 'str' and 'int' objects。原来a对应的对象是一个int类型的,不能将它和str对象连接起来。怎么办?
可以用下面三种方法中的任何一种:

>>> print b + `a` #注意,` `是反引号,不是单引号,就是键盘中通常在数字1左边的那个,在英文半角状态下输入的符号 free1989 >>> print b + str(a) #str(a)实现将整数对象转换为字符串对象 free1989 >>> print b + repr(a) #repr(a)与上面的类似 free1989 

首先明确,repr()和``是一致的,就不用区别了。接下来需要区别的就是repr()和str,一个最简单的区别,repr是函数,str是跟int一样,一种对象类型。

连接字符串(2)

先说明一下什么是占位符,此前在讲解变量(参数)的时候,提到了占位符,这里对占位符做一个比较严格的定义:

来自百度百科的定义:

顾名思义,占位符就是先占住一个固定的位置,等着你再往里面添加内容的符号。 

根据这个定义,在python里面规定了一些占位符,通过这些占位符来说明那个位置应该填写什么类型的东西,这里暂且了解两个占位符:%d——表示那个位置是整数,%s——表示那个位置应该是字符串。下面看一个具体实例:

>>> print "one is %d"%1 one is 1 

要求打印(print)的内容中,有一个%d占位符,就是说那个位置应该放一个整数。在第二个%后面,跟着的就是那个位置应该放的东西。这里是一个整数1。
我们做下面的操作,就可以更清楚了解了:

>>> a=1 >>> type(a) <type 'int'> #a是整数 >>> b="1" >>> type(b) <type 'str'> #b是字符串 >>> print "one is %d"%a one is 1 >>> print "one is %d"%b #报错了,这个占位符的位置应该放整数,不应该放字符串。 Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: %d format: a number is required, not str 

同样道理,%s对应的位置应该放字符串,但是,如果放了整数,也可以。只不过是已经转为字符串对待了。但是不赞成这么做。

>>> print "one is %s"%b one is 1 >>> print "one is %s"%a #字符串是包容的 one is 1 

下面我们就用占位符来连接字符串:

>>> a = "py" >>> b = "thon" >>> print "%s%s"%(a,b) #注 python 
  • 注:仔细观察,如果两个占位符,要向这两个位置放东西,代表的东西要写在一个圆括号内,并且中间用逗号(半角)隔开。

Python转义字符

在字符串中,有时需要输入一些特殊的符号,但是,某些符号不能直接输出,就需要用转义符。所谓转义,就是不采用符号现在之前的含义,而采用另外一含义了。下面表格中列出常用的转义符:

转义字符 描述
\ (在行尾时) 续行符
\ \ 反斜杠符号
' 单引号
" 双引号
\a 响铃
\b 退格(Backspace)
\e 转义
\000
\n 换行
\v 纵向制表符
\t 横向制表符
\r 回车
\f 换页
\oyy 八进制数,yy代表的字符,例如:\o12代表换行
\xyy 十六进制数,yy代表的字符,例如:\x0a代表换行
\other 其它的字符以普通格式输出

以上所有转义符,都可以通过交互模式下print来测试一下,感受实际上是什么样子的。例如:

>>> print "hello.I am hiekay.\ #这里换行,下一行接续 ... My website is 'http://hiekay.github.io'." hello.I am hiekay.My website is 'http://hiekay.github.io'. >>> print "you can connect me by qq\\weibo\\gmail" #\\是为了要后面那个\ you can connect me by qq\weibo\gmail 
原文链接:https://yq.aliyun.com/articles/659005
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章