Python中单引号,双引号和三引号的区别

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python中单引号,双引号和三引号的区别相关的知识,希望对你有一定的参考价值。

def thread_linux(ip,port,account,password): #linux信息获取多线程方法
s=ssh_linux(ip,port,account,password)
s.disk_usage()
s.memory_usage()
s.cpu_usage()
s.disconnect_ssh()
def thread_win(ip,account,password): #windows信息获取多线程方法
w=ssh_win(ip,account,password)
w.memory_use()
w.cpu_use()
w.disk_use()

def shutdown_win(ip,account,password): #windows关机操作多线程方法
w=ssh_win(ip,account,password)
w.shutdown_win()

def shutdown_linux(ip,account,password): #linux关机操作多线程方法
s=ssh_linux(ip,port,account,password)
s.shutdown_linux()
s.disconnect_ssh()
def get_info(info): #采集设备信息的函数
for m in info:
ip=m[0]
port=m[1]
account=m[2]
password=m[3]
if port=='None':
t=threading.Thread(target=thread_win,args=(ip,account,password))
theads.append(t)
t.start()
else:
a=threading.Thread(target=thread_linux,args=(ip,port,account,password))
theads.append(a)
a.start()
for j in theads:
j.join()
info=[]
st=datetime.datetime.now()
ip_list=['10.75.156.57','10.71.197.154','10.71.197.160','10.71.197.216',"10.66.61.117","10.135.181.118","10.61.23.61"]
DMSDircEqui.DMSDircEquiClass().DMSDataDircInsert(ip_list) #初始化字典
theads=[]
get_info(info)

先说1双引号与3个双引号的区别,双引号所表示的字符串通常要写成一行
如:
s1 = "hello,world"
如果要写成多行,那么就要使用/ (“连行符”)吧,如
s2 = "hello,/
world"
s2与s1是一样的。如果你用3个双引号的话,就可以直接写了,如下:
s3 = """hello,
world,
hahaha.""",那么s3实际上就是"hello,/nworld,/nhahaha.", 注意“/n”,所以,
如果你的字符串里/n很多,你又不想在字符串中用/n的话,那么就可以使用3个双
引号。而且使用3个双引号还可以在字符串中增加注释,如下:
s3 = """hello, #hoho, this is hello, 在3个双引号的字符串内可以有注释哦
world, #hoho, this is world
hahaha."""
这就是3个双引号和1个双引号表示字符串的区别了,3个双引号与1个单引号的区别也
是和这个一样的,实际上python支持单引号是有原因的,下面我来比较1个单引号和
1个双引号的区别。

当我用单引号来表示一个字符串时,如果要表示 Let's go 这个字符串,必须这样:
s4 = 'Let/'s go',注意没有,字符串中有一个',而字符串又是用'来表示,所以
这个时候就要使用转义符 / (/,转义符应该知道吧), 如果你的字符串中有一大堆
的转义符,看起来肯定不舒服,python也很好的解决了这个问题,如下:
s5 = "Let's go"
这时,我们看,python知道你是用 " 来表示字符串,所以python就把字符串中的那
个单引号 ' , 当成普通的字符处理了,是不是很简单。
对于双引号,也是一样的,下面举个例子
s6 = 'I realy like "python"!'
这就是单引号和双引号都可以表示字符串的原因了。
参考技术A 三种引号都表示字符串

