http://www.runoob.com/python/python-basic-syntax.html
Python 基礎(chǔ)語(yǔ)法
Python語(yǔ)言與Perl,C和Java等語(yǔ)言有許多相似之處。但是浪讳,也存在一些差異。
在本章中我們將來(lái)學(xué)習(xí)Python的基礎(chǔ)語(yǔ)法莉擒,讓你快速學(xué)會(huì)Python編程挠唆。
第一個(gè)Python程序
交互式編程
交互式編程不需要?jiǎng)?chuàng)建腳本文件婚脱,是通過(guò) Python 解釋器的交互模式進(jìn)來(lái)編寫代碼粹懒。
linux上你只需要在命令行中輸入 Python 命令即可啟動(dòng)交互式編程,提示窗口如下:
$ 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時(shí)已經(jīng)已經(jīng)安裝了默認(rèn)的交互式編程客戶端重付,提示窗口如下:
在 python 提示符中輸入以下文本信息,然后按 Enter 鍵查看運(yùn)行效果:
>>> print "Hello, Python!";
在 Python 2.7.6 版本中,以上實(shí)例輸出結(jié)果如下:
Hello, Python!
腳本式編程
通過(guò)腳本參數(shù)調(diào)用解釋器開始執(zhí)行腳本凫乖,直到腳本執(zhí)行完畢确垫。當(dāng)腳本執(zhí)行完成后弓颈,解釋器不再有效。
讓我們寫一個(gè)簡(jiǎn)單的Python腳本程序删掀。所有Python文件將以.py為擴(kuò)展名翔冀。將以下的源代碼拷貝至test.py文件中。
print "Hello, Python!";
這里披泪,假設(shè)你已經(jīng)設(shè)置了Python解釋器PATH變量纤子。使用以下命令運(yùn)行程序:
$ python test.py
輸出結(jié)果:
Hello, Python!
讓我們嘗試另一種方式來(lái)執(zhí)行Python腳本。修改test.py文件款票,如下所示:
#!/usr/bin/pythonprint "Hello, Python!";
這里计福,假定您的Python解釋器在/usr/bin目錄中,使用以下命令執(zhí)行腳本:
$ chmod +x test.py # 腳本文件添加可執(zhí)行權(quán)限$ ./test.py
輸出結(jié)果:
Hello, Python!
Python 標(biāo)識(shí)符
在python里徽职,標(biāo)識(shí)符有字母、數(shù)字佩厚、下劃線組成姆钉。
在python中,所有標(biāo)識(shí)符可以包括英文抄瓦、數(shù)字以及下劃線(_)潮瓶,但不能以數(shù)字開頭。
python中的標(biāo)識(shí)符是區(qū)分大小寫的钙姊。
以下劃線開頭的標(biāo)識(shí)符是有特殊意義的毯辅。以單下劃線開頭(_foo)的代表不能直接訪問(wèn)的類屬性,需通過(guò)類提供的接口進(jìn)行訪問(wèn)煞额,不能用"from xxx import *"而導(dǎo)入思恐;
以雙下劃線開頭的(__foo)代表類的私有成員;以雙下劃線開頭和結(jié)尾的(foo)代表python里特殊方法專用的標(biāo)識(shí)膊毁,如init()代表類的構(gòu)造函數(shù)胀莹。
Python保留字符
下面的列表顯示了在Python中的保留字。這些保留字不能用作常數(shù)或變數(shù)婚温,或任何其他標(biāo)識(shí)符名稱描焰。
所有Python的關(guān)鍵字只包含小寫字母。
and
exec
not
assert
finally
or
break
for
pass
class
from
print
continue
global
raise
def
if
return
del
import
try
elif
in
while
else
is
with
except
lambda
yield
行和縮進(jìn)
學(xué)習(xí)Python與其他語(yǔ)言最大的區(qū)別就是栅螟,Python的代碼塊不使用大括號(hào)({})來(lái)控制類荆秦,函數(shù)以及其他邏輯判斷。python最具特色的就是用縮進(jìn)來(lái)寫模塊力图。
縮進(jìn)的空白數(shù)量是可變的步绸,但是所有代碼塊語(yǔ)句必須包含相同的縮進(jìn)空白數(shù)量,這個(gè)必須嚴(yán)格執(zhí)行吃媒。如下所示:
if True:
print "True"
else:
print "False"
以下代碼將會(huì)執(zhí)行錯(cuò)誤:
#!/usr/bin/python# -*- coding: UTF-8 -*-
# 文件名:test.py
if True:
print "Answer"
print "True"
else:
print "Answer"
# 沒(méi)有嚴(yán)格縮進(jìn)靡努,在執(zhí)行時(shí)會(huì)報(bào)錯(cuò)
print "False"
執(zhí)行以上代碼坪圾,會(huì)出現(xiàn)如下錯(cuò)誤提醒:
$ python test.py File "test.py", line 5 if True: ^IndentationError: unexpected indent
IndentationError: unexpected indent 錯(cuò)誤是python編譯器是在告訴你"Hi,老兄惑朦,你的文件里格式不對(duì)了兽泄,可能是tab和空格沒(méi)對(duì)齊的問(wèn)題",所有python對(duì)格式要求非常嚴(yán)格漾月。
如果是 IndentationError: unindent does not match any outer indentation level錯(cuò)誤表明病梢,你使用的縮進(jìn)方式不一致,有的是 tab 鍵縮進(jìn)梁肿,有的是空格縮進(jìn)蜓陌,改為一致即可。
因此吩蔑,在Python的代碼塊中必須使用相同數(shù)目的行首縮進(jìn)空格數(shù)钮热。
建議你在每個(gè)縮進(jìn)層次使用 單個(gè)制表符 或 兩個(gè)空格 或 四個(gè)空格 , 切記不能混用
多行語(yǔ)句
Python語(yǔ)句中一般以新行作為為語(yǔ)句的結(jié)束符。
但是我們可以使用斜杠( \)將一行的語(yǔ)句分為多行顯示烛芬,如下所示:
total = item_one + \
item_two + \
item_three
語(yǔ)句中包含[], {} 或 () 括號(hào)就不需要使用多行連接符隧期。如下實(shí)例:
days = ['Monday', 'Tuesday', 'Wednesday',
'Thursday', 'Friday']
Python 引號(hào)
Python 接收單引號(hào)( ' )、雙引號(hào)( " )赘娄、三引號(hào)( ''' 或 """ ) 來(lái)表示字符串仆潮,引號(hào)的開始與結(jié)束必須的相同類型的。
其中三引號(hào)可以由多行組成遣臼,編寫多行文本的快捷語(yǔ)法性置,常用語(yǔ)文檔字符串,在文件的特定地點(diǎn)揍堰,被當(dāng)做注釋鹏浅。
word = 'word'
sentence = "這是一個(gè)句子。"
paragraph = """這是一個(gè)段落屏歹。
包含了多個(gè)語(yǔ)句"""
Python注釋
python中單行注釋采用 # 開頭篡石。
#!/usr/bin/python
# -*- coding: UTF-8 -*-
# 文件名:test.py
# 第一個(gè)注釋
print ("Hello, Python!"); # 第二個(gè)注釋
輸出結(jié)果:
Hello, Python!
注釋可以在語(yǔ)句或表達(dá)式行末:
name = "Madisetti" # 這是一個(gè)注釋
python 中多行注釋使用三個(gè)單引號(hào)(''')或三個(gè)雙引號(hào)(""")。
#!/usr/bin/python
# -*- coding: UTF-8 -*-
# 文件名:test.py
'''
這是多行注釋西采,使用單引號(hào)凰萨。
這是多行注釋,使用單引號(hào)械馆。
這是多行注釋胖眷,使用單引號(hào)。
'''
"""
這是多行注釋霹崎,使用雙引號(hào)珊搀。
這是多行注釋,使用雙引號(hào)尾菇。
這是多行注釋境析,使用雙引號(hào)囚枪。
"""
Python空行
函數(shù)之間或類的方法之間用空行分隔,表示一段新的代碼的開始劳淆。類和函數(shù)入口之間也用一行空行分隔链沼,以突出函數(shù)入口的開始。
空行與代碼縮進(jìn)不同沛鸵,空行并不是Python語(yǔ)法的一部分括勺。書寫時(shí)不插入空行,Python解釋器運(yùn)行也不會(huì)出錯(cuò)曲掰。但是空行的作用在于分隔兩段不同功能或含義的代碼疾捍,便于日后代碼的維護(hù)或重構(gòu)。
記桌秆:空行也是程序代碼的一部分乱豆。
等待用戶輸入
下面的程序在按回車鍵后就會(huì)等待用戶輸入:
#!/usr/bin/python
raw_input("\n\nPress the enter key to exit.")
以上代碼中 ,"\n\n"在結(jié)果輸出前會(huì)輸出兩個(gè)新的空行吊趾。一旦用戶按下 enter(回車) 鍵退出宛裕,其它鍵顯示。
同一行顯示多條語(yǔ)句
Python可以在同一行中使用多條語(yǔ)句趾徽,語(yǔ)句之間使用分號(hào)(;)分割,以下是一個(gè)簡(jiǎn)單的實(shí)例:
#!/usr/bin/python
import sys; x = 'runoob'; sys.stdout.write(x + '\n')
執(zhí)行以上代碼翰守,輸入結(jié)果為:
$ python test.py
runoob
多個(gè)語(yǔ)句構(gòu)成代碼組
縮進(jìn)相同的一組語(yǔ)句構(gòu)成一個(gè)代碼塊孵奶,我們稱之代碼組。
像if蜡峰、while了袁、def和class這樣的復(fù)合語(yǔ)句,首行以關(guān)鍵字開始湿颅,以冒號(hào)( : )結(jié)束载绿,該行之后的一行或多行代碼構(gòu)成代碼組。
我們將首行及后面的代碼組稱為一個(gè)子句(clause)油航。
如下實(shí)例:
if expression :
suite
elif expression :
suite
else :
suite
命令行參數(shù)
很多程序可以執(zhí)行一些操作來(lái)查看一些基本信崭庸,Python可以使用-h參數(shù)查看各參數(shù)幫助信息:
$ 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. ]
我們?cè)谑褂媚_本形式執(zhí)行 Python 時(shí),可以接收命令行輸入的參數(shù)谊囚,具體使用可以參照 Python 命令行參數(shù)怕享。