摘要:函數的定義范例總結無參函數名快注釋函數體定義函數,并不會執行函數體里面的內容調用函數的過程函數里面嵌套函數調用外層函數時,內層函數不會執行變量參數定義函數時的變量,稱做形參,可以任意命名真實的數據信息,調用函數時傳遞的參數,稱為實參是形參是
函數的定義
范例
def print(self, *args, sep=" ", end="n", file=None):
總結
無參
def 函數名():
快注釋 函數體
定義函數,并不會執行函數體里面的內容
def hello(): print("hello") print("sheenstar")
調用函數的過程
hello()
函數里面嵌套函數
def sheen(): print("happy is ...") def star(): print("sheen")
調用外層函數時,內層函數不會執行
sheen() happy is ...變量參數
定義函數時的變量,稱做形參,可以任意命名
真實的數據信息,調用函數時傳遞的參數,稱為實參
def game(guess): #guess是形參 print(guess>2) game(3) #3是實參 number = 1 game(number) #number是實參形參
形參可分為:位置參數,默認參數,可變參數,關鍵字參數
位置參數
形參必須和實參個數一致,按照位置傳遞參數
def getinfo(name, age): print(name, age) getinfo("sheen", 17) getinfo(age=13, name="star") sheen 17 star 13
默認參數
實參和形參的個數可以不一致
def mypow(x, y=2): """ 求x的y次方,y默認值為2 :param x: value :param y: :return: """ print(x ** y) mypow(2) mypow(2, 3) 4 8
可變參數
# 可變參數 def mysum(*args): """ 用戶可以傳入任意個數值,計算數值的和 注意:*args是可變參數; args是元組數據類型 args可以改稱其他,因為是形參 mysum(1,2,45,787,...) :return: """ print(args) # 元組 sum = 0 for item in args: sum += item print(sum) mysum(1, 2, 3, 4, 5, 6, 7) 28
關鍵字參數
**kwargs是一個字典,可以傳遞任意多的key-value對
def getstinfo(name, age, **kwargs): print(name, age) print(kwargs) getstinfo("sheen", 19, hobbies=["code", "flower"], gender="female") sheen 19 {"hobbies": ["code", "flower"], "gender": "female"}動態添加函數成員
def fun(): print(fun.x)
fun() #報錯,AttributeError: "function" object has no attribute "x"動態添加
fun.x = 3 fun() 3動態刪除
fun.x = 3 del fun.x fun() #報錯,AttributeError: "function" object has no attribute "x"函數返回值
返回值:函數運算的結果,還需要進一步操作時,給一個返回值"return"
"return"用來返回函數執行結果,如果沒有返回,默認為‘none’
遇到"return",函數執行結束,后面代碼不會執行,(yield)
python可以間接返回多個值;原理:返回一個元組,再對元組進行解包
def myfun(x,y): return x+y,x-y,x*y,x**y m=myfun(3,2) print(m) (5, 1, 6, 9)變量的作用域
變量:局部變量,全局變量
局部變量:在函數體內定義的變量,只在函數內有意義,函數執行結束后,變量不存在
不可變數據類型:函數內部改變,不會影響外部變量值
可變數據類型:函數內部改變,會影響外部變量值
a= 1 print("outsides",id(a)) def fun(): a=5 #局部變量 print("besides:",id(a)) fun() print(a) outsides 9326560 besides: 9326688 1
# 全局變量:global a= 1 print("outsides",id(a)) def fun(): global a #a為全局變量 a=5 print("besides:",id(a)) fun() print(a) print(id(a)) outsides 9326560 besides: 9326688 5 9326688函數補充
給變量和返回值都設定默認數據類型,不是此類型,函數仍能執行
def myadd(x:int,y:int) -> int: return x+y print(myadd(1.0,8)) 9.0
參數數據類型的判斷
isinstance()
>>> isinstance(1,int) True >>> isinstance([1,2],int) False
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/42223.html
摘要:高階函數實參是一個函數名函數的返回值是一個函數傳遞的參數包含函數名。內置高階函數函數函數接收兩個參數一個是函數一個是序列將傳入的函數依次作用到序列的每個元素并把結果作為新的返回。 高階函數 實參是一個函數名 函數的返回值是一個函數 print(abs(-10)) f = abs print(f(-10)) #傳遞的參數包含函數名。 def myfun(x,y,fun): ...
迭代 可以通過 for 循環來遍歷 list 或 tuple,這種遍歷我們稱為迭代(Iteration)只要是可迭代對象,都可以迭代,比如字典默認情況下,字典迭代的是key值如何讓判斷一個類型是否可迭代 from collections import Iterable #導入collections模塊的Iterable類型判斷方法 print(isinstance({abc:1},Itera...
摘要:和列表里提供了方法,其他數據類型不能用可以對任何可迭代對象排序方法支持原地排序,變量排序后,變量本身改變方法返回一個新的列表,并不改變原變量的內容不改變原有列表次序默認和方法由小到大排序,時,從大到小排序字典排序商品名稱,數 li.sort()和sorted() 列表里提供了sort方法,其他數據類型不能用 sorted可以對任何可迭代對象排序 sort方法支持原地排序,變量排序后...
摘要:什么是包為了組織好模塊,會將多個模塊分為包。處理包也是相當方便的。簡單來說,包就是文件夾,但該文件夾下必須存在文件。最簡單的情況下,只需要一個空的文件即可。當然它也可以執行包的初始化代碼包底下也能包含包,這和文件夾一樣,還是比較好理解的。 什么是包? 為了組織好模塊,會將多個模塊分為包。Python 處理包也是相當方便的。簡單來說,包就是文件夾,但該文件夾下必須存在 __init__....
什么是裝飾器? 裝飾器就是用來裝飾函數。 想要增強原有函數的功能 但不希望修改原有函數的定義 在代碼運行期間動態增加功能的方式 函數嵌套函數 調用方式:原函數 = 外層函數(原函數名)原函數 def desc(fun): def add_info(): print(happy today) fun() print(westos_linux...
閱讀 3537·2021-09-10 10:51
閱讀 2507·2021-09-07 10:26
閱讀 2482·2021-09-03 10:41
閱讀 810·2019-08-30 15:56
閱讀 2896·2019-08-30 14:16
閱讀 3488·2019-08-30 13:53
閱讀 2103·2019-08-26 13:48
閱讀 1913·2019-08-26 13:37