单引号表示的字符串里可包含双引号,当然不能包含单引号
双引号表示的字符串里可以包含单引号,字符串都只能有一行
三个引号能包含多行字符串,同时常常出现在函数的声明的下一行,来注释函数的功能,与众不同的地方在于,这个注释作为函数的一个默认属性,可以通过 函数名.__doc__ 来访问本回答被提问者和网友采纳
参考技术B 在Python中,单引号、双引号功能一样,都可以表示字符串,也都可以起到转义的功能。
例如:
print('-\t-\\-\'-%-/-\n')
print("-\t-\\-\'-%-/-\n")
他们显示结果都是一样的:都显示转义后的字符:
- -\-'-%-/-
其实在转义这一点上,三个引号的功能也是一样的,例如:
print('''-\t-\\-\'-%-/-\n''')
print("""-\t-\\-\'-%-/-\n""")
同样都会显示上面的结果。
但是,三引号的独特之处在这里:可以显示多行
例如:
# 三单引号(''')
print('''i
love
you''')
#三双引号(""")
print("""I can print '''"""")
print("""i
love
you""")
上面两段代码的打印效果是一样的,都显示:
i
love
you
所以总结一下就是:
单引号和双引号是等效的,如果要换行,那么需要使用符号\。单引号里面不能再加单引号,但是可以加\或者是双引号进行转义输出。双引号里面不能再加双引号,但是可以加\或者是单引号进行转义输出。
三引号括起来的字符串可以直接进行换行,并且可以包含注释。

Python中单引号,双引号,3个单引号及3个双引号的区别

 单引号和双引号
在Python中我们都知道单引号和双引号都可以用来表示一个字符串,比如

str1 = python
str2 = "python" 

 

str1和str2是没有任何区别的。


我们知道Python以其易用性而著名,所以刚开始看教程学习看到单引号和双引号都可以使用会以为这是Python为了方便程序员,随便用哪个就好,不用担心用错。其实,背后的原因不只是这么简单。举个例子,想想I‘m a big fans of Python.这个字符串应该怎么定义。

 

单引号版本:

 str3 = I‘m a big fan of Python.

 


可以注意到,原来的字符串中有一个‘,而Python又允许使用单引号‘ ‘来表示字符串,所以字符串中间的‘必须用转移字符才可以。字符串中间只有一个‘,这样写看起来还好,但是如果是We all know that ‘A‘ and ‘B‘ are two capital letters.这个字符串呢?

str4 = ‘We all know that ‘A‘ and ‘B‘ are two capital letters.‘

  

怎么样,是不是看起来就很不好看,而且很容易出错了?这个时候就是双引号也可以表示字符串该体现作用的时候了。下面是str4的双引号版本:

str4_ = "We all know that ‘A‘ and ‘B‘ are two capital letters."

 

这样是不是看起来就人性化多了?没错,这就是Python支持双引号和单引号都能用来定义字符串的原因。


反之,如果字符串中有双引号,为了避免使用转义符,你可以使用单引号来定义这个字符串。比如:

 

str5 = The teacher said: "Practice makes perfect" is a very famous proverb.

 


这就是Python易用性和人性化的一个极致体现,当你用单引号‘ ‘定义字符串的时候,它就会认为你字符串里面的双引号" "是普通字符,从而不需要转义。反之当你用双引号定义字符串的时候,就会认为你字符串里面的单引号是普通字符无需转义。

 

3个单引号及3个双引号
实际上3个单引号和3个双引号不经常用,但是在某些特殊格式的字符串下却有大用处。通常情况下我们用单引号或者双引号定义一个字符串的时候只能把字符串连在一起写成一行,如果非要写成多行,就得在每一行后面加一个表示连字符,比如:

str1 = "List of name:        Hua Li        Chao Deng"


而且即使你这样写也不能得到期望的输出:

List of name:
Hua Li
Chao Deng

 


实际上输出是下面这样的:

 

>>> str1 = "List of name:... Hua Li... Chao Deng"
>>> print(str1)
List of name: Hua Li Chao Deng

 

>>> print(abc"def"")
abc"def"

>>> print("abc‘def‘")
abcdef

 

 

那么该如何得到我们期望的一行一个名字的输出格式呢?这就是3个引号的作用了:

>>> str1 = """List of name:
... Hua Li
... Chao Deng
... """
>>> print(str1)
List of name:
Hua Li
Chao Deng

  


虽然我们也可以通过给字符串加上 实现:

>>> str1 = "List of name:
Hua Li
Chao Deng"
>>> print(str1)
List of name:
Hua Li
Chao Deng

 


但是这样在输入的时候看起来就乱了很多不是么?所以这种情况下尽量使用3个引号,至于3个单引号还是双引号都是一样的,只需要注意如果字符串中包含有单引号就要使用双引号来定义就好了。


而且使用3个引号还有一个特别棒的作用就是:加注释!

 

>>> str1 = """
... List of name:
... Hua Li # LiHua
... Chao Deng # DengChao
... """
>>> print(str1)

 

List of name:
Hua Li # LiHua
Chao Deng # DengChao

 

如果要实现这种输出效果,仅仅使用单引号或者双引号还能实现吗?

感谢作者









以上是关于Python中单引号,双引号和三引号的区别的主要内容,如果未能解决你的问题,请参考以下文章

python单引号,双引号和三双引号的区别

Shell 中单引号和双引号区别

python中单引号和双引号的区别

python中的单引号,双引号和三双引号的区别

Python中单引号,双引号,3个单引号及3个双引号的区别

Python中单引号,双引号,3个单引号及3个双引号的区别