PYTHON機器學習自學/自修 整理[00014] ~ 語言技術:PYTHON GOSSIP(def 陳述句 ~自訂函數)

PYTHON機器學習自學/自修 整理[00014] ~ 語言技術:PYTHON GOSSIP(def 陳述句 ~自訂函數)

PYTHON機器學習自學/自修 整理[00014] ~ 語言技術:PYTHON GOSSIP(def 陳述句 ~自訂函數)


在Python中要定義函式,是使用def來定義


語法

def 函數名稱(參數列):
	something...


範例:

import sys
import decimal#精準度/精度 運算

def gcd(m, n):#遞迴方式求最大公因數函數
	if n == 0:
		return m
	else:
		return gcd(n, m % n)

print(type(gcd))#顯示 <class 'function'>
print("20 和 30 最大公因數[gcd(20, 30)] = "+str(gcd(20, 30)))

gcd2 = gcd#函數指標
print(gcd2(20, 30))# 顯示 10
print(id(gcd), id(gcd2))#兩個函數記憶體位址顯示的數字相同

def sum(a, b, c = 0):#函數參數有預設值
    return a + b + c

print(sum(10, 20, 30))   # 顯示 60
print(sum(10, 20))       # 顯示 30

def sumN(*numbers):#*單一變數名=定義N個相同型態參數
    total = 0
    for number in numbers:
        total += number
    return total

print(sumN(1, 2))        # 顯示 3
print(sumN(1, 2, 3))     # 顯示 6
print(sumN(1, 2, 3, 4))  # 顯示 10

def dosome(**args):#**單一變數名=字典物件
	print(args)

dosome(name = 'Justin', passwd = 123456, job = '?')


def selection(number):#選擇排序
    # 找出未排序中最小值
    def min(m, j):#函數中的函數=區域函數
        if j == len(number):
            return m
        elif number[j] < number[m]:
            return min(j, j + 1)
        else:
            return min(m, j + 1)
    
    for i in range(0, len(number)):
        m = min(i, i + 1)
        if i != m:
            number[i], number[m] = number[m], number[i]

number = [1, 5, 2, 3, 9, 7]
selection(number)
print(number)     # 顯示 [1, 2, 3, 5, 7, 9]

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *