python 字符串(1)

字符串

操练一下字符串吧。

>>> 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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值