2.2.字符串

目录

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

2.2.2在字符串中使用变量

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

2.2.4删除空白

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


大多数程序定义并收集某种数据,然后使用它们来做些有意义的事情——有鉴于此,对数据进行分类大有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()的几种常用方法如下所示:

  1. 使用位置参数: 例如:print("{} {}".format("Hello", "World")) 输出:Hello World 在花括号中不指定位置索引,默认按照参数的顺序进行插入。

  2. 使用关键字参数: 例如:print("{greeting} {name}".format(greeting="Hello", name="World")) 输出:Hello World 在花括号中使用关键字参数来指定要插入的值,可以不按照参数的顺序进行插入。

  3. 使用位置索引: 例如:print("{1} {0}".format("World", "Hello")) 输出:Hello World 在花括号中使用位置索引来指定要插入的值的顺序。

  4. 指定值的格式: 例如:print("{:.2f}".format(3.14159)) 输出:3.14 使用冒号(:)来指定要插入的值的格式。在冒号后面可以指定精度、对齐方式等。

  5. 使用下标访问列表或字典的元素: 例如: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!

  • 15
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: grep 是 Linux 和 Unix 系统中常用的文本搜索工具。在这个例子中,echo 命令用来输出字符串 "1.1.1.a,2.2.2.2",并且通过管道符(|)将这个字符串的输出传递给 grep。 -w 参数表示搜索单词。所以这里将会输出包含单词"1.1.1.a"的行。 命令执行后输出 "1.1.1.a",因为这个字符串是符合条件的。 ### 回答2: 执行命令"echo "1.1.1.a,2.2.2.2" | grep -w 1.1.1.a"的作用是在给定的字符串中查找满足整字匹配条件的"1.1.1.a"。所以这个命令会返回"1.1.1.a"。 ### 回答3: 命令`echo "1.1.1.a,2.2.2.2" | grep -w 1.1.1.a`是在一个字符串`1.1.1.a,2.2.2.2`中寻找出现了`1.1.1.a`这个词。这个命令会在字符串中逐行搜索匹配到的内容,并打印出匹配到的行。 在这个例子中,字符串中只有一个词`1.1.1.a`符合`grep -w`的匹配规则。因为加上了`-w`参数,匹配会严格按照单词边界进行,意味着只有完全匹配的词会被找到,而不会找到包含该词的部分。所以,输出结果会显示整行包含完全匹配的内容`1.1.1.a`。 如果字符串中有其他行含有`1.1.1.a`作为一部分,或者完全相同的内容,都会被筛选出来并显示。 需要注意的是,该命令的匹配是区分大小写的。如果目标字符串中和`1.1.1.a`仅有大小写差异,那些大小写不相同的内容不会被匹配到。 总之,执行该命令会查找并输出对应字符串中完全匹配的行,而不是单纯的寻找存在该词的位置。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值