Python-单引号双引号和三引号的作用和区别

Posted 业余砖家

tags:

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

(一)作用

   1. 单引号:单引号内部为一串字符(str)。

   2. 双引号:双引号内部为一串字符,双引号内的字符串可以出现单引号(相当于双引号优先级更高),但不能嵌套双引号。

   3. 三引号:用于换行输出,且缩进会被打印出来。(三引号还可以用来进行块注释)。

(二)、共同点

  1. python中变量赋值字符串均可使用三者符号来表示。
  2. 三者都可以直接引用字符串是等价的。

(三)、不同点

  1. 双引号中可以包含单引号,避免使用单引号包含字符串频繁使用转义符。
  2. 三引号中可以包含换行符、制表符以及其他特殊字符(即在读取转义符的基础上完全复现引号内输入的全部内容,避免频繁使用换行符/n。
  3. 可以包含#注释,自身可以作为多行注释标志符使用。
  4. 三引号也可以表示字符串,而且能够保留字符串的格式,里面也可以包含单引号和双引号,但是单引号和双引号不能包含三引号。
  5. 如果想要单引号嵌套单引号,双引号嵌套双引号,可以用转义字符。
  6. 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)

结果输出:

 

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-单引号双引号和三引号的作用和区别的主要内容,如果未能解决你的问题,请参考以下文章

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

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

Python篇(一) 引号的作用及其区别

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

python单引号和双引号的区别

python循环条件判断