python語言基礎(chǔ)知識有:
隆陽網(wǎng)站建設(shè)公司成都創(chuàng)新互聯(lián)公司,隆陽網(wǎng)站設(shè)計制作,有大型網(wǎng)站制作公司豐富經(jīng)驗。已為隆陽千余家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站建設(shè)要多少錢,請找那個售后服務(wù)好的隆陽做網(wǎng)站的公司定做!
1、Python是一個動態(tài)類型語言,可以為變量賦任意值,也可以修改變量的值。
2、字符串:表示一段文本信息,必須使用引號引起來;不能同時混用。
3、導(dǎo)入是將python的一些功能函數(shù)放到當(dāng)前的腳本中使用,不導(dǎo)入的功能無法直接在當(dāng)前腳本使用。
4、python腳本的入口叫主函數(shù)main。
5、每個變量被定義后存入一個內(nèi)存塊。
print?'main'當(dāng)腳本作為執(zhí)行腳本時__name__的值為__main__當(dāng)腳本作為模塊時__name__為模塊文件名。
main函數(shù)在程序中大多數(shù)是必須存在的。C語言標(biāo)準(zhǔn)中強制要求main函數(shù)的返回值類型為int,main函數(shù)的返回值是傳遞給操作系統(tǒng),讓操作系統(tǒng)判斷程序的執(zhí)行情況。
一個程序,無論復(fù)雜或簡單,總體上都是一個“函數(shù)”;這個函數(shù)就稱為“main 函數(shù)”,也就是“主函數(shù)”。比如有個“做菜”程序,那么“ 做菜 ”這個過程就是“主函數(shù)”。在主函數(shù)中,根據(jù)情況,你可能還需要調(diào)用“買菜,切菜,炒菜”等子函數(shù)。
main函數(shù)在程序中大多數(shù)是必須存在的,但是依然有例外情況,比如windows編程中可以編寫一個動態(tài)鏈接庫模塊,這是其他windows程序可以使用的代碼。由于DLL模塊不是獨立的程序,因此不需要main函數(shù)。
從函數(shù)的形勢看,函數(shù)分兩類:
無參函數(shù)。printstar和print_message就是無參函數(shù)。在調(diào)用無參函數(shù)時,主調(diào)函數(shù)并不將數(shù)據(jù)傳送給被調(diào)用函數(shù),一般用來執(zhí)行指定的一組操作。
有參函數(shù)。在調(diào)用函數(shù)時,在主調(diào)函數(shù)和被調(diào)用函數(shù)之間有數(shù)據(jù)傳遞。也就是說,主調(diào)函數(shù)可以將數(shù)據(jù)傳遞給被調(diào)用函數(shù)使用,被調(diào)用函數(shù)中的數(shù)據(jù)也可以帶回來供主調(diào)函數(shù)使用。
一般來說,Python程序員可能是這樣寫main()函數(shù)的:
"""Module docstring.
This serves as a long usage message.
"""import sysimport getoptdef main():
# parse command line options
try:
opts, args = getopt.getopt(sys.argv[1:], "h", ["help"]) except getopt.error, msg: print msg print "for help use --help"
sys.exit(2) # process options
for o, a in opts: if o in ("-h", "--help"): print __doc__
sys.exit(0) # process arguments
for arg in args:
process(arg) # process() is defined elsewhereif __name__ == "__main__":
main()1234567891011121314151617181920212223242526
Guido也承認(rèn)之前自己寫的main()函數(shù)也是類似的結(jié)構(gòu),但是這樣寫的靈活性還不夠高,尤其是需要解析復(fù)雜的命令行選項時。為此,他向大家提出了幾點建議。
添加可選的 argv 參數(shù)
首先,修改main()函數(shù),使其接受一個可選參數(shù) argv,支持在交互式shell中調(diào)用該函數(shù):
def main(argv=None):
if argv is None:
argv = sys.argv # etc., replacing sys.argv with argv in the getopt() call.1234
這樣做,我們就可以動態(tài)地提供 argv 的值,這比下面這樣寫更加的靈活:
def main(argv=sys.argv):
# etc.12
這是因為在調(diào)用函數(shù)時,sys.argv 的值可能會發(fā)生變化;可選參數(shù)的默認(rèn)值都是在定義main()函數(shù)時,就已經(jīng)計算好的。
但是現(xiàn)在sys.exit()函數(shù)調(diào)用會產(chǎn)生問題:當(dāng)main()函數(shù)調(diào)用sys.exit()時,交互式解釋器就會推出!解決辦法是讓main()函數(shù)的返回值指示退出狀態(tài)(exit status)。因此,最后面的那行代碼就變成了這樣:
if __name__ == "__main__":
sys.exit(main())12
并且,main()函數(shù)中的sys.exit(n)調(diào)用全部變成return n。
定義一個Usage()異常
另一個改進(jìn)之處,就是定義一個Usage()異常,可以在main()函數(shù)最后的except子句捕捉該異常:
import sysimport getoptclass Usage(Exception):
def __init__(self, msg):
self.msg = msgdef main(argv=None):
if argv is None:
argv = sys.argv try: try:
opts, args = getopt.getopt(argv[1:], "h", ["help"]) except getopt.error, msg: raise Usage(msg) # more code, unchanged
except Usage, err: print sys.stderr, err.msg print sys.stderr, "for help use --help"
return 2if __name__ == "__main__":
sys.exit(main())123456789101112131415161718192021222324
這樣main()函數(shù)就只有一個退出點(exit)了,這比之前兩個退出點的做法要好。而且,參數(shù)解析重構(gòu)起來也更容易:在輔助函數(shù)中引發(fā)Usage的問題不大,但是使用return 2卻要求仔細(xì)處理返回值傳遞的問題。
主調(diào)函數(shù)是本身固有的數(shù),被調(diào)函數(shù)是通過其他數(shù)計算出來的
主調(diào)函數(shù) 調(diào)用別的函數(shù)實現(xiàn)功能
例如 A是主調(diào)函數(shù) B是被調(diào)函數(shù)
void A()
{
B();
}