網站首頁 編程語言 正文
python函數
一、函數定義
函數是組織好的,可重復使用的,用來實現單一,或相關聯功能的代碼段。
函數能提高應用的模塊性,和代碼的重復利用率。
你已經知道Python提供了許多內建函數(庫函數),比如print()。
但你也可以自己創建函數,這被叫做用戶自定義函數。
函數類型有:庫函數、自定義函數。
二、自定義函數
1、自定義函數規則:
(1).函數代碼塊以 def 關鍵詞開頭,后接函數標識符名稱和圓括號()。
任何傳入參數和自變量必須放在圓括號中間。圓括號之間可以用于定義參數。
(2).函數的第一行語句可以選擇性地使用文檔字符串—用于存放函數說明。
函數內容以冒號起始,并且縮進。
(3).return [表達式] 結束函數,選擇性地返回一個值給調用方。不帶表達式的return相當于返回 None。
2、一般形式
注:如果沒有返回值,那么return后面的表達式可不用寫。
三、函數調用
定義一個函數只給了函數一個名稱,指定了函數里包含的參數(形式參數),和代碼塊結構。這個函數的基本結構完成以后,你可以通過另一個函數調用執行,也可以直接從Python提示符執行。調用函數時的參數,為實際參數。
四、參數
函數的主要類型有:形式參數、實際參數,具體如上三中所述
正式參數類型:
1、必備參數
必備參數須以正確的順序傳入函數。調用時的數量必須和聲明時的一樣。調用printme()函數,你必須傳入一個參數,不然會出現語法錯誤。
2、關鍵字參數(使用<鍵-值>來傳參)
關鍵字參數和函數調用關系緊密,函數調用使用關鍵字參數來確定傳入的參數值。
使用關鍵字參數允許函數調用時參數的順序與聲明時不一致,因為 Python 解釋器能夠用參數名匹配參數值。
3、默認參數
調用函數時,默認參數的值如果沒有傳入,則被認為是默認值。
4、不定長參數(可變長參數)
你可能需要一個函數能處理比當初聲明時更多的參數。這些參數叫做不定長參數,和上述2種參數不同,聲明時不會命名。
五、變量作用域
定義在函數內部的變量擁有一個局部作用域,定義在函數外的擁有全局作用域。
局部變量只能在其被聲明的函數內部訪問,而全局變量可以在整個程序范圍內訪問。調用函數時,所有在函數內聲明的變量名稱都將被加入到作用域中。如下實例:
六、函數的遞歸調用
例題(n的階乘):
遞推歸納:將問題轉化為比原問題小的同類規模,歸納出一般遞推公式,故所處理的對象要有規律的遞增或遞減。
遞歸終止:當規模小到小規模到一定程度應該結束遞歸調用,逐層返回常用語句條件來控制何時結束遞歸。
注:原問題層層分解為類似的子問題。
python的文件操作
Python提供了文件對象,并內file_object =open(path,mode)。置了open函數來獲取一個文件對象。Open函數的使用:其中,file_object是調用open函數后得到的文件對象;path是一個字符串,代表要打開文件的路徑;而mode是打開文件的模式,常用的模式如下表所示。
在os.py中要打開Task1文件進行讀寫,需要使用r+模式,實現如下:f = open(’./Task1’,‘r+’)。簡單一個語句便實現了打開文件的操作,之后對該文件的操作只需對新得到的文件對象f,使用文件對象提供的方法即可。
常用方法:
例題:
實例1將文件Task1的內容全部讀入到fls列表中。實例二要將文件首字符為“3”的行中每一個數字加起來,不包括3,即“10 5 19 20 37”;然后,將結果寫入到文件末尾。
分析:
首先要獲取首字符3,為此,可以用格的listsplit()函數將每一行字符串按空格分解為每個元素不包含空。然后判斷list[0]是不是字符3。然后需要計算該list從1號元素開始的所有元素的和。最后,需要將結果寫回文件,所以,文件的打開方式應為“r+”。
#<程序:讀取文件os.py,計算并寫回> f = open("./Task1.txt",'r+'); fls = f.readlines() for line in fls: line = line.strip() lstr = line.split() if lstr[0] == '3': res = 0 for e in lstr[1:]: res+=int(e) f.write('\n4 '+str(res)); f.close()
課后作業
習題1:
#<程序:第三次培訓作業1> def cf(x,n): if n==0: f=1; else: f=x*x**(n-1) return f x=int(input("請輸入x值:")) n=int(input("請輸入n值:")) f=cf(x,n) print("x的n次方的值為:",f)
習題2:
#<第三次培訓作業2> def age(n): if n==1: a=10 else: a=age(n-1)+2 return a print(age(5))
總結
原文鏈接:https://blog.csdn.net/BruceLuMingYu/article/details/122687020
相關推薦
- 2022-12-12 Python中函數帶括號和不帶括號的區別及說明_python
- 2021-12-09 Wide&Deep Model、Wide Model(LR)、Deep Model、Deep
- 2022-09-22 在容器內獲取 Pod 信息
- 2022-11-05 go?module化?import?調用本地模塊?tidy的方法_Golang
- 2022-07-13 IO流詳解之字符流與File類
- 2023-07-02 oracle數據庫排序后如何獲取第一條數據_oracle
- 2023-03-25 Excel?VBA指定條件刪除整行整列的實現_vbs
- 2022-03-24 Android繪制旋轉動畫方法詳解_Android
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支