我们都知道python中引号是用来定义和表示字符串的。但是python中的引号种类又包括了单引号”、双引号””、三个单引号”’ ”’、三个双引号””” “””等好几种形式。下面具体说一下这些不同引号的用法和使用习惯上的区别。
1.单引号和双引号的区别
单引号双引号都是用来表示字符串,在一般情况下两者没有任何差别,根据自己的使用习惯就好。str1='I love Python'
str2="I love Python"
print(str1) #输出结果:I love Python
print(str2) #输出结果:I love Python
但是对于新手来说,一定要注意区别中英文写法,所有的python中的符号格式都应该是英文写法,如果错写成中文格式,就会报错。str1=‘I love Python’
str2=“I love Python”
print(str1)
print(str2)
# File "F:/10python学习/python爬虫/test/test_scrapy/test2.py", line 1
# str1=‘I love Python’
# ^
#SyntaxError: invalid character in identifier
单引号双引号可以相互内嵌。这个功能很方便,我们会经常用到。下面举例说明。
有时候我们会碰到这样的一个情况,就是字符串本身就已经带着单引号或者双引号了。这个情况下如果还用一样的符号就会报错,因为python在读取字符串时会读取第一个引号闭环,这样就导致后续的无法读取为字符串引发报错,例如:str1='I love 'python''
# File "F:/10python学习/python爬虫/test/test_scrapy/test2.py", line 1
# str1='I love 'python''
# ^
# SyntaxError: invalid syntax
我们本意是python为特有名词,加引号,但是由于都是单引号,这样python读取的时候只会把前面的’I love’读成字符串,后面的python没有指定数据类型,因此报错。
碰到这种情况的话,有两种解决方法。一个是在引号前添加转译符\ ,将内部引号读成字符串内部格式而不是读成python自认的字符串标识,可以写成:str1='I love\'python\''
print(str1) #输出结果:I love'python'
另一种办法就是将引号样式分开,用双引号内嵌单引号的形式来表示字符串,这样python会把整个双引号的内容读成一个字符串,而忽略里面的单引号的作用。例如:str1="I love 'python'"
str2='I love "python"'
print(str1) #输出结果:I love'python'
print(str2) #输出结果:I love "python"
这样就避免了在字符串中添加各种转译符导致字符串可读性变差的问题,一般情况下都建议采用这种方式来表示带内部引号的字符串。
2. 三个引号的用法
三个引号不如单双引号常见,但是其用法也很重要,是规范化代码,增加可读性非常重要的符号。
三个引号一般在三个场景中出现。
一是对函数、类等进行注释性的描述,让其他人能迅速了解你的类和函数的作用。这是python一个代码写法上约定俗成的方法。from random import randint
class Die():
"""掷骰子"""
def __init__(self,die_number=6):
self.die_number=die_number
def roll(self):
return randint(1,self.die_number)
二是进行多行注释。 我们都知道Python中注释是井号 #,但是如果你需要描述多行注释的时候,就需要每行都写一个 # ,这时就可以使用三个双引号来表示:#注释1行
#注释2行
#注释3行
#注释4行
"""
注释1行
注释2行
注释3行
注释4行
"""
三是字符串中有多行内容,如果使用单个引号的话就需要在每行后增加换行符\n,不然会报错,而使用三个引号则可以保证所见即所得,可读性强,方便快捷。str1="I \nlove \npython"
str2="""
I
love
python
"""
print(str1)
print(str2)
输出结果:
I
love
python
I
love
python
所以如果文本内容涉及很多行的话,用三个双引号就对了。
总结一下:
1.单双引号用来表示单个字符串,使用方法一致,可相互内嵌。
2.三个引号一是用于函数、类的注释,而是用于多行注释,三是用于多行字符串的定义。多用三个双引号,三个单引号较少使用。