1.函式的定義簡述:
(1)簡單函式定義:
# 定義函式printnumber()
def printnumber():
print(5)
# 呼叫函式printnumber()
printnumber()
(2)帶傳參的函式定義:
# 定義函式printnumber(),傳入引數num並列印
def printnumber(num):
print(num)
# 呼叫函式printnumber(),列印傳入的引數6
printnumber(6)
(3)帶返回值的函式的定義:
# 定義函式printnumber(),列印傳入數字,並返回傳入引數+2作為返回值
def printnumber(num):
print(num)
return num+2
# 呼叫函式printnumber()
numreturn = printnumber(6)
# 列印返回值
print(numreturn)
2.函式的傳參和返回值:
(1)函式傳參:
1)位置實參:
當函式定義的形引數為多個時,需要對對應實參和形參進行關聯,實參只給出值而基於實參順序進行關聯的關聯方式為位置實參。
# 定義函式printnumber(),形引數為3
def printnumber(num1, num2, num3):
print(num1)
print(num2)
print(num3)
# 呼叫函式printnumber(),傳入實參5、6、7,按位置關係分別與形參num1、num2、num3匹配
printnumber(5, 6, 7)
2)關鍵字實參:
當呼叫函式時實參給出名稱--值對,直接基於給出引數名稱對形參和實參進行關聯的關聯方式為關鍵字實參。
# 定義函式
def printnumber(num1, num2, num3):
print(num1)
print(num2)
print(num3)
# 呼叫函式,使用關鍵字實參關聯方式
printnumber(num1=5, num2=6, num3=7)
# 交換實參位置,再次使用關鍵字實參呼叫函式
printnumber(num2=5, num3=6, num1=7)
3)預設值形參:
定義函式時可以給形參指定預設值,當呼叫時給出實參值時傳入給定實參值,當不給出實參值時傳入預設形引數值。當使用預設形參值時,在形參列表中必須先列出沒有預設值的形參,再列出有預設值的形參。
# 定義函式printnumber(),形參num3設定預設值7
def printnumber(num1, num2, num3=7):
print(num1)
print(num2)
print(num3)
# 呼叫函式,num3不給出實參
printnumber(5, 6)
# 再次呼叫,用指定實參覆蓋形參預設值
printnumber(5, 6, 8)
4)可選實參:
通過給出空的形參預設值,並在函式體中加入判斷來實現可選實參。
# 定義函式,形參num3設定預設值『』
def printnumber(num1, num2, num3=''):
if num3=='':
print(num1)
print(num2)
else:
print(num1)
print(num2)
print(num3)
# 呼叫函式,給出2個實參
printnumber(5, 6)
# 再次呼叫函式,給出3個實參
printnumber(5, 6, 8)
(2)函式返回值:
1)返回簡單值:
# 定義函式
def printnumber(num1, num2, num3):
print(num1)
print(num2)
print(num3)
return num1+num2+num3
#呼叫函式
numreturn = printnumber(5, 6, 8)
print(numreturn)
2)返回字典:
# 定義函式
def printnumber(num1, num2, num3):
dic =
return dic
# 呼叫函式
dicreturn = printnumber(5, 6, 8)
print(dicreturn)
3.函式傳參高階:
(1)傳參列表:
1)傳入列表並修改列表:
將列表直接作為實參傳入函式,即可以在函式中修改列表。
# 定義函式,在函式中修改列表num2
def printnumber(num1, num2):
for num in num1:
# 呼叫函式
number1 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
number2 =
printnumber(number1, number2)
# 列表number2已經被修改
print(number2)
2)傳參並禁止修改列表:
向函式傳入列表的副本,這樣函式做出的修改只影響副本,不影響列表本身。
# 定義函式
def printnumber(num1, num2):
for num in num1:
# 呼叫函式,傳入列表的副本
number1 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
number2 =
printnumber(number1[:], number2[:])
# 列表number2未被修改
print(number2)
(2)傳遞任意數量的實參:
1)傳入任意數量實參:
將形參設為*name的形式可以接受任意數量的實參,星號使建立了乙個空元組,傳入的所有實參都將裝入這個元組。當函式除了任意數量實參外還需要接受其他位置實參和關鍵字實參時,要將接納任意數量實參的形參放在引數列表的最後。
# 定義函式,num3設為接納任意數量實參的形參
def printnumber(num1, num2, *num3):
print(num1)
print(num2)
print(num3)
# 呼叫函式
number1 = 5
number2 = 6
number3 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
printnumber(number1, number2, number3)
2)傳入任意數量的關鍵字實參:
當不確定需要接納任意數量的實參是什麼資訊時,需要接納關鍵字實參,這種情況下需要使對應的形參可以接納任意數量的鍵--值對。
# 定義函式,形參num3用於接納任意數量的關鍵字形參
def printnumber(num1, num2, **num3):
print(num1)
print(num2)
print(num3)
# 呼叫函式,後三個實參為傳入num3的關鍵字形參
number1 = 5
number2 = 6
printnumber(number1, number2, num4=7, num5=8, num6=9)
4.函式的模組化:
(1)函式儲存為模組:
模組是擴充套件名為.py的檔案,將函式定義在檔案中就形成了乙個模組。
(2)匯入模組:
1)匯入整個模組:
# 匯入模組trainmodel
import trainmodel
# 匯入模組trainmodel,並將tm作為它的別名
import trainmodel as tm
# 呼叫已匯入模組中函式名為function的函式
tm.function()
2)匯入模組中特定的函式:
# 從模組trainmodel中匯入指定函式名為function的函式
from trainmodel import function
# 匯入多個指定函式
from trainmodel import function1,function2,function3
# 從模組trainmodel中匯入指定函式名為function的函式,並將ft作為它的別名
from trainmodel import function as ft
# 匯入模組中所有函式
from trainmodel import *
Python3 4安裝日記
環境 python3.4.0,win32 安裝過python2.7,然而謎之原因解除安裝了,其實2.7和3.4可以共存。在登錄檔和path內刪除了python2.7的記錄,然後安裝py3.4。尚未找到原因,估計是某個lib過於古老。解除安裝重新安裝python 3.4,可以使用pip 始終建議使用p...
Python3 4執行緒入門
比較成熟的程式語言,基本上都有對執行緒的支援,而python也不例外,下面散仙來看下python裡面對幾個執行緒比較的類或方法 python多執行緒程式設計,一般使用thread和threading模組。thread模組想對較底層,threading模組對thread模組進行了封裝,更便於使用。所有...
Python3 4字串基礎
python文字之一 字串基礎 python version 3.4 單引號 str single quotes blog 雙引號 str double quotes blog print 單引號 str single quotes print 雙引號 str double quotes 用 分行 ...