在上次筆記中庭呜,已經(jīng)提前練習(xí)了命令行的使用方法,可使用cd 命令進(jìn)入某一目錄尺铣。
打開gedit硕旗,一字不落輸入書中代碼
print "Hello World!"
print "Hello Again"
print "I like typing this."
print "This is fun."
print "Yay! Printing."
print "I'd much rather you 'not'."
print 'I "said" do not touch this.'
不管對(duì)錯(cuò),先在命令行中運(yùn)行一次但惶。
進(jìn)入源碼文件保存的目錄后耳鸯,執(zhí)行python ex1.py,回車膀曾。
可以看到县爬,在界面上顯示了你在源碼中寫與雙引號(hào)或單引號(hào)之間的內(nèi)容。
現(xiàn)在詳細(xì)剖析這段代碼添谊。
1.print
咋一看财喳,學(xué)過C語言的人都有一種似曾相識(shí)的感覺,與C語言中的printf()語句類似碉钠,作用都是輸出內(nèi)容到界面上纲缓。這個(gè)作用從print的單詞意思(打印)也可以猜出來喊废。
從顯示結(jié)果看,每個(gè)print后都自動(dòng)換行了栗弟。說明print語句自動(dòng)包含了換行符“\n”污筷,為了測(cè)試這個(gè)猜測(cè),可以在源碼任意一行手動(dòng)添加一個(gè)換行符
print "Hello World!"
print "Hello Again"
print "I like typing this."
print "This is fun."
print "Yay! Printing."
print "I'd much rather you 'not'.\n"
print 'I "said" do not touch this.'
輸出如下:
在第6行和第7行之間有一空行乍赫,這就是那個(gè)手工增加的換行符起的作用瓣蛀。注意"\n"要放在引號(hào)里邊而不是外邊。
print "I'd much rather you 'not'.\n" #正確
print "I'd much rather you 'not'."\n #錯(cuò)誤
我們?cè)谠创a中故意制造點(diǎn)錯(cuò)誤出來雷厂,將最后一行的末尾的單引號(hào)去掉惋增。
print 'I "said" do not touch this.??? #<---末尾沒有單引號(hào),與前一單引號(hào)沒有形成配對(duì)
執(zhí)行代碼改鲫,輸出如下:
英文看不懂就去查字典诈皿。
File "ex1.py", line 7
print 'I "said" do not touch this.
?????????????????????????????????????????????? ^
SyntaxError: EOL while scanning string literal
這個(gè)提示里面主要關(guān)注兩個(gè)地方,一是行號(hào)像棘,二是異常原因
上面提示得很明顯稽亏,第7行(line 7),語法錯(cuò)誤(SyntaxError)缕题,當(dāng)掃描字符串時(shí)行未正確結(jié)束截歉。
EOL(end of line),來自維基百科的解釋:
換行(英語:newline,Line break烟零,end-of-line(EOL))瘪松,在計(jì)算機(jī)領(lǐng)域中是一種加在文字最后位置的特殊字元咸作,在換行字元的下一個(gè)字元將會(huì)出現(xiàn)在下一行,實(shí)際上換行字元根據(jù)不同的硬件平臺(tái)或操作系統(tǒng)平臺(tái)會(huì)有不同的編碼方式宵睦。
換行字符可以看作是行的結(jié)束符记罚,也可以看作行之間的分隔符,這兩種處理方式之間存在一些歧義状飞。如果換行字符被當(dāng)作分隔符毫胜,那么文件的最后一行就不需要再有換行字符。但是多數(shù)系統(tǒng)的做法是在最后一行的后面也加上一個(gè)換行字符诬辈,也就是把換行字符看作是行的結(jié)束符酵使。這樣的程序在處理末行沒有換行字符的文件時(shí),可能會(huì)存在問題焙糟。相反地口渔,有的程序把換行符看作分隔符,就會(huì)把最末尾的換行字符看作是新行的開始穿撮,也就是多出了一個(gè)空行缺脉。
2.雙引號(hào)、單引號(hào)
有其他語言基礎(chǔ)的人都知道,單引號(hào)或雙引號(hào)之間是一串字符锦聊,程序?qū)?b>原樣輸出到界面肠套。這里要注意的是原代碼的最后兩句
print "I'd much rather you 'not'."
print 'I "said" do not touch this.'
第一句以雙引號(hào)開始,雙引號(hào)結(jié)束礁扮,中間包含單引號(hào)
第二句以單引號(hào)開始,單引號(hào)結(jié)束瞬沦,中間包含雙引號(hào)
首先太伊,引號(hào)都得成對(duì)出現(xiàn),另外單引號(hào)配單引號(hào)逛钻,雙引號(hào)配雙引號(hào)僚焦,否則將造成python混亂。同樣會(huì)報(bào)行未正確結(jié)束的異常曙痘。