Python 語言與 Perl,C 和 Java 等語言有許多類似之處。可是,也存在一些差別。html
在本章中咱們未來學習 Python 的基礎語法,讓你快速學會 Python 編程。python
交互式編程不須要建立腳本文件,是經過 Python 解釋器的交互模式進來編寫代碼。linux
linux上你只須要在命令行中輸入 Python 命令便可啓動交互式編程,提示窗口以下:express
$ python
Python 2.7.6 (default, Sep 9 2014, 15:04:36) [GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.39)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>>
Window 上在安裝 Python 時已經安裝了交互式編程客戶端,提示窗口以下:編程
在 python 提示符中輸入如下文本信息,而後按 Enter 鍵查看運行效果:網絡
>>> print "Hello, Python!"
在 Python 2.7.6 版本中,以上實例輸出結果以下:函數
Hello, Python!
經過腳本參數調用解釋器開始執行腳本,直到腳本執行完畢。當腳本執行完成後,解釋器再也不有效。學習
讓咱們寫一個簡單的 Python 腳本程序。全部 Python 文件將以 .py 爲擴展名。將如下的源代碼拷貝至 test.py 文件中。ui
print "Hello, Python!"
這裏,假設你已經設置了 Python 解釋器 PATH 變量。使用如下命令運行程序:this
$ python test.py
輸出結果:
Hello, Python!
讓咱們嘗試另外一種方式來執行 Python 腳本。修改 test.py 文件,以下所示:
#!/usr/bin/python print "Hello, Python!"
這裏,假定您的Python解釋器在/usr/bin目錄中,使用如下命令執行腳本:
$ chmod +x test.py # 腳本文件添加可執行權限 $ ./test.py
輸出結果:
Hello, Python!
在 Python 裏,標識符由字母、數字、下劃線組成。
在 Python 中,全部標識符能夠包括英文、數字以及下劃線(_),但不能以數字開頭。
Python 中的標識符是區分大小寫的。
如下劃線開頭的標識符是有特殊意義的。以單下劃線開頭 _foo 的表明不能直接訪問的類屬性,需經過類提供的接口進行訪問,不能用 from xxx import * 而導入。
以雙下劃線開頭的 __foo 表明類的私有成員,以雙下劃線開頭和結尾的 __foo__ 表明 Python 裏特殊方法專用的標識,如 __init__() 表明類的構造函數。
Python 能夠同一行顯示多條語句,方法是用分號 ; 分開,如:
>>> print 'hello';print 'runoob'; hello runoob
下面的列表顯示了在Python中的保留字。這些保留字不能用做常數或變數,或任何其餘標識符名稱。
全部 Python 的關鍵字只包含小寫字母。
and | exec | not |
assert | finally | or |
break | for | pass |
class | from | |
continue | global | raise |
def | if | return |
del | import | try |
elif | in | while |
else | is | with |
except | lambda | yield |
學習 Python 與其餘語言最大的區別就是,Python 的代碼塊不使用大括號 {} 來控制類,函數以及其餘邏輯判斷。python 最具特點的就是用縮進來寫模塊。
縮進的空白數量是可變的,可是全部代碼塊語句必須包含相同的縮進空白數量,這個必須嚴格執行。以下所示:
if True: print "True" else: print "False"
如下代碼將會執行錯誤:
#!/usr/bin/python # -*- coding: UTF-8 -*- # 文件名:test.py if True: print "Answer" print "True" else: print "Answer" # 沒有嚴格縮進,在執行時會報錯 print "False"
執行以上代碼,會出現以下錯誤提醒:
$ python test.py File "test.py", line 10 print "False" ^ IndentationError: unindent does not match any outer indentation level
IndentationError: unindent does not match any outer indentation level錯誤代表,你使用的縮進方式不一致,有的是 tab 鍵縮進,有的是空格縮進,改成一致便可。
若是是 IndentationError: unexpected indent 錯誤, 則 python 編譯器是在告訴你"Hi,老兄,你的文件裏格式不對了,多是tab和空格沒對齊的問題",全部 python 對格式要求很是嚴格。
所以,在 Python 的代碼塊中必須使用相同數目的行首縮進空格數。
建議你在每一個縮進層次使用 單個製表符 或 兩個空格 或 四個空格 , 切記不能混用
Python語句中通常以新行做爲語句的結束符。
可是咱們可使用斜槓( \)將一行的語句分爲多行顯示,以下所示:
total = item_one + \ item_two + \ item_three
語句中包含 [], {} 或 () 括號就不須要使用多行鏈接符。以下實例:
days = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday']
Python 可使用引號( ' )、雙引號( " )、三引號( ''' 或 """ ) 來表示字符串,引號的開始與結束必須的相同類型的。
其中三引號能夠由多行組成,編寫多行文本的快捷語法,經常使用於文檔字符串,在文件的特定地點,被當作註釋。
word = 'word' sentence = "這是一個句子。" paragraph = """這是一個段落。 包含了多個語句"""
python中單行註釋採用 # 開頭。
#!/usr/bin/python # -*- coding: UTF-8 -*- # 文件名:test.py # 第一個註釋 print "Hello, Python!" # 第二個註釋
輸出結果:
Hello, Python!
註釋能夠在語句或表達式行末:
name = "Madisetti" # 這是一個註釋
python 中多行註釋使用三個單引號(''')或三個雙引號(""")。
#!/usr/bin/python # -*- coding: UTF-8 -*- # 文件名:test.py ''' 這是多行註釋,使用單引號。 這是多行註釋,使用單引號。 這是多行註釋,使用單引號。 ''' """ 這是多行註釋,使用雙引號。 這是多行註釋,使用雙引號。 這是多行註釋,使用雙引號。 """
函數之間或類的方法之間用空行分隔,表示一段新的代碼的開始。類和函數入口之間也用一行空行分隔,以突出函數入口的開始。
空行與代碼縮進不一樣,空行並非Python語法的一部分。書寫時不插入空行,Python解釋器運行也不會出錯。可是空行的做用在於分隔兩段不一樣功能或含義的代碼,便於往後代碼的維護或重構。
記住:空行也是程序代碼的一部分。
下面的程序執行後就會等待用戶輸入,按回車鍵後就會退出:
#!/usr/bin/python # -*- coding: UTF-8 -*- raw_input("按下 enter 鍵退出,其餘任意鍵顯示...\n")
以上代碼中 ,\n 實現換行。一旦用戶按下 enter(回車) 鍵退出,其它鍵顯示。
Python能夠在同一行中使用多條語句,語句之間使用分號(;)分割,如下是一個簡單的實例:
#!/usr/bin/python import sys; x = 'runoob'; sys.stdout.write(x + '\n')
執行以上代碼,輸入結果爲:
$ python test.py runoob
print 默認輸出是換行的,若是要實現不換行須要在變量末尾加上逗號 ,
#!/usr/bin/python # -*- coding: UTF-8 -*- x="a" y="b" # 換行輸出 print x print y print '---------' # 不換行輸出 print x, print y, # 不換行輸出 print x,y
以上實例執行結果爲:
a
b
--------- a b a b
縮進相同的一組語句構成一個代碼塊,咱們稱之代碼組。
像if、while、def和class這樣的複合語句,首行以關鍵字開始,以冒號( : )結束,該行以後的一行或多行代碼構成代碼組。
咱們將首行及後面的代碼組稱爲一個子句(clause)。
以下實例:
if expression : suite elif expression : suite else : suite
不少程序能夠執行一些操做來查看一些基本信息,Python 可使用 -h 參數查看各參數幫助信息:
$ python -h usage: python [option] ... [-c cmd | -m mod | file | -] [arg] ... Options and arguments (and corresponding environment variables): -c cmd : program passed in as string (terminates option list) -d : debug output from parser (also PYTHONDEBUG=x) -E : ignore environment variables (such as PYTHONPATH) -h : print this help message and exit [ etc. ]
咱們在使用腳本形式執行 Python 時,能夠接收命令行輸入的參數,具體使用能夠參照 Python 命令行參數
1、
執行腳本傳入參數,使用sys模塊,編輯 test.py 以下
#!/usr/bin/python # -*- coding: UTF-8 -*- import sys print sys.argv
sys.argv 用來獲取命令行參數
運行命令,執行結果:
./test.py hello ['./test.py', 'hello']
sys.argv[0] 表明文件自己路徑,所帶參數從 sys.argv[1] 開始。
2、
腳本語言的第一行,目的就是指出,你想要你的這個文件中的代碼用什麼可執行程序去運行它,就這麼簡單。
#!/usr/bin/python : 是告訴操做系統執行這個腳本的時候,調用 /usr/bin 下的 python 解釋器;
#!/usr/bin/env python(推薦): 這種用法是爲了防止操做系統用戶沒有將 python 裝在默認的 /usr/bin 路徑裏。當系統看到這一行的時候,首先會到 env 設置裏查找 python 的安裝路徑,再調用對應路徑下的解釋器程序完成操做。
#!/usr/bin/python 至關於寫死了python路徑;
#!/usr/bin/env python 會去環境設置尋找 python 目錄,推薦這種寫法
3、
網絡上看到的一張 Python 基礎語法圖: