為什麼使用函數
降低程式設計難度
通常将一個複雜的大問題分解成一系列的小問題,然後将小問題劃分成更小的問題,當問題細化為足夠簡單時,我們就可以分而治之。各個小問題解決了,大問題就迎刃而解了。
代碼重用
避免重複勞作,提供效率
定義函數:def 函數名();
調用函數:函數名()
解釋說明:python 中使用 def 指令建立一個函數,也就是 "定義"(define)的意思,調用函數其實就是執行函數中的代碼
注意事項:函數名的定義跟變量的命名規則一樣,函數名由字母、數字、下劃線組成,不能以數字開頭,不可以使用關鍵字。另外,當函數名有兩個單詞時,我們一般把第二個單詞的首字母大寫來表示這是一個函數(形成一種規範),如:isNum、hanShu、myName 等等,在後面的類中我們則是把所有首字母都寫出大寫來表示這是一個類,如:IsNum、HanShu、MyName 等等
形式參數和實際參數
在定義函數時,函數名後面括号中的變量名稱叫做“形式參數”,或者稱為“形參”
在調用函數時,函數名後面括号中的變量名稱叫做“實際參數”,或者稱為“實參”

1、
2、
3、 預設值必須放在最後,否則會報錯
In [1]: import string
In [2]: text = "Monty Python's Flying Circus"
In [3]: string.upper(text) #變為大寫
Out[4]: "MONTY PYTHON'S FLYING CIRCUS"
In [5]: string.lower(text) #變為小寫
Out[5]: "monty python's flying circus"
In [8]: string.split(text) #分割
Out[8]: ['Monty', "Python's", 'Flying', 'Circus']
In [12]: string.replace(text,'Python','java') #替換文本
Out[12]: "Monty java's Flying Circus"
In [15]: string.count(text,'P') #計算字元個數
Out[15]: 1
In [16]: string.lowercase #所有小寫字母
Out[16]: 'abcdefghijklmnopqrstuvwxyz'
In [17]: string.uppercase #所有大寫字母
Out[17]: 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
In [18]: string.join(string.split(text), "+") #分割符号
Out[18]: "Monty+Python's+Flying+Circus"
In [19]: string.digits #所有數字
Out[19]: '0123456789'
練習:
1、# 1. 設計一個函數,統計任意一串字元串中數字字元的個數
#例如:
#"adfdfjv1jl;2jlk1j2" 數字個數為4個
思路:1、導入string方法,周遊字元串是否是數字,如果是則加上1,然後列印
import string
def getNumtime(text):
num=0
for i in range(0,len(text)):
if text[i] in string.digits:
num+=1
print 'num is {0}'.format(num)
getNumtime('adfdfjv1jl;2jlk1j21112')
2、# 2. 設計函數,統計任意一串字元串中每個字母的個數,不區分大小寫
#"aaabbbcccaae111"
#a 5個
#b 3個
#c 3個
#e 1個
思路:1、導入string
2、建立一個函數,将統一變為大寫字母
3、建立一個字典,周遊所有的大寫字母,添加到字典中
4、計算字母的 個數
方法:
In [28]: string.ascii_uppercase
Out[28]: 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
def getLettersCount(text):
text = text.upper() #轉換成大寫
dict1 = dict() #建立空字典
for i in string.ascii_uppercase:
dict1.setdefault(i, 0) #将26個字母當做key增加到字典中,value為0
方法二:
In [37]: map(tmp.upper().count, string.ascii_uppercase)
Out[37]: [1, 0, 0, 4, 1, 3, 0, 0, 1, 1, 0, 0, 0, 0, 1, 2, 1, 0, 4, 0, 0, 0, 1, 0, 0, 0]
In [38]: x=[1,2,3]
In [39]: y=['q', 'w', 'e']
zip合并為
In [40]: zip(x,y)
Out[40]: [(1, 'q'), (2, 'w'), (3, 'e')]
将清單轉換為字典
In [42]: dict2=dict([(1,2),(3,4)])
In [43]: dict2
Out[43]: {1: 2, 3: 4}
dict1={'A':1,'B':2}
def getsckcount(tmp):
dict1=dict(zip(string.ascii_uppercase,map(tmp.upper().count,string.ascii_uppercase)))
for k in dict1:
if dict1[k]!=0:
print '{0} {1}'.format(k,dict1[k])
while True:
tmp=raw_input('Please string: ')
if tmp!="quit":
getsckcount(tmp)
else:
break
本文轉自 iekegz 51CTO部落格,原文連結:http://blog.51cto.com/jacksoner/2056731,如需轉載請自行聯系原作者