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。
還有一種函數,自己呼叫自己,此類函數被稱為遞歸(Recursive)函數。例如:
>>> def factorial(n):
... if n == 1:
... return 1
... else:
... return n * factorial(n - 1)
...
>>> factorial(3)
6
>>> factorial(4)
24
>>> factorial(5)
120
有關遞歸函數的概念較複雜,需另闢章節說明。
/end
Python 函數 Function的更多相关文章
- OpenERP函數字段的應用
在ERP開發過程中經常會使用到某字段的值是由其他字段計算得來,並且有些還需要將計算的結果存入資料庫. 以上功能上OpenERP中是用field.function實現的 其中有種模式 a). 只計算,不 ...
- jQuery在$(function(){})中調用函數
任務太緊,很少記筆記,記下一篇jQuery中調用函數的例子: 該方法是在載入頁面的時候,判斷 ModelName 不為空,則獲取Model信息加載到Table中: 另外,在點擊半成品編號文本框時,也調 ...
- python 學習深淺拷貝、集合、、作用域、函數
python 學習深淺拷貝.集合..作用域.函數 2020開年新冠肺炎流行大部分人員.工廠.單位無法復工生產,人員隔離每天外出都要戴口罩,在家隔離期間悶壞了感覺把半年的口糧都幹掉了,嚴重考察大家的資本 ...
- js匿名函數
(function($){})(jquery) == (function($){})(jQuery) 实际上是匿名函数 用于存放开发插件的代码 作用(非常有用): 这种写法的最大好处是形成闭包.在(f ...
- PHP 計算字符串長度函數
PHP內置的字符串長度函數strlen無法正確處理中文字符串,它得到的只是字符串所占的字節數.對於GB2312的中文編碼,strlen得到的值是漢字個數的2倍,而對於UTF-8編碼的中文,就是3倍的差 ...
- js函數
函數是什麼?函數就是被事件驅動或者調用執行的可重複的代碼塊. 函數聲明: 使用關鍵詞function,關鍵詞function大小敏感. function a{代碼塊} 局部變量: 在函數內部聲明的變量 ...
- (C/C++) 指向函數的指標
最近再跟指標做朋友, 正好遇到函數與指標. 其實函數也在程式內也是有屬於自己的位址 所以指標一樣能指向函數, 在此釐清自己的觀念以及記錄下來. #include <stdio.h> #in ...
- 特性,批次特性建立的BAPI函數
[转http://taijizhang.blog.163.com/blog/static/176071381201442225514453/] SAP特性,物料特性,批次特性建立的BAPI函數 类的T ...
- js正則函數 match、exec、test、search、replace、split 使用介紹集合
match 方法 使用正則表達式模式對字元串執行查找,並將包含查找的結果作為數組返回. stringObj.match(rgExp) 參數 stringObj 必選項.對其進行查找的 String 對 ...
随机推荐
- 在mpvue引入flyio
先来说微信小程序原生的请求接口方式吧,如官网文档,在页面中请求直接调用 在这里感谢接的是提供的免费接口https://blog.csdn.net/c__chao/article/details/785 ...
- birt fatal error致命异常错误
- Cocos Creator 资源加载流程剖析【三】——Load部分
Load流程是整个资源加载管线的最后一棒,由Loader这个pipe负责(loader.js).通过Download流程拿到内容之后,需要对内容做一些"加载"处理.使得这些内容可以 ...
- Java 多线程应知应会
请简单说说 synchronized 关键字的底层原理 java 说到多线程绝对绕不开 synchronized,很多 java 工程师对 synchronized 是又爱又恨.为什么呢?主要原因包括 ...
- Class文件结构-练习题1
package org.fenixsoft.clazz; public class TestClass { private int m; public int inc() { return m + 1 ...
- WebSocket断开原因、心跳机制防止自动断开连接
1.断开原因 WebSocket断开的原因有很多,最好在WebSocket断开时,将错误打印出来. ws.onclose = function (e) { console.log('websocket ...
- Linux下安装及使用mysql
(注:本人在centos7进行的安装及使用) 1.安装wget yum install wget 2.下载mysql安装包 wget http://repo.mysql.com/mysql57-com ...
- Dotnetcore或owin程序启用SSL的方法
https端口需要绑定SSL证书 操作方法与步骤如下: 在IIS中创建证书 查看证书的指纹 使用命令行绑定端口与证书 上述第三步也可以更换为创建一个新的空网站,绑定https端口为相同端口并绑定证书, ...
- idea git提交代码步骤
这位兄台已经写的很清楚了... 我这里直接给你们链接把... https://blog.csdn.net/u013452337/article/details/79956604 Git 初次提交,以及 ...
- 表单生成器(Form Builder)之mongodb表单数据查询——返回分页数据和总条数
上一篇笔记将开始定义的存储结构处理了一下,将FormItems数组中的表单项都拿到mongodb document的最外层,和以前的关系型数据类似,之不过好多列都是动态的,不固定,不过这并没有什么影响 ...