函式:
1.定義:指通過專門的**組織,用來實現特定的功能的**段,具有相對獨立性,可供其他**重複呼叫
2.語法:
def 函式名([引數]):
函式體[return 返回值]
3.函式名命名規則:
(1)符合基本的識別符號命名原則;
(2)不能與現有內建函式名發生衝突
(3)名稱應該準確的表達函式的功能
4.不帶引數的函式————求因數
def factor_no_para():5.帶引數的函式格式————求因數2.0for i in range(1,11):
if 10%i==0:
print(i,end=" ")
return none
factor_no_para()
在def 函式名(引數)這裡面的引數叫形式引數,給自定義函式傳的值(參),叫實際引數
def factor_no_para2(num):6.帶返回值的函式for i in range(1,num+1):
if num%i==0:
print(i,end=' ')
return none
factor_no_para2(num=20)
def factor_no_para3(num):7.函式模組化(把函式放到模組中)flag = 0 # 標記符,如果這個數有除了1和它本身以外的因數,則標記置為1
for i in range(2,num):
if num%i==0:
print(i,end=' ')
flag=1
return flag
(1)函式模組(module)檔案的建立
建立乙個空白的**檔案,如test_module.py,編寫除錯自己的自定義函式**
(2)呼叫函式模組
通過import語句匯入整個函式模組——匯入後,通過模組名.函式名的連線方式呼叫函式
import test_moduleprint(test_module.find_factor(10))
還可以只呼叫指定函式:from 模組名 import 函式名1,函式名2...
from test_module import find_factorprint(find_factor(10))
還可以匯入所有函式:from 模組名 import *
from test_module import *print(find_factor(10))
別名:若模組名,函式名過長,可以通過as語句定義別名的方式解決:模組名【函式名】 as 別名
from test_module import find_factor as ffprint(ff(10))
import test_module as teprint(te.find_factor(10))
5.引數
notes:1.不定長引數:(1)傳遞任意數量的引數值:*
(2)傳遞任意數量的鍵值對:**
2.引數可以傳遞元組,列表和字典
'''def exam(name,score):
print('name:'+name+',score:'+str(score))
exam('liu',100)
exam(name='wang',score=100)
exam(score=90,name='ma')
exam('li',score=50)
def fruit(name,**attribute):
print('name:'+name)
return attribute
print(fruit('watermelon',color='green',shape='圓形',taste='sweet')) #傳遞的是鍵值對
'''結果為:name:watermelon
''''''
6.作用域
(1)全域性變數:從賦值開始,後續**都可以訪問該變數
(2)區域性變數:只能在被定義的函式或者類內部被訪問的變數
7.關鍵字——global
全域性變數在函式中不能對其進行修改,如需修改,要先用global關鍵字宣告
'''i=10
def sum1():
global i #宣告i為全域性變數
i=i+5
print(i)
sum1()
print(i)
'''8.閉包
是介於全域性變數和區域性變數之間的一種特殊變數。
'''j=5
def sum2():
k=2 #閉包變數k
def sum3():
i=k+j
return i
return sum3()
print(sum2())
'''9.nonlocal關鍵字
外部函式定義乙個變數,內部函式去呼叫,這個變數就叫閉包變數,如果內部函式想修改這個閉包變數,需要用nonlocal關鍵字宣告。
10.匿名函式
lambda
11.遞迴函式
'''a=lambda x,y:x*y
m=a(2,3)
print(m)
python學習(11) 函式
函式 1 定義函式 1.1 函式的定義 定義函式是使用def關鍵字來定義的 呼叫函式,可指定函式名以及用括號括起的引數資訊 def say hello 定義乙個函式 print hello world say hello 呼叫函式 1.2 向函式傳遞資訊 可以在函式定義的函式名括號中定義引數資訊,引...
python學習筆記11(函式)
概述 在乙個完整的專案中,某些功能會反覆的使用。那麼會將功能封裝成函式,當我們要使用功能的時候直接呼叫函式即可 本質 函式就是對功能的封裝 優點 1 簡化 結構,增加了 的復用度 重複使用的程度 2 如果想修改某些功能或者除錯某個bug,只需要修改對應的函式即可 定義函式 格式 def 函式名 引數...
Python學習筆記11 函式
定義函式的時候,我們把引數的名字和位置確定下來,函式的介面定義就完成了。對於函式的呼叫者來說,只需要知道如何傳遞正確的引數,以及函式將返回什麼樣的值就夠了,函式內部的複雜邏輯被封裝起來,呼叫者無需了解。python的函式定義非常簡單,但靈活度卻非常大。除了正常定義的必選引數外,還可以使用預設引數 可...