Python 函數(一)

用書 PYTHON王者歸來 作者洪錦魁

def hello(name):
    print("Hi",name,"How are you")
hello("nini")
hello("Kiki")

執行結果

參數的傳遞

def math_01(a,b):
    result = a - b
    print(result)
a = eval(input("x:"))
b = eval(input("y:"))
print("x-y=")
math_01(a,b)

執行結果

def classA(name ,number):
    print("My name is:", name)
    print("My number is:", number )
    print()
a = str(input("Name:"))
b = eval(input("Number:"))
classA(a,b)

執行結果

關鍵字參數

def classA(name ,number):
    print(f"My name is: {name}")
    print(f"My number is: {number}" )
    print()

classA(name="Nini",number=9)
classA(number=9,name="Nini")

執行結果

參數預設值

  • 必須放在參數右邊
  • 位址不可對調
def classA(name ,number=9):
    print(f"My name is: {name}")
    print(f"{name},My number is: {number}" )
    print()

classA(name="Nini",number=6)
classA(name="Nini")
classA(number=5,name="Nini",)

執行結果

函數傳回值(None)

def classA(name ,number=9):
    print(f"My name is: {name}")
    return #這邊若省略return結果也是相同
value = classA("nini")
print(value)
print(type(value))

執行結果

Value =None #false
if Value:
    print("1")
else:
    print("2")

print("1"if Value else"2")

執行結果

def is_none(str,x):
    if x is None:
        print(f"{str}=None")
    elif x:
        print(f"{str}=True")
    else:
        print(f"{str}=False")
is_none("[]",[])
is_none("()",())
is_none("{ }",{})
is_none("空集合",set())
is_none("None",None)
is_none("True",True)
is_none("False",False)

執行結果

return result

def add(x,y):
    result = x + y
    return result
a = int(input("a="))
b = int(input("b="))

print("a+b=",add(a,b))

執行結果

ans= int(input("加法按1.減法按2.乘法按3.除法按4:"))
a = int(input("a="))
b = int(input("b="))
def add(x,y):
    return x + y
def subtract(x,y):
    return x - y
def multiply(x,y):
    return x * y
def divide(x,y):
    return x / y


if ans ==1:
    print("a+b=",add(a,b))
elif ans ==2:
    print("a-b=",subtract(a,b))
elif ans ==3:
    print("a*b=",multiply(a,b))
elif ans ==4:
    print("a/b=",divide(a,b))
else:
    print("error")

執行結果

return Tuple

def math1(x,y):
    add= x + y
    subtract= x - y
    multiply= x * y
    divide= x / y
    return add,subtract,multiply,divide
x=6
y=1
add,subtract,multiply,divide = math1(x,y)
print(add)
print(subtract)
print(multiply)
print(divide)
print(type(math1))
print(type(math1(x,y)))

執行結果

回傳字串資料和參數的預設值

def Classmate(fristname,lastname,grade,middlename =""):#沒有中間名
    if grade <= 60:
       word = fristname +" " + middlename + " " +lastname + " " + "Bad"
    else:
       word = fristname + " " + middlename + " " + lastname + " " + "Good"
    return word
A = Classmate("Kiki","lika",60,"m")
B = Classmate("Nii","lika",100,"k")
C = Classmate("RURU","Bi",80)#沒有中間名
print(A)
print(B)
print(C)

執行結果

函數回傳字典資料

def classnumeber(name,number,grade=""):
    classdict ={"name":name,"number":number}
    if grade:
        classdict["grade"] =grade
    return classdict
classmateA = classnumeber("A",6)
classmateB = classnumeber("B",7,100)
print(classmateA)
print(classmateB)

執行結果

迴圈應用在建立字典

def classnumeber(name,number,grade=""):
    classdict ={"name":name,"number":number}
    if grade:
        classdict["grade"] =grade
    return classdict
while True:
    print("建立班級系統")
    name = input("你的名字:")
    number = input("學號:")
    grade = input("成績(如果沒有成績請按ENTER鍵):")
    classmate = classnumeber(name,number,grade)
    print(classmate,"\n")
    again = input("要再繼續輸入資料請按y,不輸入請按任意鍵離開:")
    if again !=("y"):
        break
print("再見")

執行結果