天天看點

函數定義、函數的參數、函數的預設參數string方法

為什麼使用函數

降低程式設計難度

通常将一個複雜的大問題分解成一系列的小問題,然後将小問題劃分成更小的問題,當問題細化為足夠簡單時,我們就可以分而治之。各個小問題解決了,大問題就迎刃而解了。

代碼重用

避免重複勞作,提供效率

定義函數:def 函數名();

調用函數:函數名()

解釋說明:python 中使用 def 指令建立一個函數,也就是 "定義"(define)的意思,調用函數其實就是執行函數中的代碼

注意事項:函數名的定義跟變量的命名規則一樣,函數名由字母、數字、下劃線組成,不能以數字開頭,不可以使用關鍵字。另外,當函數名有兩個單詞時,我們一般把第二個單詞的首字母大寫來表示這是一個函數(形成一種規範),如:isNum、hanShu、myName 等等,在後面的類中我們則是把所有首字母都寫出大寫來表示這是一個類,如:IsNum、HanShu、MyName 等等

形式參數和實際參數

在定義函數時,函數名後面括号中的變量名稱叫做“形式參數”,或者稱為“形參”

在調用函數時,函數名後面括号中的變量名稱叫做“實際參數”,或者稱為“實參”

函數定義、函數的參數、函數的預設參數string方法

1、

函數定義、函數的參數、函數的預設參數string方法

2、

函數定義、函數的參數、函數的預設參數string方法

3、 預設值必須放在最後,否則會報錯

函數定義、函數的參數、函數的預設參數string方法

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,如需轉載請自行聯系原作者