學習Python的日子 Python(6)
Python
函式巢狀
巢狀: A函式, B函式中使用了A函式
def A():
print("我是A函式")
def B():
A() # 在B函式中呼叫了A函式
print("我是B函式")
# 呼叫B函式
B()
全域性和區域性變數
如果在函式中使用了全域性變數而且又試圖更改全域性變數,於是報錯 解決方式: 在使用全域性變數之前宣告一下: global 全域性變數
區域性變數: 宣告在函式中就是區域性變數 ,引數也是區域性變數
區域性變數,函式執行完畢之後就會被回收
全域性變數:不能隨便的改全域性變數
區域性變數: 函式中宣告的變數和引數
可變型別: 函式中允許修改裡面的內容的
不可變型別: 如果函式中試圖修改,則需要新增global 變數名
如果有同名的變數: 區域性與全域性,呼叫的就是區域性變數 ,但是如果在函式中有顯示的宣告,global 變數,後面使用的就是全域性變數
遞迴函式
1. 必須要有出口
2. 要逐漸的向出口靠近
如果一個函式在內部不呼叫其它的函式,而是自己本身的話,這個函式就是遞迴函式。
'''
求:1-10的累加和
'''
n=10
def func(n):
# 找出口
if n==1:
return 1
else:
return func(n-1)*n
result=func(n)
print(result)
匿名函式
lambda函式的語法只包含一個語句,如下:
lambda [arg1 [,arg2,.....argn]]:expression
result=lambda x,y,z:x+y+z
匿名函式的優點:
使用Python寫一些指令碼時,使用lambda可以省去定義函式的過程,讓程式碼更加精簡。
對於一些抽象的,不會被別的地方再重複使用的函式,有時候函式起個名字也是個難題,使用lambda不需要考慮命名的問題
使用lambda在某些時候然後程式碼更容易理解
應用
在內建函式 max() 求最大值,min()求最小值, map() 對映, reduce 合併, filter() 過濾 中會用到!
1.匿名函式作為引數
def func(x,y,get_sum):
print(x,y)
print(get_sum)
print(get_sum(x,y))
# 呼叫func
func(8,9,lambda x,y:x+y)
2.應用: 跟內建函式結合使用
list1=[1,6,8,9,4]
print(max(list1))
dict1={"a":1,"A":11,"b":2,"B":10} #
dict1_list=[{"a":9,"A":11,"b":2,"B":10},{"a":5,"A":11,"b":2,"B":10},{"a":10,"A":11,"b":2,"B":10}]
print(max(dict1))
# print(max(lambda x : x["a"],dict1_list))
print(max(dict1_list,key=lambda x : x["a"])) # max(9,5,10) --->10 ---->存在10的字典
# print(isinstance(dict1_list,Iterable))
stus=[
{"name":"tom1","age":20},
{"name":"tom2","age":28},
{"name":"tom3","age":19},
{"name":"tom4","age":21}
]
student=max(stus,key=lambda x:x["age"])
print(student)
student=min(stus,key=lambda x: x["age"])
print(student)
reduce()
用來實現加減乘除運算的函式
reduce(func,可迭代,初始化)
python3.4 專門放到functools模組中 func必須是兩個引數
print() len() max() min() list() ... ---->builtins模組 預設載入的模組
from 模組名 import 子功能
filter()
過濾 格式: filter(function or None,迭代的)
給函式新增文件說明
print(help(函式名))
檢視Python課件第六章
a+=a != a=a+a
# a=[100]
# def func(a1):
# "如果操作列表的話,地址不會發生改變"
# a1+=a1 # 如果操作列表的話,地址不會發生改變
# print(id(a1),a1)
# func(a)
# print(id(a),a)
# print(help(func))
# print("-------------------")
# def func1(a2): # a2=a
# # a2區域性變數
# a2=a2+a2 # [100]+[100] ===>[100,100] 但是地址是新的
# # a2=新的地址
# print(id(a2),a2)
# func1(a)
# print(id(a),a)
檔案操作
持久化操作
就是把一些資料存放起來,可以讓程式下一次執行的時候直接使用,載入到記憶體中,而不必重新制作一份,省時省力。
檔案的種類:
檔案的種類:
二進位制檔案: 圖片 音樂 電影
開啟一個已經存在的檔案還可以新建一個檔案: open()
open(檔名,訪問方式)
f=open("files/test.txt","w+") # FileNotFoundError: [Errno 2] No such file or directory: '練習1.txt'
print(type(f))
f.write("哈哈哈哈!通車了!")
# 關閉
f.close()
print("寫入完畢!")
print("====開始讀取=====")
f=open("files/test.txt","r")
print(f.read())
f.close()
總結
匿名函式主要是作為引數使用.
內建函式:
max(可迭代的,key=func)
min(可迭代的,key=func)
map(func,可迭代的)
reduce(func,可迭代的) --->python3.4 要匯入 from functools import reduce
filter(func,可迭代的) func 返回值必須是True ,False
列表中:
sort(key=func,reverse=True/False)
'''
'''
函式: 1. 自定義函式
def 函式(a,b=10):
函式體
return a,b
lambda x,y:x+y
2.內建函式:
print(dir(__builtins__))
函式巢狀
巢狀: A函式, B函式中使用了A函式
def A():
print("我是A函式")
def B():
A() # 在B函式中呼叫了A函式
print("我是B函式")
# 呼叫B函式
B()
全域性和區域性變數
如果在函式中使用了全域性變數而且又試圖更改全域性變數,於是報錯 解決方式: 在使用全域性變數之前宣告一下: global 全域性變數
區域性變數: 宣告在函式中就是區域性變數 ,引數也是區域性變數
區域性變數,函式執行完畢之後就會被回收
全域性變數:不能隨便的改全域性變數
區域性變數: 函式中宣告的變數和引數
可變型別: 函式中允許修改裡面的內容的
不可變型別: 如果函式中試圖修改,則需要新增global 變數名
如果有同名的變數: 區域性與全域性,呼叫的就是區域性變數 ,但是如果在函式中有顯示的宣告,global 變數,後面使用的就是全域性變數
遞迴函式
1. 必須要有出口
2. 要逐漸的向出口靠近
如果一個函式在內部不呼叫其它的函式,而是自己本身的話,這個函式就是遞迴函式。
'''
求:1-10的累加和
'''
n=10
def func(n):
# 找出口
if n==1:
return 1
else:
return func(n-1)*n
result=func(n)
print(result)
匿名函式
lambda函式的語法只包含一個語句,如下:
lambda [arg1 [,arg2,.....argn]]:expression
result=lambda x,y,z:x+y+z
匿名函式的優點:
使用Python寫一些指令碼時,使用lambda可以省去定義函式的過程,讓程式碼更加精簡。
對於一些抽象的,不會被別的地方再重複使用的函式,有時候函式起個名字也是個難題,使用lambda不需要考慮命名的問題
使用lambda在某些時候然後程式碼更容易理解
應用
在內建函式 max() 求最大值,min()求最小值, map() 對映, reduce 合併, filter() 過濾 中會用到!
1.匿名函式作為引數
def func(x,y,get_sum):
print(x,y)
print(get_sum)
print(get_sum(x,y))
# 呼叫func
func(8,9,lambda x,y:x+y)
2.應用: 跟內建函式結合使用
list1=[1,6,8,9,4]
print(max(list1))
dict1={"a":1,"A":11,"b":2,"B":10} #
dict1_list=[{"a":9,"A":11,"b":2,"B":10},{"a":5,"A":11,"b":2,"B":10},{"a":10,"A":11,"b":2,"B":10}]
print(max(dict1))
# print(max(lambda x : x["a"],dict1_list))
print(max(dict1_list,key=lambda x : x["a"])) # max(9,5,10) --->10 ---->存在10的字典
# print(isinstance(dict1_list,Iterable))
stus=[
{"name":"tom1","age":20},
{"name":"tom2","age":28},
{"name":"tom3","age":19},
{"name":"tom4","age":21}
]
student=max(stus,key=lambda x:x["age"])
print(student)
student=min(stus,key=lambda x: x["age"])
print(student)
reduce()
用來實現加減乘除運算的函式
reduce(func,可迭代,初始化)
python3.4 專門放到functools模組中 func必須是兩個引數
print() len() max() min() list() ... ---->builtins模組 預設載入的模組
from 模組名 import 子功能
filter()
過濾 格式: filter(function or None,迭代的)
給函式新增文件說明
print(help(函式名))
檢視Python課件第六章
a+=a != a=a+a
# a=[100]
# def func(a1):
# "如果操作列表的話,地址不會發生改變"
# a1+=a1 # 如果操作列表的話,地址不會發生改變
# print(id(a1),a1)
# func(a)
# print(id(a),a)
# print(help(func))
# print("-------------------")
# def func1(a2): # a2=a
# # a2區域性變數
# a2=a2+a2 # [100]+[100] ===>[100,100] 但是地址是新的
# # a2=新的地址
# print(id(a2),a2)
# func1(a)
# print(id(a),a)
檔案操作
持久化操作
就是把一些資料存放起來,可以讓程式下一次執行的時候直接使用,載入到記憶體中,而不必重新制作一份,省時省力。
檔案的種類:
檔案的種類:
二進位制檔案: 圖片 音樂 電影
開啟一個已經存在的檔案還可以新建一個檔案: open()
open(檔名,訪問方式)
f=open("files/test.txt","w+") # FileNotFoundError: [Errno 2] No such file or directory: '練習1.txt'
print(type(f))
f.write("哈哈哈哈!通車了!")
# 關閉
f.close()
print("寫入完畢!")
print("====開始讀取=====")
f=open("files/test.txt","r")
print(f.read())
f.close()
總結
匿名函式主要是作為引數使用.
內建函式:
max(可迭代的,key=func)
min(可迭代的,key=func)
map(func,可迭代的)
reduce(func,可迭代的) --->python3.4 要匯入 from functools import reduce
filter(func,可迭代的) func 返回值必須是True ,False
列表中:
sort(key=func,reverse=True/False)
'''
'''
函式: 1. 自定義函式
def 函式(a,b=10):
函式體
return a,b
lambda x,y:x+y
2.內建函式:
print(dir(__builtins__))
相關文章
- 學習Python的日子 Linux筆記(1)PythonLinux筆記
- Python學習第6天Python
- 如何高效的學習python?python學習技巧Python
- Python自動化開發學習6Python
- Python學習6之簡單實戰Python
- Python的學習Python
- python學習: Python的迭代器Python
- 學習python多久?該如何學習python?Python
- 從零開始的Python學習Episode 6——字串操作Python字串
- Python 學習筆記(6)— 字串格式化Python筆記字串格式化
- Python學習筆記6——動態型別Python筆記型別
- 跨行業如何學習好python?Python學習!行業Python
- Python如何快速學習?Python學習方法技巧!Python
- PYTHON 學習Python
- 學習pythonPython
- python學習Python
- Python爬蟲學習(6): 爬取MM圖片Python爬蟲
- 為什麼要選擇學習python?學習python的原因!Python
- 你適合學習python嗎?python學習人群Python
- 如何學習Python?Python學習入門路線Python
- python學習之初識pythonPython
- 小豬的Python學習之旅 —— 6.捋一捋Python執行緒概念Python執行緒
- 學習Python需要考證嗎?Python學習入門!Python
- python值得學習嗎?為何推薦學習python?Python
- 學習Python需要注意什麼?如何學習Python?Python
- python學習: 如何循序漸進學習Python語言Python
- Python學習筆記(一)——初學PythonPython筆記
- python中的字典學習Python
- Python自然語言處理 6 學習分類文字Python自然語言處理
- Python深度學習Python深度學習
- [python]pandas學習Python
- python學習1Python
- python學習《一》Python
- Python 學習3Python
- 學習 python 之路Python
- Python學習(2)Python
- Python 學習(一)Python
- Python學習打算Python