Python-单引号双引号和三引号的作用和区别
Posted 业余砖家
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python-单引号双引号和三引号的作用和区别相关的知识,希望对你有一定的参考价值。
(一)、作用
1. 单引号:单引号内部为一串字符(str)。
2. 双引号:双引号内部为一串字符,双引号内的字符串可以出现单引号(相当于双引号优先级更高),但不能嵌套双引号。
3. 三引号:用于换行输出,且缩进会被打印出来。(三引号还可以用来进行块注释)。
(二)、共同点
- python中变量赋值字符串均可使用三者符号来表示。
- 三者都可以直接引用字符串是等价的。
(三)、不同点
- 双引号中可以包含单引号,避免使用单引号包含字符串频繁使用转义符。
- 三引号中可以包含换行符、制表符以及其他特殊字符(即在读取转义符的基础上完全复现引号内输入的全部内容,避免频繁使用换行符/n。
- 可以包含#注释,自身可以作为多行注释标志符使用。
- 三引号也可以表示字符串,而且能够保留字符串的格式,里面也可以包含单引号和双引号,但是单引号和双引号不能包含三引号。
- 如果想要单引号嵌套单引号,双引号嵌套双引号,可以用转义字符。
- python中单引号和双引号还可以嵌套,但是必须注意可以相互嵌套,但是单引号不可以直接嵌套单引号,双引号不可以直接嵌套双引号。
(四)、演示示例
\'\'\' 一、单引号 \'\'\' ## single_str = \'Single quotation mark\' ## 单引号嵌套双引号 single_str2 = \'Tom asked me "Where are you from?"\' ## 单引号嵌套单引号,需要进行转义 single_str3 = \'I\\\'m a student\' print(single_str) print(single_str2) print(single_str3) print("-"*100) """ 二、双引号 """ double_str = "Double quotation mark" ## 双引号嵌套单引号 double_str2 = "I\'m a student" ## 双引号嵌套双引号,需要进行转义 double_str3 = "Tom asked me \\"Where are you from?\\"" print(double_str) print(double_str2) print(double_str3) print("-"*100) """ 三、三引号 """ ## 三个单引号 three_str = \'\'\'Three quotation mark\'\'\' ## 三个双引号 three_str2 = """Captain,My Capation!""" ## 三个单引号并换行 three_str3 = \'\'\' SELECT years, country, product, SUM(sales) AS total_sales FROM sales GROUP BY years, country, product \'\'\' ## 三个双引号并换行 three_str4 = """ SELECT IF(GROUPING(years), \'All years\', years) AS years, IF(GROUPING(country), \'All countries\', country) AS country, IF(GROUPING(product), \'All products\', product) AS product, SUM(sales) AS Total_Sales FROM sales GROUP BY years, country, product WITH ROLLUP; """ print(three_str) print(three_str2) print(three_str3) print(three_str4)
结果输出:
本文来自博客园,作者:业余砖家,转载请注明原文链接:https://www.cnblogs.com/yeyuzhuanjia/p/17395819.html
python脚本入参的单、双引号
参考技术A Linux的shell中存在一些特殊字符(保留字),我们将这些具有一些特殊功能的字符叫做meta(元字符),还有一些普通的,没有特殊功能的字符我们叫做literal(文字)。bash中,常使用的引用有如下三种方法:1、单引号:单引号中的所有meta均被当作普通字符使用。
2、双引号:在双引号中的大部分meta都被当作普通字符,但某些字符的功能保留(如$)。
3、反斜线:只有紧接在反斜线(跳脱字符)之后的单一meta才被当作普通字符。
Windows的cmd下,同样也有类似的概念。单引号和双引号有时候没有区别(可以使用任意一个),有时候只能用特定的一个。
这篇文章主要记录python脚本入参带有&&符号时,在Linux和Windows平台的不同表现。
编写python脚本quote.py,内容如下:
$ cat quote.py
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import sys
print(sys.argv[1])
1、参数不使用引号
$ python quote.py whoami&&whoami
whoami
sunday
可以看出,第一个whoami被当作入参传给脚本,第二个whoami当作bash命令,在终端执行。
2、参数使用单引号
$ python quote.py 'whoami&&whoami'
whoami&&whoami
可以看出,&&被当作普通字符,whoami&&whoami作为参数传给了脚本。
3、参数使用双引号
$ python quote.py "whoami&&whoami"
whoami&&whoami
可以看出,&&被当作普通字符,whoami&&whoami作为参数传给了脚本。
在Windows执行脚本,用户为winsunday:
1、参数不使用引号
C:\test>python quote.py whoami&&whoami
whoami
winsunday
可以看出,第一个whoami被当作入参传给脚本,第二个whoami当作CMD命令,在终端执行。
2、参数使用单引号
C:\test>python quote.py 'whoami&&whoami'
'whoami
'whoami'' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
可以看出,单引号被当作普通字符,&&对命令进行了分割,'whoami作为第一个参数被传给脚本;whoami'被认为是一个命令进行执行(报错了)。
3、参数使用双引号
C:\test>python quote.py "whoami&&whoami"
whoami&&whoami
可以看出,双引号时&&被当作普通字符,whoami&&whoami作为整体被传给脚本。
以上是关于Python-单引号双引号和三引号的作用和区别的主要内容,如果未能解决你的问题,请参考以下文章