Python(八) 函数、模块
函數
定義函數
1、意義:函數是實現某個功能的一些代碼,提高代碼的復用性。
2、定義:用def關鍵字定義函數,
3、函數組成:函數由函數名、形參、函數體、調用函數(里面會有函數體)組成
4、要使用函數,必須要調用它
5、示例函數:
定義一個簡單的函數,里面只有函數名、函數體、調用函數組成
形參與實參
形參:在函數名字后面括號里的值,實參是調用函數時傳遞給函數的信息
實參:實參是在調用函數是,函數名字后面括號里的值
示例:定義一個寫文件的函數
定義一個讀文件的函數
返回值:在函數中,可使用return語句將值返回到調用函數的代碼行,如果不寫return將返回none
return的作用:把函數處理的結果返回。結束函數,函數里面遇到return,就立刻結束函數
傳遞參數?
1、默認值參數:在函數定義時,可給形參指定一個默認值,在函數調用中給形參提供了實參時,Python將使用指定的實參值,否則將使用指定的默認值
2、位置實參:在函數調用時,必須將每個實參都關聯到函數定義中的每一個形參,必須按照形參位置來傳遞實參,實參為必傳。
3、關鍵字實參:在函數調用時,傳的實參要以 名稱-值得形式來傳遞參數。關鍵字實參的順序無關緊要,不用和形參對應上
?4、可變參數(傳遞任意數量的實參):定義形參時,用 *name ,調用函數時,實參非必填,不限制參數個數
參數是放在元組里面的。
5、向函數傳遞列表、元組、集合:元素個數要與形參個數對應上,調用函數時語法:函數名字(*listname)
6、傳遞任意數量的關鍵字實參:非必傳,不限制個數,會把傳過來的關鍵字參數放到一個字典里面,傳參的時候必須用key=value形式來傳
7、向函數傳遞字典,字典里的key要與函數中的形參個數對應上,語法:函數名(**dictname)
局部變量與全局變量
1、局部變量:函數里面定義的變量,只要一出了函數就不能用了
2、全局變量:在函數外面定義的變量,就會全局變量,在函數里面與外面都可以用
global關鍵字:全局變量如果要在函數中修改的話,需要加global關鍵字聲明;
? ? ? ? ? ? ? ? ? ? ? ? 定義的全局變量是list或者字典或者集合,不需要聲明global;只有字符串、元組,int、float 需要聲明global
?淺拷貝與深拷貝
淺拷貝:兩個變量指向同一塊內存地址,查看內存地址用print(id(name))
深拷貝:需要導入copy模塊,深拷貝兩個變量的內存地址不一樣
注意:不要循環刪list,會導致結果錯亂
1不是偶數,也打印出來了,這就導致了結果的錯亂
正確代碼如下:
?
模塊
定義:一個Python文件就是一個模塊
模塊分類:
1、標準模塊:Python自帶的 time,random
2、第三方模塊:別人寫好的,需要安裝 比如 連接mysql的,漢字轉成拼音的
3、自己寫的Python文件
json模塊:解析Json的,json就是一個字符串
導入json模塊:
1、json.loads方法:直接操作的是字符串,把json轉成字典
2、json.load方法:可以直接操作文件對象,自己讀取文件里的內容,把文件對象里的json轉成字典。
3、json.dumps:把字典轉成字符串。
4、json.dump:操作文件對象,把字典寫入到文件里面,文件里以json形式顯示
os模塊
操作系統相關的東西都在os模塊里面:import os
os.walk方法:可以遍歷返回文件目錄、文件夾、文件
定義一個查找文件內容的函數
import osdef find_movie(KeyWord,path="e:\\",):
for cur_path, cur_dirs, cur_files in os.walk(path):
# if KeyWord in str(cur_files):
# print(cur_path)
for file in cur_files:
# if KeyWord in file:
if file.endswith('KeyWord'):
print(cur_path)
time模塊 import time
?1、時間戳轉換成格式化好的時間
?
2、格式化好的時間轉成時間戳
3、定義兩個函數,實現? 時間戳轉換成格式化好的時間、格式化好的時間轉成時間戳
def timestampToStr(timestamp=None,format='%Y-%m-%d %H:%M:%S'):#時間戳轉格式化好的時間
if timestamp:
time1=time.localtime(timestamp)#時間元祖
res=time.strftime(format,time1)
#print(res)
else:
res=time.strftime(format)#如果沒有傳時間元祖,那么就默認傳當前時間格式化好的時間元祖
#print(res)
return res
#test=timestampToStr(1540280339)
#test=timestampToStr()
#print(test)
def strTotimestamp(str=None,format='%Y%m%d%H%M%S'):
#格式化好的時間轉時間戳
if str:
timep=time.strptime(str,format)#轉成時間元祖
res=time.mktime(timep)#時間元祖轉成時間戳
else:
res=time.time()
return int(res)
res=strTotimestamp('20180505101010')
print(res)
注意:如果提示需要導入模塊,那么用快捷鍵Alt+Enter即自動導入了。
如下 提示需要導入json模塊,即用快捷鍵就可以自動導入了。
?
?
?轉載于:https://www.cnblogs.com/qiaomeiling/p/10057349.html
總結
以上是生活随笔為你收集整理的Python(八) 函数、模块的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Feign使用原理
- 下一篇: python量化交易通达信_分享一个可以