Linux的shell中存在一些特殊字符(保留字),我們將這些具有一些特殊功能的字符叫做meta(元字符),還有一些普通的,沒(méi)有特殊功能的字符我們叫做literal(文字)。bash中,常使用的引用有如下三種方法:
慈溪網(wǎng)站建設(shè)公司成都創(chuàng)新互聯(lián),慈溪網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為慈溪近千家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站建設(shè)公司要多少錢(qián),請(qǐng)找那個(gè)售后服務(wù)好的慈溪做網(wǎng)站的公司定做!
1、單引號(hào):?jiǎn)我?hào)中的所有meta均被當(dāng)作普通字符使用。
2、雙引號(hào):在雙引號(hào)中的大部分meta都被當(dāng)作普通字符,但某些字符的功能保留(如$)。
3、反斜線(xiàn):只有緊接在反斜線(xiàn)(跳脫字符)之后的單一meta才被當(dāng)作普通字符。
Windows的cmd下,同樣也有類(lèi)似的概念。單引號(hào)和雙引號(hào)有時(shí)候沒(méi)有區(qū)別(可以使用任意一個(gè)),有時(shí)候只能用特定的一個(gè)。
這篇文章主要記錄python腳本入?yún)в蟹?hào)時(shí),在Linux和Windows平臺(tái)的不同表現(xiàn)。
編寫(xiě)python腳本quote.py,內(nèi)容如下:
$ cat quote.py
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import sys
print(sys.argv[1])
1、參數(shù)不使用引號(hào)
$ python quote.py whoamiwhoami
whoami
sunday
可以看出,第一個(gè)whoami被當(dāng)作入?yún)鹘o腳本,第二個(gè)whoami當(dāng)作bash命令,在終端執(zhí)行。
2、參數(shù)使用單引號(hào)
$ python quote.py 'whoamiwhoami'
whoamiwhoami
可以看出,被當(dāng)作普通字符,whoamiwhoami作為參數(shù)傳給了腳本。
3、參數(shù)使用雙引號(hào)
$ python quote.py "whoamiwhoami"
whoamiwhoami
可以看出,被當(dāng)作普通字符,whoamiwhoami作為參數(shù)傳給了腳本。
在Windows執(zhí)行腳本,用戶(hù)為winsunday:
1、參數(shù)不使用引號(hào)
C:\testpython quote.py whoamiwhoami
whoami
winsunday
可以看出,第一個(gè)whoami被當(dāng)作入?yún)鹘o腳本,第二個(gè)whoami當(dāng)作CMD命令,在終端執(zhí)行。
2、參數(shù)使用單引號(hào)
C:\testpython quote.py 'whoamiwhoami'
'whoami
'whoami'' 不是內(nèi)部或外部命令,也不是可運(yùn)行的程序
或批處理文件。
可以看出,單引號(hào)被當(dāng)作普通字符,對(duì)命令進(jìn)行了分割,'whoami作為第一個(gè)參數(shù)被傳給腳本;whoami'被認(rèn)為是一個(gè)命令進(jìn)行執(zhí)行(報(bào)錯(cuò)了)。
3、參數(shù)使用雙引號(hào)
C:\testpython quote.py "whoamiwhoami"
whoamiwhoami
可以看出,雙引號(hào)時(shí)被當(dāng)作普通字符,whoamiwhoami作為整體被傳給腳本。
我也是初學(xué),說(shuō)說(shuō)我的理解:
你寫(xiě)代碼的時(shí)候要求n2==123,這個(gè)123不加引號(hào)就是表示整數(shù),加了引號(hào)表示字符串;
然后你用input函數(shù)來(lái)獲得用戶(hù)的輸入,但是input收集來(lái)的信息默認(rèn)是字符串,
這樣一來(lái),左邊是整數(shù),右邊是字符串,類(lèi)型不同、永遠(yuǎn)不可能相等。
再加了引號(hào),將兩邊都統(tǒng)一為字符串之后,才有相等的可能。
(同樣是萌新才說(shuō)的這么詳細(xì),大佬都是一句話(huà)帶過(guò)hh)
在python中加法加雙引號(hào)意思是表示里面的內(nèi)容是字符串,和單引號(hào)等價(jià)。
1、新建python文件,teststr.py;
2、在雙引號(hào)前面加個(gè)轉(zhuǎn)義符 \ ,即反斜杠。如"Hello? \"W \"orld",會(huì)輸出? Hello "W"orld;
3、用單引號(hào)引起整個(gè)字符串,如'Hello "W"orld',同樣輸出??Hello "W"orld;
4、同理也可以在字符串里嵌入單引號(hào),如"Hello 'W'orld",輸出 Hello 'W'orld;
5、運(yùn)行python代碼,查看執(zhí)行結(jié)果。
加上引號(hào)以后表示引號(hào)標(biāo)注的內(nèi)容是字面值(literalvalue)。
字面值就是所看即所得,'abc'表示一個(gè)字符串,它由三個(gè)字母abc組成的字符串。
如果不加引號(hào)abc就會(huì)被解析器認(rèn)為是一個(gè)名字叫abcd的一個(gè)變量。假設(shè)abc里面存的是'helloworld。',printabc顯示的就是helloworld。但是print'abc'顯示的就是abc。
一種格式化字符串的函數(shù)。
大括號(hào)里面是可以帶數(shù)字的,他表示的是取format( )括號(hào)中的第幾個(gè)元素,索引從0開(kāi)始,所以需要加引號(hào)。
Python2.6 開(kāi)始,新增了一種格式化字符串的函數(shù) str.format(),它增強(qiáng)了字符串格式化的功能?;菊Z(yǔ)法是通過(guò) {} 和 : 來(lái)代替以前的 % 。format 函數(shù)可以接受不限個(gè)參數(shù),位置可以不按順序。