4.6. 定義函數(shù)
在崇仁等地區(qū),都構建了全面的區(qū)域性戰(zhàn)略布局,加強發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務理念,為客戶提供成都網(wǎng)站制作、網(wǎng)站設計、外貿(mào)網(wǎng)站建設 網(wǎng)站設計制作按需定制,公司網(wǎng)站建設,企業(yè)網(wǎng)站建設,品牌網(wǎng)站建設,營銷型網(wǎng)站,成都外貿(mào)網(wǎng)站建設公司,崇仁網(wǎng)站建設費用合理。
我們可以創(chuàng)建一個用來生成指定邊界的斐波那契數(shù)列的函數(shù):
def fib(n): # write Fibonacci series up to n
... """Print a Fibonacci series up to n."""
... a, b = 0, 1
... while a n:
... print(a, end=' ')
... a, b = b, a+b
... print()
...
# Now call the function we just defined:
... fib(2000)
0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597
關鍵字 def 引入了一個函數(shù) 定義。在其后必須跟有函數(shù)名和包括形式參數(shù)的圓括號。函數(shù)體語句從下一行開始,必須是縮進的。
函數(shù)體的第一行語句可以是可選的字符串文本,這個字符串是函數(shù)的文檔字符串,或者稱為 docstring。(更多關于 docstrings 的信息請參考 文檔字符串) 有些工具通過 docstrings 自動生成在線的或可打印的文檔,或者讓用戶通過代碼交互瀏覽;在你的代碼中包含 docstrings 是一個好的實踐,讓它成為習慣吧。
函數(shù) 調(diào)用 會為函數(shù)局部變量生成一個新的符號表。確切的說,所有函數(shù)中的變量賦值都是將值存儲在局部符號表。變量引用首先在局部符號表中查找,然后是包含函數(shù)的局部符號表,然后是全局符號表,最后是內(nèi)置名字表。因此,全局變量不能在函數(shù)中直接賦值(除非用 global 語句命名),盡管他們可以被引用。
函數(shù)引用的實際參數(shù)在函數(shù)調(diào)用時引入局部符號表,因此,實參總是 傳值調(diào)用 (這里的 值 總是一個對象 引用 ,而不是該對象的值)。[1] 一個函數(shù)被另一個函數(shù)調(diào)用時,一個新的局部符號表在調(diào)用過程中被創(chuàng)建。
一個函數(shù)定義會在當前符號表內(nèi)引入函數(shù)名。函數(shù)名指代的值(即函數(shù)體)有一個被 Python 解釋器認定為 用戶自定義函數(shù) 的類型。 這個值可以賦予其他的名字(即變量名),然后它也可以被當作函數(shù)使用。這可以作為通用的重命名機制:
fib
f = fib
f(100)
0 1 1 2 3 5 8 13 21 34 55 89
如果你使用過其他語言,你可能會反對說:fib 不是一個函數(shù),而是一個方法,因為它并不返回任何值。事實上,沒有 return 語句的函數(shù)確實會返回一個值,雖然是一個相當令人厭煩的值(指 None )。這個值被稱為 None (這是一個內(nèi)建名稱)。如果 None 值是唯一被書寫的值,那么在寫的時候通常會被解釋器忽略(即不輸出任何內(nèi)容)。如果你確實想看到這個值的輸出內(nèi)容,請使用 print() 函數(shù):
打開IDLE python GUI,點擊開始-所有程序-python2.7-IDLE python GUI,或者直接進入dos環(huán)境,或者其他的IDLE。
請點擊輸入圖片描述
首先,創(chuàng)建一個簡單的自定義函數(shù),定義為K函數(shù)。
請點擊輸入圖片描述
假如x==Kill,那么,就可以代入剛才所創(chuàng)建的K函數(shù),最后返回一個語句,x為任意字符,空白字符也可以。
請點擊輸入圖片描述
要注意的是,用def創(chuàng)建函數(shù)的時候,k(x)括號里面是不用雙引號的,而調(diào)用自定義函數(shù)的時候,在括號了就要加上雙引號。
上面的定義函數(shù)比較簡單,只用了一個print輸出語句,現(xiàn)在,定義一個累加的函數(shù),就要用到while函數(shù)和if函數(shù)了。
請點擊輸入圖片描述
A函數(shù)是用來計算累加的,其中用到了一個while循環(huán)和if判斷,x為自定義變量,假如現(xiàn)在X為100,也就是說此函數(shù)計算1+2+3+...+100的和。
請點擊輸入圖片描述
1、首先在當前目錄下找有沒有abc、abc.py
2、找python的安裝目錄:F:\Python2.7Exe\Lib\site-packages;F:\Python2.7Exe\Lib;
3、找電腦中path下面的目錄
于是我改變路徑,將保存的abc.py文件直接放在python的安裝目錄下,使用import abc命令,然后在Python交互界面用 abc.XXX(XXX是abc.py文件中的定義函數(shù)的函數(shù)名),解決了調(diào)用自定義函數(shù)問題。
"""
【簡介】
內(nèi)置信號槽示例
"""
from PyQt5.QtCore import QObject, pyqtSignal
class QTypeSignal(QObject):
# 定義一個信號
sendmsg = pyqtSignal(object)
class QTypeSlot(QObject):
def init (self):
super(QTypeSlot, self). init ()
if name == ' main ':
send = QTypeSignal()
slot = QTypeSlot()
# 1
print('--- 把信號綁定到槽函數(shù) ---')
send.sendmsg.connect(slot.get)
send.run()
from PyQt5.QtCore import QObject , pyqtSignal
class QTypeSignal(QObject):
#定義一個信號
sendmsg = pyqtSignal( str,str)
class QTypeSlot(QObject):
def init ( self):
super( QTypeSlot, self). init ()
if name == ' main ':
send = QTypeSignal()
slot = QTypeSlot()
定義一個函數(shù)
你可以定義一個由自己想要功能的函數(shù),以下是簡單的規(guī)則:
函數(shù)代碼塊以 def 關鍵詞開頭,后接函數(shù)標識符名稱和圓括號 ()。
任何傳入?yún)?shù)和自變量必須放在圓括號中間,圓括號之間可以用于定義參數(shù)。
函數(shù)的第一行語句可以選擇性地使用文檔字符串—用于存放函數(shù)說明。
函數(shù)內(nèi)容以冒號 : 起始,并且縮進。
return [表達式] 結束函數(shù),選擇性地返回一個值給調(diào)用方,不帶表達式的 return 相當于返回 None。