函式定義、函式的引數、函式的預設引數
函式定義
為什麼使用函式
降低程式設計難度
- 通常將一個複雜的大問題分解成一系列的小問題,然後將小問題劃分成更小的問題,當問題細化為足夠簡單時,我們就可以分而治之。各個小問題解決了,大問題就迎刃而解了。
程式碼重用 - 避免重複勞作,提供效率
定義函式:def 函式名();
呼叫函式:函式名()
解釋說明:python 中使用 def 命令建立一個函式,也就是 "定義"(define)的意思,呼叫函式其實就是執行函式中的程式碼
注意事項:函式名的定義跟變數的命名規則一樣,函式名由字母、數字、下劃線組成,不能以數字開頭,不可以使用關鍵字。另外,當函式名有兩個單詞時,我們一般把第二個單詞的首字母大寫來表示這是一個函式(形成一種規範),如:isNum、hanShu、myName 等等,在後面的類中我們則是把所有首字母都寫出大寫來表示這是一個類,如:IsNum、HanShu、MyName 等等
def fun():
print 'hello world'
fun()
結果:hello world
函式的引數
形式引數和實際引數
- 在定義函式時,函式名後面括號中的變數名稱叫做“形式引數”,或者稱為“形參”
- 在呼叫函式時,函式名後面括號中的變數名稱叫做“實際引數”,或者稱為“實參”
函式的預設引數
1、
2、
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
for i in xrange(0, len(text)): #遍歷字串
if text[i] in string.ascii_uppercase: #如果在26個字母中
dict1[text[i]] += 1 #value加1
for k in dict1:
if dict1[k] != 0: #不為0的字母,列印出來
print("{0} {1}".format(k, dict1[k]))
方法二:
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}
import string
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
本文轉自方向對了,就不怕路遠了!51CTO部落格,原文連結:http://blog.51cto.com/jacksoner/2056731 ,如需轉載請自行聯絡原作者
相關文章
- 函式引數 引數定義函式型別函式型別
- 3.3.2 函式的預設引數和佔位引數 函式過載函式
- 第 8 節:函式-函式定義和引數函式
- 方法(函式)的定義與引數函式
- C++行內函數、函式過載與函式預設引數C++函數函式
- TypeScript 函式可選引數和預設引數TypeScript函式
- Javascript函式引數求值——Thunk函式JavaScript函式
- 函式基礎和函式引數函式
- Day10 函式基礎+函式三種定義形式 + 函式的返回值、物件和引數 + 可變長引數函式物件
- 預設建構函式、引數化建構函式、複製建構函式、解構函式函式
- Python3之函式的引數傳遞與引數定義Python函式
- 函式的動態引數 及函式巢狀函式巢狀
- 函式的引數傳遞函式
- 程式中的函式引數函式
- 07:函式之函式的引數和返回值函式
- 模型的列表定義中,使用函式時如何定義引數?模型函式
- 函式、引數、解構函式
- 函式引數詳解函式
- 函式的關鍵字引數函式
- 函式的呼叫方式和引數函式
- 封裝帶引數的函式封裝函式
- python sorted()函式的引數用法Python函式
- 揭秘 Go 中的函式引數Go函式
- python---函式引數、變數Python函式變數
- Python函式引數總結Python函式
- JavaScript函式傳遞引數JavaScript函式
- 陣列作為函式引數陣列函式
- 函式中引數傳值函式
- ES6函式引數函式
- python函式變長引數Python函式
- 物聯網學習教程—函式引數和函式的值函式
- 【C語言】函式的概念和函式的呼叫(引數傳遞)C語言函式
- python基礎之 函式的引數Python函式
- python中函式的引數傳遞Python函式
- PHP 函式可變數量的引數列表PHP函式變數
- 函式(三)作用域之變數作用域、函式巢狀中區域性函式作用域、預設值引數作用域函式變數巢狀
- setInterval 回撥函式傳引數函式
- 函式作為引數傳遞函式
- 留存統計 引數聚合函式函式