Methods: 需要跟著一個object ex: “An apple”.split(” ”)
Function: 可獨立使用 range(10)
#上網 python documentation 也可查詢
def sayhi():
print("Hello! How are you?")
#function execution, invokation
sayhi() #Hello! How are you?
print(sayhi) #<function sayhi at 0x000001EDFBE2C2F0>
def addition(x,y):
print(x+y)
addition(2,5) #7 #argument
a = 5 #global variable
def f1():
x = 2 #local variable
y = 3
print(x,y,a)
f1() #2,3,5
print(x,y) #error因為找不到對應的值,x,y是local variable
#inputs(parameters) are local in the function
a = 10
def change(num):
num = 25
#無法改變a本身的值(copy by value)
change(a)
#change(a)中num = a(copy by value), num = 10
print(a) #10
a = [1,2,3,4]
def change(lst):
lst[0] = 25
#改變a本身的值(copy by reference)
change(a)
#change(a)中lst = a(copy by reference), a = [25,2,3,4]
print(a) #a = [25,2,3,4]
change copy by value global variables
a = 10
def change(num):
global a
a = 25
change(a)
print(a) #25
help() to check the function or method ””” this can be use for explanation in a function definition**“””** (doctring)
def myAddition(a,b):
""" This function does addition"""
print(a + b)
help(myAddition)
#Help on function myAddition in module __main__:
#myAddition(a, b)
# This function does addition
function default return value is None, 可以加以設定 如果在loop中使用return,程式會停止繼續執行
def myAddition(a,b):
print(a + b)
print(myAddition(10,18)+myAddition(10,8))
# Error 因為myAddition(10,18)執行後為Nonetype(無意義)是執行程式,非一資料型態,所以無法使用'+'
def myAddition(a,b):
**return**(a + b)
print(myAddition(10,18)+myAddition(10,8))
def myAddition(a,b):
for i in range(a):
for j in range(b):
if i == 1 and j == 2:
return
print(i,j)
myAddition(2,3)
#0 0
#0 1
#0 2
#1 0
#1 1
print(myAddition(2,3)) #default = None
#0 0
#0 1
#0 2
#1 0
#1 1
#None (因為最後一個值未return任何東西,所以出現default: None)