在上次筆記中,已經提前練習了命令行的使用方法,可使用cd 命令進入某一目錄。
打開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.'
不管對錯,先在命令行中運行一次。
進入源碼文件保存的目錄后,執行python ex1.py,回車。
可以看到,在界面上顯示了你在源碼中寫與雙引號或單引號之間的內容。
現在詳細剖析這段代碼。
1.print
咋一看,學過C語言的人都有一種似曾相識的感覺,與C語言中的printf()語句類似,作用都是輸出內容到界面上。這個作用從print的單詞意思(打印)也可以猜出來。
從顯示結果看,每個print后都自動換行了。說明print語句自動包含了換行符“\n”,為了測試這個猜測,可以在源碼任意一行手動添加一個換行符
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行之間有一空行,這就是那個手工增加的換行符起的作用。注意"\n"要放在引號里邊而不是外邊。
print "I'd much rather you 'not'.\n" #正確
print "I'd much rather you 'not'."\n #錯誤
我們在源碼中故意制造點錯誤出來,將最后一行的末尾的單引號去掉。
print 'I "said" do not touch this.??? #<---末尾沒有單引號,與前一單引號沒有形成配對
執行代碼,輸出如下:
英文看不懂就去查字典。
File "ex1.py", line 7
print 'I "said" do not touch this.
?????????????????????????????????????????????? ^
SyntaxError: EOL while scanning string literal
這個提示里面主要關注兩個地方,一是行號,二是異常原因
上面提示得很明顯,第7行(line 7),語法錯誤(SyntaxError),當掃描字符串時行未正確結束。
EOL(end of line),來自維基百科的解釋:
換行(英語:newline,Line break,end-of-line(EOL)),在計算機領域中是一種加在文字最后位置的特殊字元,在換行字元的下一個字元將會出現在下一行,實際上換行字元根據不同的硬件平臺或操作系統平臺會有不同的編碼方式。
換行字符可以看作是行的結束符,也可以看作行之間的分隔符,這兩種處理方式之間存在一些歧義。如果換行字符被當作分隔符,那么文件的最后一行就不需要再有換行字符。但是多數系統的做法是在最后一行的后面也加上一個換行字符,也就是把換行字符看作是行的結束符。這樣的程序在處理末行沒有換行字符的文件時,可能會存在問題。相反地,有的程序把換行符看作分隔符,就會把最末尾的換行字符看作是新行的開始,也就是多出了一個空行。
2.雙引號、單引號
有其他語言基礎的人都知道,單引號或雙引號之間是一串字符,程序將原樣輸出到界面。這里要注意的是原代碼的最后兩句
print "I'd much rather you 'not'."
print 'I "said" do not touch this.'
第一句以雙引號開始,雙引號結束,中間包含單引號
第二句以單引號開始,單引號結束,中間包含雙引號
首先,引號都得成對出現,另外單引號配單引號,雙引號配雙引號,否則將造成python混亂。同樣會報行未正確結束的異常。