Python基礎文法,python文法
python內部執行流程
編碼
預設情況下,Python3源碼檔案以UTF-8編碼,所有字串都是Unicode字串。當然也可以為源碼檔案指定不同的編碼:
# -*- coding: cp-1252 –*-
1. ASCII
python2的解譯器在載入.py檔案中的代碼時,會對內容進行編碼(預設ASCII)
ASCII是基於拉丁字母的一套電腦編碼系統,主要用於顯示現代英語和其他西歐語言,其最多隻能用8位來表示(1個位元組),即:2**8=256.所有ASCII碼最多隻能表示256個符號
>>> import keyword>>> keyword.kwlist['False', 'None', 'True', 'and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
注釋
Python中的單行注釋以#開頭
#!/usr/bin/env python# coding=utf-8# 第一行注釋print("hello world!") # 第一行注釋"""多行注釋"""'''多行注釋'''
行與縮排
python中通過使用縮排來表示代碼塊,不需要使用大括弧“{}”,縮排的空格數是可變的,但是同一個代碼塊語句的縮排空格數必須一致。
if True: print("True")else: print("False") 如果縮排不一致,會導致運行錯誤
#!/usr/bin/python3# -*- coding: UTF-8 -*-# 檔案名稱:test.pyif True: print("Answer") print("True")else: print("Answer") # 沒有嚴格縮排,在執行時保持 print("False") le "/****/****", line 10 print("False") ^IndentationError: unexpected indent
單語句多行
python通常一行寫完一個語句,但如果語句很長,可以使用反斜線“\”來實現多行語句,例如:
A = "a"B = "b"C = "c"abc = A + \ B + \ C
在”[]”、”{}”、”()”中的不需要使用反斜線“\”,例如:
A = {"a", "b", "c"}B = """keeplive"""C = '''homework'''
資料類型
空行
函數之間或類的方法之間用空行分隔,表示一段新的代碼的開始。類和函數的入口之間也用一行空行分隔,以突出函數入口的開始。空行與代碼縮排不同,空行並不是python文法的一部分。書寫時不插入空行,python解譯器也不會報錯。但是空行可以分隔兩段不同功能或含義的代碼,便於日後的維護和重構。
註:空行也是程式碼的一部分
多語句單行
python中可以在同一行中使用多條語句,語句之間使用分號“;”分隔。
如下執行個體:
#!/usr/bin/python3import sys; x = 'runoob'; sys.stdout.write(x + '\n')
多個語句構成程式碼群組
縮排相同的一組語句構成一個代碼塊,我們稱之為程式碼群組。像if、while、def、class這樣的複合陳述式,首行以關鍵字開始,以冒號“:”結束,該行之後的一行或多長代碼構成程式碼群組。我們將首行及後面的程式碼群組成為一個子句(clause)。
如下執行個體:
if expression : suiteelif expression : suite else : suite
.pyc檔案
執行Python代碼時,如果匯入了其他的.py檔案,那麼在執行過程中會自動產生一個與其同名的.pyc檔案,該檔案就是python解譯器編譯之後產生的位元組碼
註:代碼經過編譯可以產生位元組碼,位元組碼通過反編譯也可以得到代碼