一為何要用函式之不用函式的問題 #1、**的組織結構不清晰,可讀性差#2、遇到重複的功能只能重複編寫實現**,**冗餘
#3、功能需要擴充套件時,需要找出所有實現該功能的地方修改之,無法統一管理且維護難度極大
二 函式是什麼
針對二中的問題,想象生活中的例子,修理工需要實現準備好工具箱裡面放好錘子,扳手,鉗子等工具,然後遇到錘釘子的場景,拿來錘子用就可以,而無需臨時再製造一把錘子。修理工===>程式設計師
具備某一功能的工具===>函式
要想使用工具,需要事先準備好,然後拿來就用且可以重複使用
要想用函式,需要先定義,再使用
#你可以定義乙個由自己想要功能的函式,以下是簡單的規則: 任何傳入引數和自變數必須放在圓括號中間。圓括號之間可以用於定義引數。1、內建函式
為了方便我們的開發,針對一些簡單的功能,python直譯器已經為我們定義好了的函式即內建函式。對於內建函式,我們可以拿來就用而無需事先定義,如len(),sum(),max()
ps:我們將會在最後詳細介紹常用的內建函式。
#2、自定義函式
很明顯內建函式所能提供的功能是有限的,這就需要我們自己根據需求,事先定製好我們自己的函式來實現某種功能,以後,在遇到應用場景時,呼叫自定義的函式即可。例如
函式的第一行語句可以選擇性地使用文件字串—用於存放函式說明。
函式內容以冒號起始,並且縮排。
return [表示式]結束函式,選擇性地返回乙個值給呼叫方。不帶表示式的return相當於返回 none。
#語法def函式名(引數1,引數2,引數3,...):
'''注釋
'''函式體
return
返回的值
#函式名要能反映其意義
例子:
def auth(user:str,password:str)->int:例項'''auth function
:param user: 使用者名稱
:param password: 密碼
:return: 認證結果
'''if user == '
egon
'and password == '
123'
:
return 1
#print(auth.__annotations__) #
user=input('
使用者名稱》:
').strip()
pwd=input('
密碼》:
').strip()
res=auth(user,pwd)
print(res)
函式呼叫定義乙個函式只給了函式乙個名稱,指定了函式裡包含的引數,和**塊結構。
這個函式的基本結構完成以後,你可以通過另乙個函式呼叫執行,也可以直接從python提示符執行。
如下例項呼叫了printme()函式:
#以上例項輸出結果:!/usr/bin/python
#-*- coding: utf-8 -*-
#定義函式
defprintme( str ):
"列印任何傳入的字串
str;
return;
#呼叫函式
printme("
使用者自定義函式!");
printme(
"再次呼叫同一函式
");
我要呼叫使用者自定義函式!再次呼叫同一函式
引數傳遞以下是呼叫函式時可使用的正式引數型別:
return課後練習語句return語句[表示式]退出函式,選擇性地向呼叫方返回乙個表示式。不帶引數值的return語句返回none。之前的例子都沒有示範如何返回數值,下例便告訴你怎麼做:
#!/usr/bin/python
#-*- coding: utf-8 -*-
#可寫函式說明
defsum( arg1, arg2 ):
#返回2個引數的和."
total = arg1 +arg2
"函式內 :
", total
return
total; #
呼叫sum函式
total = sum( 10, 20);
以上例項輸出結果:
函式內 : 30
1、寫函式,,使用者傳入修改的檔名,與要修改的內容,執行函式,完成批了修改操作import
osdef
file(file_name,content,now_content):
with open(file_name,"r
",encoding="
utf-8
") as f,\
open(
"file.swap
","w
",encoding="
utf-8
") as w:
for line in
f:
if content in
line:
line=line.replace(content,now_content)
w.write(line)
else
: w.write(line)
os.remove(file_name)
os.rename(
"file.swap
",file_name)
return
true
file(
"test
","yinxin
","shaomingzheng
") #
呼叫函式
2、寫函式,計算傳入字串中【數字】、【字母】、【空格] 以及 【其他】的個數
defcount(msg):
dic=
for i in
msg:
ifi.isdigit():
dic[
'int_res
'] += 1
elif
i.isalpha():
dic[
'str_res
'] += 1
elif
i.isspace():
dic[
'space
'] += 1
else
: dic[
'other
'] += 1
return
dicres=count("
yinxin123 @#$")
(res)
3、寫函式,判斷使用者傳入的物件(字串、列表、元組)長度是否大於5。
defnum(num):
if len(num) >5:
return
true
return
false
print(num([1,2,3,4]))
4、寫函式,檢查傳入列表的長度,如果大於2,那麼僅保留前兩個長度的內容,並將新內容返回給呼叫者。
defnum(res):
if len(res) >2:
res=res[:2]
return
res
return
false
print(num("12"
))5、寫函式,檢查獲取傳入列表或元組物件的所有奇數字索引對應的元素,並將其作為新列表返回給呼叫者。
defcheck(list_tuple):
return list_tuple[::2]
print(check([1,2,3,4,5,6,7,8]))
6、寫函式,檢查字典的每乙個value的長度,如果大於2,那麼僅保留前兩個長度的內容,並將新內容返回給呼叫者。
deffunc(dic):
d={}
for k,v in
dic.items():
if len(v) > 2:
d[k]=v[0:2]
return
dprint(func3())
Python學習筆記 第三節
算術運算子 就是我們常用的 兩個物件相加 也可以用來字串的連線 兩個數相減 得到的數可以是負值 兩個數做乘法運算,或者將乙個字串重複幾次 兩個數做除法運算,需要注意 在python2版本裡邊,兩個相除,得到的也是整數,如果想要得到浮點數,只要把其中乙個數變為浮點數就好 例程環境 python 3 冪...
python學習 GUI第三節
1.entry 輸入控制項 用於顯示簡單的文字內容 from tkinter import root tk e entry root e.pack padx 20,pady 20 mainloop 執行結果 然後再高階一點 from tkinter import root tk label root...
Python基礎第三節
引入io模組,用io.stringio 生成可變的新字串。示例 s abcde sio io.stringio s sio.getvalue 輸出 abcde sio.seek 5 輸出5 sio.write g 輸出1 sio.getvalue 輸出 abcdg 比較運算子 可連用,如 a 43 ...