Python入门教程-06 字符串

1. Overview

前面快速浏览了Python的运行环境、代码编写语法、结构化if-else、函数等,接下来的几篇文章开始对Python的几个重点的数据结构进行介绍,包括字符串、list、set、tuple、dictionary等。


在“Python入门教程-02 变量” 一文中,已经简单介绍了字符串类型;本文则进一步详细介绍字符串相关的知识。但有关更多的字符串的操作,则我们还需要在介绍了list之后,再进行补充。——因为字符串一些操作和list有密切关系。


2. 字符串的表示方法

2.1 单引号、双引号表示法

最常见的就是用一对单引号或双引号括起来的一串字符,如:

>>> "Hello, Python!"
'Hello, Python!'
>>> 'Hello, Python'
'Hello, Python'
>>> s = "Hello, Python!"
>>> print s
Hello, Python!
>>> s = 'Hello, Python'
>>> print s
Hello, Python

单引号和双引号的表示方法是等价的,主要的使用场景是:

  • 如果字符串中包含了单引号,那么可以用一对双引号表示;
  • 反过来也是一样的,即如果字符串中包括了双引号,那么可以用一对单引号表示这个字符串。

示例:

>>> '"Happy birthday!", we said.'
'"Happy birthday!", we said.'
>>> print '"Happy birthday!", we said.'
"Happy birthday!", we said.
>>> "Let's go!"
"Let's go!"
>>> print "Let's go!"
Let's go!
>>> 

2.2 转义符

当然,如果字符串中包括单引号,也可以用一对单引号括起来;对于双引号,也是类似。只是这时候需要对单引号或双引号进行转义处理。示例:

>>> print 'Let\'s go!'
Let's go!
>>> print "\"Happy birthday!\", we said."
"Happy birthday!", we said.
>>> 

Pythoy支持的转义符和C/C++等是类似的,如\t、\n等:

>>> print "1.\tFirst line.\n2.\tSecond line.\n"
1.      First line.
2.      Second line.

>>> print "C:\\Windows\\system32\\"
C:\Windows\system32\
>>> 

2.3 raw string

避免使用转义符的一种字符串表示方法是raw string,所谓的原始字符串。语法就是在字符串前面添加字符r。但这种表示方法有个局限性,即字符串的最后一个不能是转义符\。示例:

>>> print r'C:\Windows\system32\'
  File "<stdin>", line 1
    print r'C:\Windows\system32\'
                                ^
SyntaxError: EOL while scanning string literal
>>> print r'C:\Windows\system32'
C:\Windows\system32
>>> 

2.4 长字符串

除了单引号、双引号,Python中还有一种表示字符串的语法,即一对由三个单引号或三个双引号括起来的字符串。这种语法可以用来表示更长的字符串,即跨越多行。但更主要的用途在于作为docstring。——关于docstring的概念我们放在以后再详细介绍。

>>> print '''1.\tFirst line.
... 2.\tSecond line.
... '''
1.      First line.
2.      Second line.

>>> print """1.\tFirst line.
... 2.\tSecond line.
... """
1.      First line.
2.      Second line.

>>> print """"Let's go", she said."""
"Let's go", she said.
>>> 

3. 拼接字符串

通常还有一种需求,即把多个字符串拼接成一个字符串。在Python中有两种方法:加号方式或无加号方式。其中后一种情况在C/C++代码中会经常见到。

>>> print "Hello, "  "Python!"
Hello, Python!
>>> print "Hello, " + "Python!"
Hello, Python!
>>> x = "Hello, "
>>> y = "Python!"
>>> x + y
'Hello, Python!'
>>> x y
  File "<stdin>", line 1
    x y
      ^
SyntaxError: invalid syntax
>>> 

4. 去掉字符串前后的空格

>>> s = '    Hello, world! '
>>> s.lstrip()
'Hello, world! '
>>> s.rstrip()
'    Hello, world!'
>>> s.strip()
'Hello, world!'
>>> 


5. 字符串的其他操作

字符串还有大量的其他操作,比如取子串、字符串替换,等等。待我们介绍了list之后,再讲解这一部分。


5.1 格式化字符串

用{:d}+format这种语法,示例:

>>> s = "00{:02d}.pdf"
>>> s.format(3)
'0003.pdf'
>>> s.format(30)
'0030.pdf'


>>> s = "Name: {:s}, ID: {:04d}, Score: {:d}"
>>> s.format("Tom",1,30)
'Name: Tom, ID: 0001, Score: 30'
>>> s.format("Jerry",2,90)
'Name: Jerry, ID: 0002, Score: 90'
>>>

错误的用法:

>>> s = "Name: {%s}, ID: {:04d}, Score: {%d}"
>>> s.format("Tom",1,30)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyError: '%s'
>>> s = "Name: {:%s}, ID: {:04d}, Score: {:%d}"
>>> s.format("Tom",1,30)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: Invalid conversion specification





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值