# === 函數 ===
def function1(): # 無參函數
print("×參數 ×返回") # 無返回
def function2(arg1, arg2): # 帶參函數(位置參數)
return "√參數 √返回" # 有返回
def function2_1(arg1, arg2):
return arg1, arg2 # 元組形式返回多個值
def function3(*args): # 不定長參數(位置參數),把位置參數(*args)轉成元組
print("function3: ", args)
def function3_1(**kwargs): # 不定長參數(關鍵字參數), 把關鍵字參數(**kwargs)轉成字典
print("function3_1: ", kwargs)
def function4(arg1 = 5): # 缺省參數(不傳參將使用默認值)(注意:Python不支持函數重載,該方式解決了重載問題)
print("function4:%s" % arg1)
def function5(n): #遞歸示例
"打印100以內的奇數"
if n <= 100:
print(n)
n += 2
return function5(n)
# === 位置參數 和 關鍵字參數 的混合使用 ===
def function6(arg, *args):
print("function6: ", arg)
print("function6: ", args)
def function7(arg, age=21, **kwargs):
print("function7: ", arg)
print("function7: ", age)
print("function7: ", kwargs)
def function8(arg, age=21, *args, **kwargs): # 位置參數 只能寫在 關鍵字參數 前面
print("function8: ", arg)
print("function8: ", age)
print("function8: ", args)
print("function8: ", kwargs)
function1() # ×參數 ×返回
print(function2("a", "b")) # √參數 √返回
print(function2_1("a", "b")) # ('a', 'b')
function3(1, 2, 3) # function3: (1, 2, 3)
function3(*[1, 2, 3]) # function3: (1, 2, 3)
function3_1(a="A", b="B", c="C") # function3_1: {'a': 'A', 'b': 'B', 'c': 'C'}
function3_1(**{"a":"A", "b":"B", "c":"C"}) # function3_1: {'a': 'A', 'b': 'B', 'c': 'C'}
function4(3) # function4:3
function5(50)
function6(1, 2, 3, 4, 5)
# function6: 1
# function6: (2, 3, 4, 5)
function6(1, *[2, 3, 4, 5])
# function6: 1
# function6: (2, 3, 4, 5)
function7(1, num=12, age=50)
# function7: 1
# function7: 50
# function7: {'num': 12}
function8(1, 22, 2, 3, num=12)
# function8: 1
# function8: 22
# function8: (2, 3)
# function8: {'num': 12}
# === 變量 ===
global_var = 123 # 全局變量,作用域整個程序
global_var_c = 321
def localvariable():
local_var = 456 # 局部變量, 作用域在子程序
global_var_c = 123 # 子程序不能修改全局變量(引用(如:list,class)除外)
print("global_var: {}; global_var_c: {}; local_var: {}".format(global_var, global_var_c, local_var)) # => 123, 123, 456
localvariable()
print("global_var: {}; global_var_c: {}".format(global_var, global_var_c)) # => 123, 321
# === 修改全局變量 ===
global_list = {"num" : 123}
def localvariable_cg():
global_list["num"] = 321
print("global_list: {}".format(global_list)) # => {'num': 321}
localvariable_cg()
print("global_list: {}".format(global_list)) # => {'num': 321}
# === 修改全局變量的作死寫法 (不建議使用這種寫法, 容易造成全局變量使用混亂) ===
global_err = 123
def localvariable_err():
global global_err
global_err = 321
print("global_err: {}".format(global_err)) # => 321
localvariable_err()
print("global_err: {}".format(global_err)) # => 321