目录
大多数程序定义并收集某种数据,然后使用它们来做些有意义的事情——有鉴于此,对数据进行分类大有bi益。
我们将介绍的第一种数据类型是字符串。字符串虽然看似简单,但能够以很多不同的方式使用。
字符串就是一系列字符。在Python中,用引号括起的都是字符串,其中的引号可以是单引号,也可以是双引号,如下所示:
"他好"
'我也好‘
这种灵活性让你能够在字符串中包含引号和撇号:
'我说, "小心地滑"'
"小心地滑中的'地'是指地面,不是助词'地'"
下面来看一些使用字符串的方式。
2.2.1 使用方法修改字符串的大小写
对于字符串,可执行的最简单的操作之一是修改其中单词的大小写。请看下面的代码,并尝试判断其作用:
#name.py
name ="ada lovelace"
print(name.title())
将这个文件保存为name.py,再运行它。你将看到如下输出:
Ada Lovelace
在这个示例中,变量 name 指向小写的字符串"ada lovelace"。在函数调用 print()中,方法title()出现在这个变量的后面。方法是 Python 可对数据执行的操作。在 name.title()中,name后面的句点(,)让 Python对变量 name 执行方法title()指定的操作。每个方法后面都跟着一对圆括号,这是因为方法通常需要额外的信息来完成其工作。这种信息是在圆括号内提供的。函数title()不需要额外的信息,因此它后面的圆括号是空的。
方法title()以首字母大写的方式显示每个单词,即将每个单词的首字母都改为大写。
def title(string):
words = string.split()
capitalized_words = [word.capitalize() for word in words]
return " ".join(capitalized_words)
例如,你可能希望程序将值Ada、ADA和ada视为同一个名字,并将它们都显示为Ada。
还有其他几个很有用的大小写处理方法。例如,要将字符串改为全部大写或全部小写,可以
像下面这样做:
name = "Ada Lovelace"print(name.upper())print(name.lower())
输出如下:
ADA LOVELACE
ada lovelace
存储数据时,方法lower()很有用。很多时候,你无法依靠用户来提供正确的大小写,因此需要将字符串先转换为小写、再存储它们。
例如,假设你正在构建一个用户登录系统,用户输入的用户名需要与数据库中存储的用户名进行比较。如果不使用lower()方法,用户可能会不小心使用了大写字母,导致无法正确匹配。但是如果将用户名转换为小写再进行比较,就可以确保不会因为大小写不一致而导致登录失败。
此外,使用lower()方法还可以避免一些其他问题,比如在数据库中存储数据时,如果不进行大小写转换,可能会出现重复的数据。通过将字符串转换为小写,可以确保数据的唯一性。
2.2.2在字符串中使用变量
在有些情况下,你可能想在字符串中使用变量的值。例如,你可能想使用两个变量分别表示
名和姓,然后合并这两个值以显示姓名:
first_name = "ada"
last_name = "lovelace"
print(fu11_name)
full name = f"{first_name} {last_name}"
要在字符串中插入变量的值,可在前引号前加上字母f,再将要插入的变量放在花括
号内。这样,当Python显示字符串时,将把每个变量都替换为其值。
这种字符串名为f字符串——f是format的简写(即设置格式),因为Python通过把花括号内的变量替换为其值来设置字符串的格式。
f字符串是Python 3.6版本中引入的一种字符串格式化方式。它使用花括号{}来包围变量名或表达式,可以在其中直接使用变量,并在字符串中替换为对应的值。
上述代码的输出如下:
ada lovelace
使用f字符串可完成很多任务,如利用与变量关联的信息来创建完整的消息,如下所示:
first_name s"ada"
last_name ="lovelace"
full name = f"{first name} {last_ name}"
O print(f"Hello, {full_name,title()}!")
在这里,一个问候用户的句子中使用了完整的姓名,并使用方法title()来将姓名设置为合适的格式。这些代码显示一条简单问候语:
Hello, Ada Lovelace!
我们还可以使用f字符串来创建信息,再将整条消息赋值给变量。
比如:
name = "John"
age = 25
message = f"我叫{name},今年{age}岁。"
print(message)
注意:f字符串是Python3.6引入的。如果你使用的是Python3.5或更早的版本,需要使用format()
要使用方法format(),可在圆括号内列出要在字符串中使用的变量。对于每个变量,都通过一对花括号来引用。这样将按顺序将这些花括号替换为围括号内列出的变量的值,如下所示:
full_name ="{}{}".format(first_name, last_name)
format()的几种常用方法如下所示:
使用位置参数: 例如:print("{} {}".format("Hello", "World")) 输出:Hello World 在花括号中不指定位置索引,默认按照参数的顺序进行插入。
使用关键字参数: 例如:print("{greeting} {name}".format(greeting="Hello", name="World")) 输出:Hello World 在花括号中使用关键字参数来指定要插入的值,可以不按照参数的顺序进行插入。
使用位置索引: 例如:print("{1} {0}".format("World", "Hello")) 输出:Hello World 在花括号中使用位置索引来指定要插入的值的顺序。
指定值的格式: 例如:print("{:.2f}".format(3.14159)) 输出:3.14 使用冒号(:)来指定要插入的值的格式。在冒号后面可以指定精度、对齐方式等。
使用下标访问列表或字典的元素: 例如:fruits = ["apple", "banana", "orange"] print("I like {0[1]}".format(fruits)) 输出:I like banana 使用下标[]来访问列表或字典中的元素。
2.2.3使用制表符或换行符来添加空白
在编程中,空白泛指任何非打印字符,如空格、制表符和换行符。你可以使用空白来组织输
出,让用户阅读起来更容易。
要在字符串中添加制表符,可使用字符组合\t,如下述代码所示:
>>>print("Python")
Python
>>> print("\tPython")
Python
要在字符串中添加换行符,可使用字符组合\n:
>>> print("Languages:\nPython\nC\nJavascript")
Languages:
Python
Javascript
还可在同一个字符串中同时包含制表符和换行符。字符串"\n\t"让Python 换到下一行,并在
下一行开头添加一个制表符。下面的示例演示了如何使用一个单行字符串来生成四行输出:
>>> print("Languages:\n\tPython\n\tC\n\tJavaScript")
Languages:
Python
JavaScript
2.2.4删除空白
在程序中,额外的空白可能令人迷惑。对程序员来说,'python'和'python '看起来几乎没什么两样,但对程序来说,它们却是两个不同的字符串。Python 能够发现’python'中额外的空白。并认为它意义重大——除非你告诉它不是这样的。
空白很重要,因为你经常需要比较两个字符串是否相同。一个重要的示例是,在用户登录网站时检查其用户名。不过在非常简单的情形下,额外的空格也可能令人迷惑。所幸,在Python中删除用户输入数据中的多余空白易如反掌。
Python 能够找出字符串开头和末尾多余的空白。要确保字符串末尾没有空白,可使用方法rstrip()。
>>> favorite_language = 'python
>>> favorite_language
'python
>>>favorite_language.rstrip()
'python'
>>> favorite_language
"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.Istrip()
'python
>>> favorite_language.strip()
'python'"
在上述示例中,我们首先创建了一个开头和末尾都有空白的字符串。
接下来,分别删除末尾、开头和两边的空白。尝试使用这些剥除函数有助于你熟悉字符串操作。在实际程序中,这些剥除函数最常用于在存储用户输入前对其进行清理。
2.2.5使用字符串时避免语法错误
语法错误是一种你时不时会遇到的错误。程序中包含非法的Python代码时,就会导致语话错误。例如,在用单引号括起的字符串中,如果包含撇号,就将导致错误。这是因为这会导致Python将第一个单引号和撇号之间的内容视为一个字符串,进而将余下的文本视为Python 代码.从而引发错误。
下面演示了如何正确地使用单引号和双引号。请将该程序保存为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)
你将看到如下输出:
File "apostrophe.py", line 1
message = 'One of Python's strengths is its diverse community.
SyntaxError: invalid syntax
从上述输出可知,错误发生在第二个单引号后面。这种语法错误表明,在解释器看来,其中的有些内容不是有效的Python代码。错误的原因各种各样,我将指出一些常见的原因。
学习编写Python 代码时,你可能会经常遇到语法错误。这些错误通常是由于代码中的拼写错误、缩进错误、括号不匹配等引起的。当你遇到语法错误时,解释器会提示错误消息,指示错误出现的位置和原因。要解决语法错误,你需要仔细检查代码并修复错误。
注意编写程序时,编辑器的语法突出功能可帮助你快速找出某些语法错误。看到Python代码以普通句子的颜色显示,或者普通句子以 Python 代码的颜色显示时,就可能意味着文件中存在引号不匹配的情况。
当你遇到语法错误时,请不要灰心!这是每个编程新手都会经历的过程。最重要的是保持积极的心态。每个人都从错误中学习,而成为一个出色的编程者需要时间和努力。相信自己,坚持下去,你一定能够掌握Python!