分享

Python笔记:基础知识(三)-字符串-2018.9.19

 静幻堂 2018-09-23
Python小白菜 2018-09-19 23:39:14
Python笔记:基础知识(三)-字符串-2018.9.19

字符串,在几乎所有Python程序中都有字符串,它的主要用途就是表示一段文本,比如著名的感叹句“Hello,world!”.

  • 单引号字符串、转义字符
>>>"Hello,world!"
'Hello,world!'
>>>'Hello,world!'
'Hello,world!'

上面两个实例中,第一个使用双引号将字符串括起,第二个使用单引号将字符串括起,两者没有任何差别。但为什么又要同时支持呢?看下面这三个实例:

>>>"Let's go!"
"Let's go!"
>>> 'Let's go!'
SyntaxError: invalid syntax
>>>'"Hello,world!" she said'
'"Hello,world!" she said'

上面第一个实例中,字符串内包含了单引号,因此不能再用单引号来括字符串,在这里字符串是‘Let’,Python解释器不知道该如何处理s后面的字符,如果还是跟第二个实例那样使用单引号括起整个字符串,Python解释器会报错。第三个实例,字符串内包含了双引号,因此必须使用单引号括起全部字符串。

如果一定要用单引号来括整个字符串,可以用反斜杠 对引号进行转义:

>>> 'Let's go!'
"Let's go!"

这样Python解释器就知道中间的单引号也是字符串的一部分,同样,双引号也可以用同样的方法处理:

>>> ""hello,world!" she said"
'"hello,world!" she said'
  • 拼接字符串
>>> "Let's go" '"hello,world!"'
'Let's go"hello,world!"'

连续输入两个字符串,Python解释器会自动把它们拼接起来,合并为一个字符串。这种拼接字符串的方式并非常用。正常拼接将两段相加就可以了

>>> "Hello," + "world!"
'Hello,world!'
>>> x = "hello,"
>>> y = "world!"
>>> x+y
'hello,world!'
  • 字符串表示str和repr
>>> "Hello,world!"
'Hello,world!'
>>> print("Hello,world!")
Hello,world!

第一个实例是用引号括起的,Python解释器在打印时,保留了在代码中的样子,所以使用print()所打印出的结果,才是真正展现给用户的效果。

两种不同的方式将值转换成字符串,可以通过使用str()和repr() 函数直接使用这两种方式,通过下面两个实例观察两者的不同:

>>> print(repr("Hello,
world!"))
'Hello, world!'
>>> print(str("Hello, world!"))
Hello,
world!
  • 长字符串、原始字符串和字节

1、长字符串

要表示跨越多行的字符串,可以使用三引号''' ... '''或三个双引号""" ... """,这让Python解释器能够识别表示字符串开始和结束的位置,字符串本身包含的单引号和双引号,不用使用反斜杠进行转义。

>>> print('''This is a very long string.
It continues here.
And it's not over yet.
Still here''')
This is a very long string.
It continues here.
And it's not over yet.
Still here
>>> print("""This is a very long string.
It continues here.
And it's not over yet.
Still here""")
This is a very long string.
It continues here.
And it's not over yet.
Still here

除长字符串外,常规的短字符串也可以跨行,在行尾加反斜杠即可,这种处理方式也适用于表达式和语句。

>>> print("hello, 
world!")
hello, world!
>>> 1+2+
4+5
12
>>> print
('hello,world')
hello,world

2、原始字符串

在原始字符串中不会对反斜杠进行处理,效果跟repr()函数类似,在常规字符串中,使用反斜杠可以让字符串包含原本无法的字符,比如上面已经出现的一个实例:

>>> print('Hello,
world')
Hello,
world

通常情况下是可以的,但是在有些特殊情况,就不行了,比如字符串中包含了路径C: owfile

>>> print('C:
ewfile')
C:
ewfile
>>> print('C:\newfile')
C: ewfile

通常使用反斜杠 对反斜杠进行转义就行,但如果是一个很长的路径就需要大量的反斜杠,这种情况下,就可以使用原始字符进行处理,让字符串的每个字符保持原样。

>>> print(r'C:
ewfile')
C: ewfile
>>> print(r'C:Program Files ile ree oo')
C:Program Files ile ree oo

通过上面俩实例能看出来,原始字符串用r''表示' '这对单引号内的字符串,不进行转义。

>>> print(r'Let's go')
Let's go

还有需要注意的是原始字符串不能以反斜杠结尾,因为Python解释器无法判断字符串是否到此结束

>>> print(r'This is illegal')	 
SyntaxError: EOL while scanning string literal

但如果最后一个字符必须是反斜杠,这可以这样处理:

>>> print(r'C:Program Filesooar' '\')	 
C:Program Files ooar

字符串这节太枯燥了,大体理解的差不多了,关于字符编码,先不看了。

后面要是能用到再补上。

参考书籍《Python基础教程(第三版)》

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多