【Python】Python中的字符串
文章目录
Python中表示字符串可以用单引号、双引号乃至三引号,它们有什么区别呢?本文记录了我对Python中字符串的若干疑问。
1. Python中单引号和双引号表示的字符串有何区别?
在Python中既可以使用单引号表示字符串,也可以使用双引号表示字符串,它们没有区别。如下所示:
|
|
输出:
|
|
Python不像Java中那样,单引号表示字符,双引号表示字符串。所以Python的语法拥有了更高的灵活性。例如,单引号和双引号可以嵌套使用,以使得字符串更直观。例如,我们需要得到一个字符串:“He said “you are so beautiful””,如下所示:
|
|
上述示例得到的输出结果一致:
|
|
2. Python中三引号字符串的作用
Python中还可以使用三引号(包括了'''
和"""
,这俩也没有区别),其作用之一就是写代码注释。
假设我们在Java中一个类的头部需要写一些注释,它大概是这样的:
|
|
那么在Python中如果我们要写类似的注释,则可以这么做:
|
|
三引号在Python中除了记日志之外,还有一个作用就是保留一些字符串的格式。例如,我们想获得如下输出:
|
|
我们可以怎么做呢?
尝试方案一:
|
|
输出结果:
|
|
结论:失败,在Python中使用\
来拼接换行字符串,但仅是拼接字符串而已,并不会做换行。
尝试方案二:
|
|
输出结果:
|
|
结论:成功,但是字符串很丑,既不美观也不直观,稍有差错可能还会酿成大祸。
尝试方案三:
|
|
输出结果:
|
|
结论:成功,且字符串既美观又直观
3. 如何表示不转义字符串?
如前一节中方案二的示例:
|
|
这样可以按预期打印出换行的字符串,但是如果我们有需求输入\n
但又不希望它换行呢?
方案一,加\n
之前加转义符\
,如下所示:
|
|
输出结果:
|
|
但是,这样一来,字符串就变得很丑,且如果少写了一个转义符的话问题就大了,所以可以尝试方案二,使用在字符串前添加r
:
|
|
输出结果:
|
|
4. Python中字符串前还可以加哪些字母?分别有何含义?
上一节已经已经提到了字符串前面可以加r
表示此字符串无需转义,除此之外还有以下几种:
-
u
,表示该字符串以unicode
格式编码,通常在Python2中用在中文字符串前,防止因编码问题造成乱码,而Python3中字符串默认即为unicode
字符串。 -
b
,该字符串是bytes类型。Python3中bytes和str相互转化的方法为:
1 2
str.encode('utf-8') bytes.decode('utf-8')
-
f
,用来格式化字符串。例如:1 2 3
username = "hongmao" age = 18 print(f"I'm {username}, {age} years old")
文章作者 hongmao
上次更新 2022-03-13