函式就是乙個程式段,給乙個函式名、寫一些語句,然後就可以在任意地方使用這個函式任意次數,可以大大的降低工作量
函式的定義:
def 函式名(引數):
語句
defprintmyaddress(address):
print("
my address is %s
"%address)
printmyaddress("bj
") #
主程式呼叫函式
引數:分為形參和實參,所謂形參就是函式定義時的引數(形式上的引數不佔記憶體);
實參就是實際的引數,在呼叫函式時傳入的引數(佔記憶體),實參分為位置實參和關鍵字實參
位置實參就是在有多個形參時,傳入的實參按照順序一一對應,要保準實參的個數和形參個數一致,不然會報錯
關鍵字實參就是使用=,形參=實參的方式傳值,不需要管順序,只能給乙個形參賦一次值
兩種方式可以混合使用,但是位置實參必須在前面
引數可以有預設值,在呼叫函式時如果不給函式實參,那麼久使用預設值
當不確定需要傳入多少引數時,可以在形參定義時使用*(收集引數),*args(列表),**kwargs(字典)來表示
def function1(*args,**kwargs):(args)
(kwargs)
function1(*[1,2,3,4,5],**)
結果:
(1, 2, 3, 4, 5)
返回值:
函式是不會直接輸出任何東西的,當它處理完資料之後會返回乙個值或一組值, 使用return可以給主程式返回函式執行的結果
definfo(name,address):
return name + "
"+address
print(info('
tom','
bj'))
結果:
tom bj
作用域:
變數分為區域性變數和全域性變數
區域性變數是在函式內部的,與函式外部無關(同名也無關),在函式執行時建立,函式執行之前或結束後不存在,python提供記憶體管理機制處理變數的**,變數生效的部分叫做變數的作用域
全域性變數是在主程式中定義的變數,python允許你使用它只要你不試圖修改它,如果函式的任意部分想要修改這個變數,那麼python會建立乙個區域性變數但不會修改全域性變數
defcalculatetax(price,tax_rate):
"taxtotal總**
"taxtotal = price *tax_rate
my_price = 100 #
函式內部修改my_price
print("
function inside my_price is :
",my_price) #
此處列印my_price為全域性變數
return
taxtotal
my_price = int(input("
enter a price:"))
totalprice = calculatetax(my_price,8)
print("
price =
",my_price,"
total price =
",totalprice)
print("
outside my_price is:
",my_price)
結果:
enter a price:5function inside my_priceis : 100price = 5 total price = 40outside my_price
is: 5
命名規則:
1.模組名和包名採用小寫字母並且以下劃線分隔單詞的形式;
如:regex_syntax,py_compile,_winreg
2.類名或異常名採用每個單詞首字母大寫的方式;
如:baseserver,forkingmixin,keyboardinterrupt
3.全域性或者類常量,全部使用大寫字母,並且以下劃線分隔單詞;
如:max_load
4.其餘變數命名包括方法名,函式名,普通變數名則是採用全部小寫字母,並且以下劃線分隔單詞的形式命名。
如:my_thread
5.以上的內容如果是內部的,則使用下劃線開頭命名。
如:__init__,__new__
Python隨筆記(函式)
函式 在乙個完整的專案中,某些功能會反覆的使用,那麼會將功能封裝成函式,當我們要使用函式的時候直接呼叫函式就可以。本質 函式就是對功能的封裝 優點 1 簡化 結構,增加了 的復用 2 如果想修改某些功能,或者除錯某個bug,只需要修改對應的函式即可。定義函式 格式 def 函式名 引數列表 語句 r...
python隨筆8 定義函式
定義函式 下面是乙個簡單的函式 def greet user print hello greet user 首行 使用關鍵字def來告訴python你要定義乙個函式。這是函式定義,向python指出了函式名,還可能在括號內指出函式為完成其任務需要什麼樣的資訊。在這裡,函式名為greet user 它...
jvm隨筆9 鎖優化
1.自旋鎖 問題 掛起和恢復執行緒要轉入核心態中完成,許多應用,共享資料的鎖定狀態只會持續很短一段時間,為了這段時間去掛起和恢復執行緒並不值得。兩個或以上的執行緒並行執行時,可以讓後面請求鎖的那個執行緒等一下,但不放棄處理器的執行時間,看看持有鎖的執行緒是否很快就會釋放鎖。為了讓執行緒等待,只需讓執...