Python 函數 Function

函數最初被設計出來,是用來減輕重複 coding 一段相同的代碼,這之間只有代碼 (方法,Method) 的重用,但還沒有物件導向OO整個Object 的屬性與方法被封裝重用的概念。

函數的定義很簡單,使用 def 這保留字,而其宣告方式如下:

def 函數名(參數名) :

例如:

>>> def print_count(): # 函數宣告
...    print(‘Good‘)
...    print(‘Morning‘)
...    print(‘Mr.‘)
...
>>> print_count()  # 函數調用
Good
Morning
Mr.

函數允許巢狀 Nested 結構,即一個函數的主體 Body 可以呼叫 call 另一個函數, 例如:

>>> def repeat_count(k):
...    for i in range(1,k):
...      print_count()
...
>>> repeat_count(2)
Good
Morning
Mr.

對函數 repeat_count(k) 而言,k 是形參 (parameter),而調用此函數 repeat_count(2) 的 2 是實參(argument)。

在函數的Body內定義的變數 Variable 都是局部的 Local,即它們只有存在函數內,例如:

>>> m = 6
>>> def repeat_count(k):
...    for i in range(1,k):
...       print_count()
...    m = 3
...
>>> repeat_count(2)
Good
Morning
Mr.
>>> print(m)
6

這範例我們宣告一個全局 Global 變數 m,並且指定 Assign 其值為 6,但在函數repeat_count(k) 同樣宣告一個同名的變數 m,指定其值為 3。,當呼叫調用此函數後,m 的值顯示依然為 6。

函數在被呼叫計算後,可以定義返回值 Return Value (Fruitful Function)。例如:

>>> def repeat_count(k):
...    for i in range(1,k):
...       print_count()
...    return (‘OK‘)
...
>>> status = repeat_count(2)
Good
Morning
Mr.
>>> print(status)
OK

函數 repeat_count(2) 被呼叫後,將其返回值 ‘OK‘ 指定給變數 status。

/end

原文地址:https://www.cnblogs.com/chingchangmeng/p/11383666.html

时间: 2024-10-09 08:55:45

Python 函數 Function的相关文章

Python 函數與常用模組 - 迭代器

迭代器 我們已經知道可以直接作用於 for 循環的數據類型有以下幾種: 一類是集合數據類型: list . tuple . dict . set . str . bytes 等. 另一類是 generator ,包括生成器和帶 yield 的 generator function. 這些可以直接作用於 for 循環的對象,統稱為可迭代的對象( Iterable ): 可迭代的對象,可以把它想成就是 可以循環的對象, 可迭代 = 可循環 可以使用 isinstance() 判斷一個對象是否為 It

Python 函數與常用模組 - 生成器並行運算

目前我們已經大致上都了解生成器了,但要怎麼實際應用呢?!接下來就要舉個例子 yield 保存了這個函數的中斷狀態,返回當前這個狀態的值,並且把函數停在這,想什麼時候回來執行就什麼時候回來執行. 通過yield實現單綫程的情況下,實現並發運算的效果 #!/usr/bin/env python3 # -*- coding:utf-8 -*- def consumer(name): print("%s 準備吃包子啦!" %name) while True: baozi = yield # b

OpenERP函數字段的應用

在ERP開發過程中經常會使用到某字段的值是由其他字段計算得來,並且有些還需要將計算的結果存入資料庫. 以上功能上OpenERP中是用field.function實現的 其中有種模式 a). 只計算,不存儲 這種方式比較簡單,只需要設定用來計算值的函數即可,函數分類method和function,method是指當前對象的方法,function是指一般的python函數,有特定簽名的函數 [python] view plaincopy 'amount': fields.function(_amt,

學習日記:函數和對象

2016-2-21 1. Living without an aim is like sailing without a compass. 生活沒有目標,猶如航海沒有羅盤. 2. 無論是現實世界還是計算機世界,可讀性都是相當重要的,因為這涉及到人們的意識或者是認識效率,一般文字比數字的可理解性和可讀性要好,圖片的可讀性最強. a) 一般數學是比較抽象的,因為其中充滿著各種阿拉伯數字和已經不能再簡化的希臘字符. b) 數學家的得意之作就是覺得自己是在世界科學界的最巔峰. c) 我們能用數學工具處理

ORACLE字符拆分函數,返回結果集

ORACLE不能像MSSQL那樣支持直接返回表類型,所以要先創建一種自定義類型.這裏用到的是嵌套表(Nested Table). -- Nested Table CREATE OR REPLACE TYPE split_str IS TABLE OF VARCHAR(100); / -- Function CREATE OR REPLACE FUNCTION fn_Split ( p_Str VARCHAR2, p_Delimiter VARCHAR2 ) RETURN split_str PI

js匿名函數

(function($){})(jquery) == (function($){})(jQuery) 实际上是匿名函数 用于存放开发插件的代码 作用(非常有用): 这种写法的最大好处是形成闭包.在(function($) {…})(jQuery)在内部定义的函数和变量只能在此范围内有效.   形成是否函数函数.私有变量的概念.比如: var i=3; function init(){ alert("外层init:"+i); } (function($) { var i=2; funct

C/C++ 時間相關函數

最近在處理一些時間上面的問題,將這些函數整理一下囉 先從基本時間概念開始,比較要注意的應該是秒之下的時間單位 毫秒(ms):1秒=1000毫秒 之所以會看到這個時間單位是因為在影像處理裡面,如果是做到real-time的話 1秒要有30張frames,那就是一張frames要0.03333秒 C/C++中時間相關函數主要有兩個:clock()跟time() 這兩個函數都是在<time.h>裡面,使用的話要記得引用 clock() 函數定義 The C library function cloc

js函數

函數是什麼?函數就是被事件驅動或者調用執行的可重複的代碼塊. 函數聲明: 使用關鍵詞function,關鍵詞function大小敏感. function a{代碼塊} 局部變量: 在函數內部聲明的變量,為局部變量: 作用域只能被函數內部的方法訪問: 生存期是從函數生命開始創建對象,函數執行完後變量被刪除: 全局變量: 不在函數中聲明的變量叫做全局變量 作用域可以被所有函數和腳本訪問: 生存期在頁面關閉時,變量被刪除: 沒有關鍵詞的變量賦值無論在什麼位置賦值,都是全局變量. 函數在調用時可以給參數

對比:莫比烏斯反演與歐拉函數

最近題讓我非常困惑,貌似我現在已經完全分不清楚哪些題用莫比烏斯反演,哪些用歐拉函數. 下面簡單總結一下,莫比烏斯反演處理的是 求segma(gcd(x,y)) 1<=x<=n,1<=y<=m (見<能量項鍊>) gcd(x,y) = k   1<=x<=n 1<=y<=m  求x,y對數 (見<bzoj 2301  problem b>) 莫比烏斯反演原來是解決以上問題2的,大體思路是 設F(a,b,k)表示1<=x<=a