Python 字符串

大多数程序都定义并收集某种数据,然后使用它们来做些有意义的事情。鉴于此,对数据进行分类大有裨益。我们将介绍的第一种数据类型是字符串。字符串虽然看似简单,但能够以很多不同的方式使用它们。

字符串就是一系列字符。在Python中,用引号括起的都是字符串,其中的引号可以是单引号,也可以是双引号,如下所示:

"This is a strig."
'This is coolcou course.'

这种灵活性让你能够在字符串中包含引号和撇号:

`I told my friend,"coolcou is best course!"`
"This language 'Python' is named after Month Python, not the snake."
"one of Python's stengths is its diverse and supportive comunity."

下面来看一些使用字符串的方式。

使用方法修改字符串的大小写

对于字符串,可执行的最简单的操作之一是修改其中的单词的大小写。请看下面的代码,并尝试判断其作用:

name.py

name="ada lovelace"
print(name.title())

将这个文件保存为name.py,再运行它。你将看到如下输出:

Ada Lovelace

在这个示例中,小写的字符串”ada lovelace”存储到了变量name中。在print()语句中,方法title()出现在这个变量的后面。方法是Python可对数据执行的操作。在name.title()中,name后面的句点(.)让Python对变量name执行方法title()指定的操作。每个方法后面都跟着一对括号,这是因为方法通常需要额外的信息来完成其工作。这种信息是在括号内提供的。函数title()不需要额外的信息,因此它后面的括号是空的。

title()以首字母大写的方式显示每个单词,即将每个单词的首字母都改为大写。这很有用,因为你经常需要将名字视为信息。例如,你可能希望程序将值Ada、ADA和ada视为同一个名字,并将它们都显示为Ada。

还有其他几个很有用的大小写处理方法。例如,要将字符串改为全部大写或全部小写,可以像下面这样做:

name = "coolcou course"
print(name.upper())
print(name.lower())

这些代码的输出如下:

COOLCOU COURSE
coolcou course

存储数据时,方法lower()很有用。很多时候,你无法依靠用户来提供正确的大小写,因此需要将字符串先转换为小写,再存储它们。以后需要显示这些信息时,再将其转换为最合适的大小写方式。

合并(拼接)字符串

在很多情况下,都需要合并字符串。例如,你可能想将姓和名存储在不同的变量中,等要显示姓名时再将它们合而为一:

first_name = "ada"
last_name = "lovelace"
full_name = first_name + " " + last_name
print(full_name)

Python使用加号(+)来合并字符串。在这个示例中,我们使用+来合并first_name、空格和last_name,以得到完整的姓名,其结果如下:

ada lovelace

这种合并字符串的方法称为拼接。通过拼接,可使用存储在变量中的信息来创建完整的消息。下面来看一个例子:

first_name = "ada"
last_name = "lovelace"
full_name = first_name + " " + last_name
print("Hello, " + full_name.title() + "!")

在这里,一个问候用户的句子中使用了全名,并使用了方法title()来将姓名设置为合适的格式。这些代码显示一条格式良好的简单问候语:

Hello, Ada Lovelace!

你可以使用拼接来创建消息,再把整条消息都存储在一个变量中:

first_name = "ada"
last_name = "lovelace"
full_name = first_name + " " + last_name
message = "Hello, " + full_name.title() + "!"
print(message)

上述代码也显示消息“Hello, Ada Lovelace!”,但将这条消息存储在了一个变量中,这让最后的print语句简单得多。

使用制表符或换行符来添加空白

在编程中,空白泛指任何非打印字符,如空格、制表符和换行符。你可使用空白来组织输出,以使其更易读。

要在字符串中添加制表符,可使用字符组合\t,如下述代码的所示:
Python 字符串

要在字符串中添加换行符,可使用字符组合\n:
Python 字符串

删除空白

在程序中,额外的空白可能令人迷惑。对程序员来说,’python’和’python ‘看起来几乎没什么两样,但对程序来说,它们却是两个不同的字符串。Python能够发现’python ‘中额外的空白,并认为它是有意义的——除非你告诉它不是这样的。

空白很重要,因为你经常需要比较两个字符串是否相同。例如,一个重要的示例是,在用户登录网站时检查其用户名。但在一些简单得多的情形下,额外的空白也可能令人迷惑。所幸在Python中,删除用户输入的数据中的多余的空白易如反掌。

Python能够找出字符串开头和末尾多余的空白。要确保字符串末尾没有空白,可使用方法rstrip()。
Python 字符串

存储在变量favorite_language中的字符串末尾包含多余的空白。你在终端会话中向Python询问这个变量的值时,可看到末尾的空格。对变量favorite_language调用方法rstrip()后,这个多余的空格被删除了。然而,这种删除只是暂时的,接下来再次询问favorite_language的值时,你会发现这个字符串与输入时一样,依然包含多余的空白。

要永久删除这个字符串中的空白,必须将删除操作的结果存回到变量中:

>>> favorite_language = 'python '
>>> favorite_language = favorite_language.rstrip()
>>> favorite_language
'python'

为删除这个字符串中的空白,你需要将其末尾的空白剔除,再将结果存回到原来的变量中。在编程中,经常需要修改变量的值,再将新值存回到原来的变量中。这就是变量的值可能随程序的运行或用户输入数据而发生变化的原因。

你还可以剔除字符串开头的空白,或同时剔除字符串两端的空白。为此,可分别使用方法lstrip()和strip():

>>> favorite_language = ' python '
>>> favorite_language.rstrip()
' python '
>>> favorite_language.lstrip()
'python'
>>> favorite_language.strip()
'python'

在这个示例中,我们首先创建了一个开头和末尾都有空白的字符串。接下来,我们分别删除末尾、开头和两端的空格。尝试使用这些剥除函数有助于你熟悉字符串操作。在实际程序中,这些剥除函数最常用于在存储用户输入前对其进行清理。

使用字符串时避免语法错误

语法错误是一种时不时会遇到的错误。程序中包含非法的Python代码时,就会导致语法错误。例如,在用单引号括起的字符串中,如果包含撇号,就将导致错误。这是因为这会导致Python将第一个单引号和撇号之间的内容视为一个字符串,进而将余下的文本视为Python代码,从而引发错误。

下面演示了如何正确地使用单引号和双引号。请将该程序保存为apostrophe.py,再运行它:

apostrophe.py

message = "One of Python's strengths is its diverse community"
print(message)

撇号位于两个双引号之间,因此Python解释器能够正确地理解这个字符串:

One of Python's strengths is its diverse community

然而,如果你使用单引号,Python将无法正确地确定字符串的结束位置:

message = `One of Python's strengths is its diverse community`
print(message)

而你将看到如下输出:
Python 字符串

从上述输出可知,错误发生在第二个单引号后面。这种语法错误表明,在解释器看来,其中的有些内容不是有效的Python代码。错误的来源多种多样,这里指出一些常见的。学习编写Python代码时,你可能会经常遇到语法错误。语法错误也是最不具体的错误类型,因此可能难以找出并修复。

Python 2中的print语句

Python 字符串

在Python 2中,无需将要打印的内容放在括号内。从技术上说,Python 3中的print是一个函数,因此括号必不可少。有些Python 2print语句也包含括号,但其行为与Python 3中稍有不同。简单地说,在Python 2代码中,有些print语句包含括号,有些不包含。

赞(1)

评论 抢沙发

评论前必须登录!