(編輯中)
首先變數 會有範圍 (Scope)
家裡有的 就是區域 家裡就先用 沒有才可以去找外面
外面沒有就沒有 不能往別人家偷拿 找不到就是 NameError : not defined
※ 除非 ! 使用return ,把區域拿去全域使用,後念在來說說如何使用 函數回傳值
簡單例子:
練習I
x = 100
def test():
print(x)
test()
>>>
100
練習II
x = 100
def test():
x = 200
print(x)
test()
print(x)
>>>
200
100
最後一題
下圖可以看到
一開始是方法的配置
內容沒有 print
而是 return
XXX , XXX
而外面在呼叫函數 cal(120,7) 引數符合我們參數的 cal(x,y)
允許他被呼叫,世說前面還出現 a , b = cal(120,7)
兩個數字被帶進去方法跑到 return 會是 div = 17 mod = 1
誰呼叫 函數就回去找誰 a , b = cal(120,7) 呼叫的
那 a , b 就會是 a , b = 17 , 1
附上講義文字定義
def compute(x,y):
result = x * y
return result
x,y = eval(input('請輸入任意兩組數字,用逗號隔開 :'))
result = compute(x,y)
print('相乘為',result)
看看別人寫的
def compute():
x=eval(input())
y=eval(input())
z=x*y
return z
v=compute()
print(v)
練習題總結 我要一航打完兩組數字但是題目顯示為兩次的輸入
修改如下
x = eval(input('請輸入數字 :'))
y = eval(input('請輸入數字 :'))
def compute(x,y):
result = x * y
return result
result = compute(x,y)
print('相乘為',result)
請輸入數字 :11
請輸入數字 :56
相乘為 616
請使用選擇敘述撰寫程式,讓使用者輸入一個整數,然後判斷它是否為 2 或 7 的倍數。
*條件最嚴苛的要寫最前面
num1 = eval(input("請輸入一個整數:"))
if num1 % 2 == 0 and num1 % 7 == 0:
print( num1 ,"是 2 及 7 的倍數 ")
elif num1 % 7 == 0:
print( num1 ,"是 7 的倍數")
elif num1 % 2 == 0:
print( num1 ,"是 2 的倍數")
else:
print(num1,"不是 2 也不是 7 的倍數 ")