Python中的字符串
让我们来学习一下 Python 中的字符串数据类型
如何创建字符串
字符串通常可以通过三种方式创建。你可以使用单引号、双引号或三重引号。让我们来看一下!
1my_string = "欢迎来到 Python!" 2another_string = '那只明亮的红狐狸跳过了篱笆。' 3a_long_string = '''这是一个 4多行字符串。它跨越了多行''' 5 6print(my_string) 7print(another_string) 8print(a_long_string)
三重引号可以用三个单引号或三个双引号表示。无论哪种方式,它们都允许程序员在多行中编写字符串。如果你打印输出,会发现结果保留了换行符。如果需要在字符串中使用单引号,可以将其用双引号包裹。请看下面的例子:
1my_string = "我是个 Python 程序员!" 2otherString = '单词 "python" 通常指的是蛇' 3tripleString = """这是在字符串中嵌入“引号”的另一种方式""" 4 5print(my_string) 6print(otherString) 7print(tripleString)
上面的代码展示了如何在字符串中包含单引号或双引号。实际上,还有一种创建字符串的方法,那就是使用 str 方法。以下是它的用法:
1my_number = 123 2my_string = str(my_number) 3 4print(my_number) 5print(my_string)
运行上述代码后,你会注意到已经将整数值转换为字符串,并将其赋值给变量 my_string。这被称为 类型转换。你可以将某些数据类型转换为其他类型,比如将数字转换为字符串。但你也可能会发现,反过来并不总是可行,例如无法将像 'ABC' 这样的字符串转换为整数。如果这样做,会引发类似以下错误:
1int('ABC') 2# ValueError: invalid literal for int() with base 10: 'ABC'
我们将在后面的章节中学习异常处理,但根据提示信息可以推测,这意味着你无法将一个字面量转换为整数。然而,如果你写的是:
1x = int("123")
那么这个操作是完全可行的。
需要注意的是,字符串是 Python 的不可变类型之一。这意味着一旦创建后,就无法更改其内容。让我们尝试修改一个字符串,看看会发生什么:
1my_string = "abc" 2my_string[0] = "d" 3# TypeError: 'str' object does not support item assignment
这里我们试图将第一个字符从 "a" 改为 "d",但会触发 TypeError 错误,阻止该操作。你可能会认为,通过给同一个变量赋新字符串就能改变原字符串的内容。我们来验证一下是否如此:
1my_string = "abc" 2print(id(my_string)) # 140029410169552 3 4my_string = "def" 5print(id(my_string)) # 140029409549312 6 7my_string = my_string + "ghi" 8print(id(my_string)) # 140029409549200
通过检查对象的 id,我们可以发现,每次给变量赋新值时,其身份都会发生变化。
注意,在 Python 2.x 中,字符串只能包含 ASCII 字符。如果需要使用 Unicode,则必须在字符串前加上 u。例如:
1my_unicode_string = u"这是 Unicode!"
上面的例子中的字符串其实已经包含了 Unicode 字符(如中文),能帮助你理解这种写法。在 Python 3.x 中,所有字符串都是 Unicode。
“连接”是一个术语,意思是把两个东西组合或相加在一起。在这里,我们想知道如何将两个字符串连接起来。正如你可能猜到的,Python 中实现这一操作非常简单:
1string_one = "我的狗吃了 " 2string_two = "我的作业!" 3string_three = string_one + string_two 4 5print(string_one) 6print(string_two) 7print(string_three)
加号(+)运算符将两个字符串合并成一个。