Chapter 4 Function and Methods

Methods: 需要跟著一個object ex: “An apple”.split(” ”)

Function: 可獨立使用 range(10)

help() 可查閱使用方式 ex: help(mylist.insert)

#上網 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

return 回傳

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)