python之程式結構
阿新 • • 發佈:2019-02-02
1、控制結構
if a>b: #註釋 ,多行註釋可以用 '''多行註釋''' result=a-b elif a<b: result=b-a else: result=0 while a<100: if a==30: continue if a>50: break print(a) pass #nop while a<100: print(a) for eachnum in [1,2,3]: print(eachnum) def add(a=1,b=2): return (a+b)
2、函式結構
def addnum (a,b=1,*c,**d): #位置引數,預設引數,元組引數,字典引數,順序不能改變 print "a is "+str(a)+" b is "+str(b) sum=a+b; print "para in c" for every_para in c: print every_para sum=sum+every_para print "para in d" for every_key in d.keys(): print every_key+" value "+str(d[every_key]) sum=sum+d[every_key] return sum #print addnum(1,2,3,4,key1=5,key2=6) #單行函式可以用表示式表示 mulnum=lambda a,b=2:a*b print mulnum(10)
3、類組織
class person: "this is a person" #類文件 country="china" #類屬性 def __init__ (self,name,age=28): #建構函式,用預設引數來實現函式過載 self.name=name #例項屬性不用預先定義,實際上可以隨時新增 self.age=age def sayhello (self):例項方法,注意有self引數 print "hello,i am a person" @classmethod def sayhello (cls): print "hello word "+cls.country @staticmethod def sayhello (): print "hi word" person1=person("justsong") class student(person): def __init__ (self,name,age=28,grade=3): person.__init__(self,name,age) self.grade=grade student1=student("cy") #靜態方法和類方法,屬性都被繼承 student1.sayhello() #方法的查詢順序是 靜態方法---類方法---例項方法 #屬性的查詢順序是 例項屬性---類屬性---基類屬性
4、模組組織
python的模組就是字尾為py或者pyc的python檔案,python的包就是目錄。
import sys
import mod2 #一個模組對應著一個檔案,mod2.py必須位於搜尋路徑中的一個
#因為模組名和檔名相同,所以就依賴於檔案系統來保證全域性名稱空間中模組名的唯一性
from mod3 import mod3_b#引入名稱空間
import mod4 as m4 #模組別名,m4=mod4也可以
from subdir import mod5 #匯入一個包實際上是匯入了__init__.py
print "import path:"
for import_path in sys.path:
print import_path
print mod2.mod2_a
print mod3_b #已經把mod3匯入到當前模組的名稱空間
print m4.mod4_a
print mod5.mod5_a
5、異常處理
try:
#a=2/0
raise RuntimeError,"myfirsterror"
except ZeroDivisionError,err:#err為錯誤資訊,之前為錯誤型別
print ZeroDivisionError,err
except RuntimeError,err:
print RuntimeError,err
finally:
print "good!"