欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

python創(chuàng)建獨立函數(shù) Python創(chuàng)建自定義函數(shù)

python如何定義一個函數(shù)

python中,使用 def 關鍵字定義一個函數(shù)。如:

成都創(chuàng)新互聯(lián)公司是一家專注于成都網站建設、網站建設與策劃設計,建平網站建設哪家好?成都創(chuàng)新互聯(lián)公司做網站,專注于網站建設十余年,網設計領域的專業(yè)建站公司;建站業(yè)務涵蓋:建平等地區(qū)。建平做網站價格咨詢:18980820575

def functionname(args1,args2):

pass

大約就是這個樣子。

python怎么單獨運行某個函數(shù)?

答: 我所知道的有兩種方法。

第1種方法就是使用Jupyter編寫Python代碼, 把不同的內容編寫在不同的代碼塊里面,這樣的話我們就可以單獨運行某一個代碼塊,而不需運行整個文件;

使用Python進行代碼編寫時,將其設置為科學模式,并在函數(shù)前面添加#%%標志,然后也可以達到一個一個代碼塊的效果。企業(yè)可以單獨運行某一個部分。

希望能夠幫助到你。

python內建函數(shù)

其實安裝python包會自帶一個有問號標示“?”的"Python Manuals"可以仔細閱讀一下,也可作幫助文檔的。

介紹Python的內建函數(shù)和異常.許多內建函數(shù)的細節(jié)及特性可以在這里找到.

內建函數(shù)

本節(jié)介紹的函數(shù)在解釋器中總是可用的,他們被包含在 __builtin__ 模塊里.另外每個模塊的 __builtins__ 屬性經常指的是這個模塊(除了當在restricted execution環(huán)境下運行時).

_(下劃線)

默認情況下,變量 _ 用于在交互模式下表示最近一個表達式的運行結果.

參閱 sys.displayhook (118)

__import__(name [, globals [, locals [, fromlist]]])

import語句通過調用這個函數(shù)來導入模塊. name是包含模塊名字的字符串, globals是一個可選的定義全局名稱空間的字典, locals是定義局部名稱空間的字典, fromlist是from語句目標的列表.例如, import spam語句會調用__import__('spam', globals(), locals(), []) ,而from spam import foo 語句會調用 __import__('spam', globals(), locals(), ['foo']). 如果模塊名在包名字之后(如foo.bar)而且fromlist為空時,就返回對應的模塊對象.如果fromlist不為空,則只會返回最頂級的包.

這個函數(shù)是一個低等級的模塊載入接口.它并不執(zhí)行import語句的所有步驟(通常情況下局部名稱空間并不會隨模塊中包含對象的名稱引用的改變而改變.這個函數(shù)可以由用戶來重新定義,這樣為import語句加入新的行為.默認的執(zhí)行并不會檢查locals參數(shù),而globals只用于決定包的內容(這些參數(shù)可以使 __import__()能夠完整地訪問全局和局部名稱空間)

abs(x)

返回x的絕對值

apply(func [, args [, keywords]])

對可調用對象func執(zhí)行函數(shù)調用. args是一個包含固定位置參數(shù)的元組, keywords是包含關鍵參數(shù)的字典. apply()函數(shù)也可以寫做func(*args ,**keywords ).

buffer(sequence [, offset [, size]])

創(chuàng)建一個新的緩沖器對象.緩沖器通常是一個序列(如字符串)的字節(jié)導向序列.緩沖器和字符串在許多地方是相同的,但是它不支持字符串方法,而且也不能使用string模塊的函數(shù).

callable(object)

當object為可調用對象時返回True,否則返回False

chr(i)

將一個0到255的整數(shù)轉換為一個字符.

cmp(x,y)

比較x和y. x y返回負數(shù); x== y返回零; x y返回整數(shù).它可以比較任意兩個對象并返回結果,即使有時候對象的比較豪無意義(例如比較文件對象).在某些環(huán)境下,這樣的比較會引發(fā)異常.

coerce(x,y)

將x和y值轉換為同一個數(shù)值類型并作為一個元組返回.(第三章,類型和對象)

compile(string, filename, kind)

使用exec()或eval()將字符串編譯為代碼對象. filename is a string containing the name of the file in which the string was defined. kind為'exec'時代表一個表達式的序列, 'eval'代表一個表達式, 'single'代表一個運行語句.

complex(real [, imag])

創(chuàng)建一個復數(shù)

delattr(object, attr)

刪除對象的一個屬性, attr是一個字符串.與 del object.attr相同

dir([object])

返回包含屬性名稱的列表.它們來自對象的 __dict__, __methods__,以及 __members__ 屬性.如果沒有傳遞給它參數(shù),則會返回當前的local symbol table

divmod(a,b)

返回一個包含商和余數(shù)的元組.對于整數(shù),將返回(a / b , a % b ),對于浮點數(shù),將返回(math.floor(a / b ), a % b )

eval(expr [, globals [, locals]])

計算一個表達式的值. expr是一個字符串或由compile()創(chuàng)建的一個代碼對象. globals和locals為操作定義的全局和局部名稱空間,當省略時,表達式將在調用時的名稱空間計算.

execfile(filename [, globals [, locals]])

運行文件filename中的語句. globals和locals定義了文件運行的全局和局部名稱空間,當省略時,文件將在調用時的名稱空間運行.這個函數(shù)不能在一個函數(shù)主體里使用,因為它與內嵌范圍不相容.

filter(function, list)

使用func()函數(shù)來過濾s中的元素.使func返回值為false的元素被丟棄,其它的存入filter函數(shù)返回的列表中.如果function是None,則list中值為False的元素就被刪除.

float(x)

將x轉換為浮點數(shù)

getattr(object, name [, default])

返回一個對象的屬性. name是一個字符串. default是一個可選的值,代表當沒有這個屬性時返回的值. 與 object.name 結果相同

globals()

返回一個與全局名稱空間對應的字典

hasattr(object, name)

返回object是否有name屬性,布爾值

hash(object)

返回一個對象的整數(shù)哈希值(如果可能).兩個相等對象的哈希值是相同的.模塊沒有定義一個哈希值.

hex(x)

將一個整數(shù)或長整數(shù)轉換為一個十六進制的字符串

id(object)

返回一個對象的整數(shù)id

input([prompt])

相當于eval(raw_input(prompt ))

int(x [, base])

將一個數(shù)字或字符串轉換為整數(shù). 可選參數(shù)base代表從字符串轉換時的基礎/根據(jù)

intern(string)

Checks to see whether string is contained in an internal table of strings. If found, a copy of the internal string is returned. If not, string is added to the internal table and returned. This function is primarily used to get better performance in operations involving dictionary lookups. Interned strings are never garbage-collected. Not applicable to Unicode strings.

isinstance(object, classobj)

檢查object是否是classobj的事例或子類.也可用于檢查類型

issubclass(class1, class2)

檢查class1是否是class2的子類(派生類)

注意: issubclass(A , A )返回True

len(s)

返回序列s中包含的條目數(shù)目

list(s)

返回一個包含序列s中條目的新列表

locals()

返回一個與調用時局部名稱空間相對應的字典

long(x [, base])

將一個數(shù)字或字符串轉換為長整數(shù),可選參數(shù)base代表從字符串轉換時的基礎/根據(jù)

map(function, list, ...)

將序列l(wèi)ist中的每個元素傳遞給function函數(shù)做參數(shù),函數(shù)的返回值組成列表并返回.如果提供給多個列表,則函數(shù)應包含有多個參數(shù),每個參數(shù)從不同的列表獲得.如果函數(shù)為None,則默認為 identity function(?身份函數(shù)).如果None映射到多個列表,則返回一個包含元組的列表,元組的每個元素分別來自各個列表.如果有必要,短的列表將使用None來擴充到與最長列表長度相等. map可以使用list comprehensions 來代替.例如map(function , alist ),可以使用[function (x) for x in alist ]來代替

參閱 zip (105).

max(s [, args, ...])

單個參數(shù)時,返回序列s中的最大值.多個參數(shù)時,返回值最大的參數(shù)

min(s [, args, ...])

單個參數(shù)時,返回序列s中的最小值.多個參數(shù)時,返回值最小的參數(shù)

oct(x)

將一個整數(shù)或者長整數(shù)轉換為八進制字符串

open(filename [, mode [, bufsize]])

打開文件filename并返回一個文件對象(第十章,運行環(huán)境). mode代表文件打開的模式. 'r' 表示讀, 'w' 表示寫, 'a' 表示在文件末尾添加內容. 還有一種更新模式,你只要在讀寫模式后增加一個'+'就可以使用這種模式,如'r+' 或 'w+'.當一個文件以更新模式打開,你就可以對這個文件進行讀寫操作.只要在任何讀取操作之前刷新所有的輸出緩沖就不會有問題.如果一個文件以 'w+' 模式打開,它的長度就度截為 0.當mode省略時,將會使用'w'模式.bufsize參數(shù)指定了緩沖行為, 0代表無緩沖,1代表行緩沖,其他正數(shù)代表一個大約的字節(jié)緩沖器大小,負數(shù)代表使用系統(tǒng)默認緩沖器大小(也是默認行為)

ord(c)

返回單個字符c的整數(shù)順序值.普通字符返回[0,255]中的一個值,Unicode字符返回 [0,65535]中的一個值

pow(x, y [, z])

返回x ** y ,如果z存在返回(x ** y ) % z

range([start,] stop [, step])

返回一個從start到stop的整數(shù)序列, step代表步進,默認值為1. start默認值為0.負數(shù)的step可以創(chuàng)建一個遞減的整數(shù)序列

參閱xrange (105)

raw_input([prompt])

從標準輸入(sys.stdin)中讀取一行,并把它作為字符串返回.如果提供了prompt,它將首先打印到標準輸出(sys.stdout).當讀取到一個EOF時,就會引發(fā)一個EOFError異常.如果readline模塊被導入,那么這個函數(shù)會使用它來提供更高級的功能

reduce(func, seq [, initializer])

函數(shù)從一個序列收集信息,然后只返回一個值(例如求和,最大值,等).它首先以序列的前兩個元素調用函數(shù),再將返回值和第三個參數(shù)作為參數(shù)調用函數(shù),依次執(zhí)行下去,返回最終的值. func函數(shù)有且只有兩個參數(shù).在seq為空時,將使用初始值initializer.

reload(module)

重新導入一個已經導入的模塊. module必須是一個已經存在的模塊對象.一般情況下并不鼓勵使用這個函數(shù),除了在調試的時候.

當一個模塊重導入時,定義它的全局名稱空間的字典依然存在.Thus, definitions in the old module that aren’t part of the newly reloaded module are retained.模塊可以利用這個來檢查他們是否已經被導入.

重導入一個使用C編寫的模塊通常是不合法的

If any other modules have imported this module by using the from statement, they’ll continue to use the definitions in the previously imported module. This problem can be avoided by either reissuing the from statement after a module has been reloaded or using fully qualified names such as module.name .

如果有使用以前模塊中類創(chuàng)建的實例,它們將繼續(xù)使用以前的模塊

repr(object)

返回一個對象的標準字符串表示.與向后的引號 `object` 相同.大多數(shù)情況下,返回的字符串可以使用eval()來再次創(chuàng)建這個對象.

round(x [, n])

Returns the result of rounding the floating-point number x to the closest multiple of 10 to the power minus n . If n is omitted, it defaults to 0. If two multiples are equally close, rounding is done away from 0 (例如, 0.5 is rounded to 1.0 and -0.5 is rounded to -1.0).

setattr(object, name, value)

設置一個對象的屬性. name是一個字符串. 相當于object.name = value .

slice([start,] stop [, step])

返回一個代表指定數(shù)列中一個整數(shù)的切片對象.切片對象也可以有擴展切片操作語句來產生.(第三章,序列和映射方法)

str(object)

返回表示對象的可打印形式的字符串.與print語句產生的字符串相同.

tuple(s)

從序列s中創(chuàng)建一個元組.如果s已經是一個元組,則返回s

type(object)

返回object的類型,它是一個types模塊中定義type類型

參閱isinstance (102)

unichr(i)

將一個0到65535的整數(shù)轉換為一個Unicode字符

unicode(string [, encoding [, errors]])

將string轉換為Unicode字符串. encoding指定了string的數(shù)據(jù)編碼,它被省略時,將使用sys.getdefaultencoding(). errors指定編碼錯誤處理方式.('strict', 'ignore', 或 'replace' .參閱第三章和第九章中有關Unicode內容)

vars([object])

返回object的 symbol table (通常在object的__dict__屬性).如果沒有給它提供參數(shù),則返回對應當前局部名稱空間的字典.

xrange([start,] stop [, step])

和range函數(shù)相似,但返回的是一個XRangeType對象.它生成一個迭代器,就是只有用那個數(shù)時才臨時通過計算提供值,而不是全部儲存它們.這樣在處理大的數(shù)列時能節(jié)省大量的內存.

zip(s1 [, s2 [,..]])

用來將幾個序列組合成一個包含元組的序列,序列中的每個元素t[i ] = (s1[i ], s2[i ], ..., sn[i ]).結果與最短序列的長度相等.

在Python中定義Main函數(shù)

目錄

許多編程語言都有一個特殊的函數(shù),當操作系統(tǒng)開始運行程序時會自動執(zhí)行該函數(shù)。這個函數(shù)通常被命名為main(),并且依據(jù)語言標準具有特定的返回類型和參數(shù)。另一方面,Python解釋器從文件頂部開始執(zhí)行腳本,并且沒有自動執(zhí)行的特殊函數(shù)。

盡管如此,為程序的執(zhí)行定義一個起始點有助于理解程序是如何運行的。Python程序員提出了幾種方式對此進行實現(xiàn)。

本文結束時,您將了解以下內容:

Python中的基本main()函數(shù)

一些Python腳本中,包含一個函數(shù)定義和一個條件語句,如下所示:

此代碼中,包含一個main()函數(shù),在程序執(zhí)行時打印Hello World!。此外,還包含一個條件(或if)語句,用于檢查__name__的值并將其與字符串"__main__"進行比較。當if語句為True時,Python解釋器將執(zhí)行main()函數(shù)。更多關于Python條件語句的信息可以由此獲得。

這種代碼模式在Python文件中非常常見,它將作為腳本執(zhí)行并導入另一個模塊。為了幫助理解這段代碼的執(zhí)行方式,首先需要了解Python解釋器如何根據(jù)代碼的執(zhí)行方式設置__name__。

Python中的執(zhí)行模式

Python解釋器執(zhí)行代碼有兩種方式:

更多內容可參考如何運行Python腳本。無論采用哪種方式,Python都會定義一個名為__name__的特殊變量,該變量包含一個字符串,其值取決于代碼的使用方式。

本文將如下示例文件保存為execution_methods.py,以 探索 代碼如何根據(jù)上下文改變行為:

在此文件中,定義了三個對print()函數(shù)的調用。前兩個打印一些介紹性短語。第三個print()會先打印短語The value __name__ is,之后將使用Python內置的repr()函數(shù)打印出__name__變量。

在Python中,repr()函數(shù)將對象轉化為供解釋器讀取的形式。上述示例通過使用repr()函數(shù)來強調__name__的值為字符串。更多關于repr()的內容可參考Python文檔。

在本文中,您將隨處可見文件(file),模塊(module)和腳本(script)這三個字眼。實際上,三者之間并無太大的差別。不過,在強調代碼目的時,還是存在細微的差異:

“如何運行Python腳本”一文也討論了三者的差別。

基于命令行執(zhí)行

在這類方法中,Python腳本將通過命令行來執(zhí)行。

執(zhí)行腳本時,無法與Python解釋器正在執(zhí)行的代碼交互。關于如何通過命令行執(zhí)行代碼的詳細信息對本文而言并不重要,但您可以通過展開下框閱讀更多有關Windows,Linux和macOS之間命令行差異的內容。

命令行環(huán)境

不同的操作系統(tǒng)在使用命令行執(zhí)行代碼時存在細微的差異。

在Linux和macOS中,通常使用如下命令:

美元符號($)之前的內容可能有所不同,具體取決于您的用戶名和計算機名稱。您鍵入的命令位于$之后。在Linux或macOS上,Python3的可執(zhí)行文件名為python3,因此可以通過輸入python3 script_name.py來運行python腳本。

在Windows上,命令提示符通常如下所示:

根據(jù)您的用戶名,之前的內容可能會有所不同,您輸入的命令位于之后。在Windows上,Python3的可執(zhí)行文件通常為python。因此可以通過輸入python script_name.py來運行python腳本。

無論哪種操作系統(tǒng),本文的Python腳本的輸出結果都是相同的。因此本文以Linux和macOS為例。

使用命令行執(zhí)行execution_methods.py,如下所示:

在這個示例中,__name__具有值'__main__',其中引號(')表明該值為字符串類型。

請記住,在Python中,使用單引號(')和雙引號(")定義的字符串沒有區(qū)別。更多關于字符串的內容請參考Python的基本數(shù)據(jù)類型。

如果在腳本中包含"shebang行"并直接執(zhí)行它(./execution_methods.py),或者使用IPython或Jupyter Notebook的%run,將會獲取相同的結果。

您還可以通過向命令行添加-m參數(shù)的方法實現(xiàn)以模塊的方式執(zhí)行。通常情況下,推薦如下方式pip: python3 -m pip install package_name。

添加-m參數(shù)將會運行包中__main__.py的代碼。更多關于__main__.py文件的內容可參考如何將開源Python包發(fā)布到PyPI中。

在三種情況中,__name__都具有相同的值:字符串'__main__'。

技術細節(jié):Python文檔中具體定義了__name__何時取值為'__main__'。

當通過標準輸入,腳本或者交互提示中讀取數(shù)據(jù)時,模塊的__name__將取值為'__main__'。(來源)

__name__與__doc__,__package__和其他屬性一起存儲在模塊的全局命名空間。更多關于屬性的信息可參考Python數(shù)據(jù)模型文檔,特別是關于模塊和包的信息,請參閱Python Import文檔。

導入模塊或解釋器

接下來是Python解釋器執(zhí)行代碼的第二種方式:導入。在開發(fā)模塊或腳本時,可以使用import關鍵字導入他人已經構建的模塊。

在導入過程中,Python執(zhí)行指定模塊中定義的語句(但僅在第一次導入模塊時)。要演示導入execution_methods.py文件的結果,需要啟動Python解釋器,然后導入execution_methods.py文件:

在此代碼輸出中,Python解釋器執(zhí)行了三次print()函數(shù)調用。前兩行由于沒有變量,在輸出方面與在命令行上作為腳本執(zhí)行時完全相同。但是第三個輸出存在差異。

當Python解釋器導入代碼時,__name__的值與要導入的模塊的名稱相同。您可以通過第三行的輸出了解這一點。__name__的值為'execution_methods',是Python導入的.py文件。

注意如果您在沒有退出Python時再次導入模塊,將不會有輸出。

注意:更多關于導入在Python中如何工作的內容請參考官方文檔和Python中的絕對和相對導入。

Main函數(shù)的最佳實踐

既然您已經了解兩種執(zhí)行方式上的差異,那么掌握一些最佳實踐方案還是很有用的。它們將適用于編寫作為腳本運行的代碼或者在另一個模塊導入的代碼。

如下是四種實踐方式:

將大部分代碼放入函數(shù)或類中

請記住,Python解釋器在導入模塊時會執(zhí)行模塊中的所有代碼。有時如果想要實現(xiàn)用戶可控的代碼,會導致一些副作用,例如:

在這種情況下,想要實現(xiàn)用戶控制觸發(fā)此代碼的執(zhí)行,而不是讓Python解釋器在導入模塊時執(zhí)行代碼。

因此,最佳方法是將大部分代碼包含在函數(shù)或類中。這是因為當Python解釋器遇到def或class關鍵字時,它只存儲這些定義供以后使用,并且在用戶通知之前不會實際執(zhí)行。

將如下代碼保存在best_practices.py以證明這個想法:

在此代碼中,首先從time模塊中導入sleep()。

在這個示例中,參數(shù)以秒的形式傳入sleep()函數(shù)中,解釋器將暫停一段時間再運行。隨后,使用print()函數(shù)打印關于代碼描述的語句。

之后,定義一個process_data()函數(shù),執(zhí)行如下五項操作:

在命令行中執(zhí)行

當你將此文件作為腳本用命令行執(zhí)行時會發(fā)生什么呢?

Python解釋器將執(zhí)行函數(shù)定義之外的from time import sleep和print(),之后將創(chuàng)建函數(shù)process_data()。然后,腳本將退出而不做任何進一步的操作,因為腳本沒有任何執(zhí)行process_data()的代碼。

如下是這段腳本的執(zhí)行結果:

我們在這里看到的輸出是第一個print()的結果。注意,從time導入和定義process_data()函數(shù)不產生結果。具體來說,調用定義在process_data()內部的print()不會打印結果。

導入模塊或解釋器執(zhí)行

在會話(或其他模塊)中導入此文件時,Python解釋器將執(zhí)行相同的步驟。

Python解釋器導入文件后,您可以使用已導入模塊中定義的任何變量,類或函數(shù)。為了證明這一點,我們將使用可交互的Python解釋器。啟動解釋器,然后鍵入import best_practices:

導入best_practices.py后唯一的輸出來自process_data()函數(shù)外定義的print()。導入模塊或解釋器執(zhí)行與基于命令行執(zhí)行類似。

使用__name__控制代碼的執(zhí)行

如何實現(xiàn)基于命令行而不使用Python解釋器導入文件來執(zhí)行呢?

您可以使用__name__來決定執(zhí)行上下文,并且當__name__等于"__main__"時才執(zhí)行process_data()。在best_practices.py文件中添加如下代碼:

這段代碼添加了一個條件語句來檢驗__name__的值。當值為"__main__"時,條件為True。記住當__name__變量的特殊值為"__main__"時意味著Python解釋器會執(zhí)行腳本而不是將其導入。

條件語塊內添加了四行代碼(第12,13,14和15行):

現(xiàn)在,在命令行中運行best_practices.py,并觀察輸出的變化:

首先,輸出顯示了process_data()函數(shù)外的print()的調用結果。

之后,data的值被打印。因為當Python解釋器將文件作為腳本執(zhí)行時,變量__name__具有值"__main__",因此條件語句被計算為True。

接下來,腳本將調用process_data()并傳入data進行修改。當process_data執(zhí)行時,將輸出一些狀態(tài)信息。最終,將輸出modified_data的值。

現(xiàn)在您可以驗證從解釋器(或其他模塊)導入best_practices.py后發(fā)生的事情了。如下示例演示了這種情況:

注意,當前結果與將條件語句添加到文件末尾之前相同。因為此時__name__變量的值為"best_practices",因此條件語句結果為False,Python將不執(zhí)行process_data()。

創(chuàng)建名為main()的函數(shù)來包含要運行的代碼

現(xiàn)在,您可以編寫作為腳本由從命令行執(zhí)行并導入且沒有副作用的Python代碼。接下來,您將學習如何編寫代碼并使其他程序員能輕松地理解其含義。

許多語言,如C,C++,Java以及其他的一些語言,都會定義一個叫做main()的函數(shù),當編譯程序時,操作系統(tǒng)會自動調用該函數(shù)。此函數(shù)通常被稱為入口點(entry point),因為它是程序進入執(zhí)行的起始位置。

相比之下,Python沒有一個特殊的函數(shù)作為腳本的入口點。實際上在Python中可以將入口點定義成任何名稱。

盡管Python不要求將函數(shù)命名為main(),但是最佳的做法是將入口點函數(shù)命名為main()。這樣方便其他程序員定位程序的起點。

此外,main()函數(shù)應該包含Python解釋器執(zhí)行文件時要運行的任何代碼。這比將代碼放入條件語塊中更好,因為用戶可以在導入模塊時重復使用main()函數(shù)。

修改best_practices.py文件如下所示:

在這個示例中,定義了一個main()函數(shù),它包含了上面的條件語句塊。之后修改條件語塊執(zhí)行main()。如果您將此代碼作為腳本運行或導入,將獲得與上一節(jié)相同的輸出。

在main()中調用其他函數(shù)

另一種常見的實現(xiàn)方式是在main()中調用其他函數(shù),而不是直接將代碼寫入main()。這樣做的好處在于可以實現(xiàn)將幾個獨立運行的子任務整合。

例如,某個腳本有如下功能:

如果在單獨的函數(shù)中各自實現(xiàn)這些子任務,您(或其他用戶)可以很容易地實現(xiàn)代碼重用。之后您可以在main()函數(shù)中創(chuàng)建默認的工作流。

您可以根據(jù)自己的情況選擇是否使用此方案。將任務拆分為多個函數(shù)會使重用更容易,但會增加他人理解代碼的難度。

修改best_practices.py文件如下所示:

在此示例代碼中,文件的前10行具有與之前相同的內容。第12行的第二個函數(shù)創(chuàng)建并返回一些示例數(shù)據(jù),第17行的第三個函數(shù)模擬將修改后的數(shù)據(jù)寫入數(shù)據(jù)庫。

第21行定義了main()函數(shù)。在此示例中,對main()做出修改,它將調用數(shù)據(jù)讀取,數(shù)據(jù)處理以及數(shù)據(jù)寫入等功能。

首先,從read_data_from_web()中創(chuàng)建data。將data作為參數(shù)傳入process_data(),之后將返回modified_data。最后,將modified_data傳入write_data_to_database()。

腳本的最后兩行是條件語塊用于驗證__name__,并且如果if語句為True,則執(zhí)行main()。

在命令行中運行如下所示:

根據(jù)執(zhí)行結果,Python解釋器在執(zhí)行main()函數(shù)時,將依次執(zhí)行read_data_from_web(),process_data()以及write_data_to_database()。當然,您也可以導入best_practices.py文件并重用process_data()作為不同的數(shù)據(jù)輸入源,如下所示:

在此示例中,導入了best_practices并且將其簡寫為bp。

導入過程會導致Python解釋器執(zhí)行best_practices.py的全部代碼,因此輸出顯示解釋文件用途的信息。

然后,從文件中存儲數(shù)據(jù)而不是從Web中讀取數(shù)據(jù)。之后,可以重用best_practices.py文件中的process_data()和write_data_to_database()函數(shù)。在此情況下,可以利用代碼重寫來取代在main()函數(shù)中實現(xiàn)全部的代碼邏輯。

實踐總結

以下是Python中main()函數(shù)的四個關鍵最佳實踐:

結論

恭喜!您現(xiàn)在已經了解如何創(chuàng)建Python main()函數(shù)了。

本文介紹了如下內容:

現(xiàn)在,您可以開始編寫一些非常棒的關于Python main()函數(shù)代碼啦!

用python編寫程序建立函數(shù)?

每位數(shù)字都如上5.是什么意思?

是加5吧

我把解密函數(shù)都給寫出來了

用python定義一個函數(shù)

使用關鍵詞 def 聲明這是一個函數(shù)

1def 函數(shù)名 (參數(shù)):

2 語句塊

參數(shù)可以沒有,也可以有多個,用逗號隔開,第一行稱為函數(shù)頭,結尾一定要加冒號,代表開始進入函數(shù)體的執(zhí)行。

語句塊也就是函數(shù)體,是關于這個函數(shù)要實現(xiàn)的功能的語句,語句要有返回值即return語句,如果沒有return語句,就代表return none.

網站題目:python創(chuàng)建獨立函數(shù) Python創(chuàng)建自定義函數(shù)
分享網址:http://www.chinadenli.net/article24/doojdce.html

成都網站建設公司_創(chuàng)新互聯(lián),為您提供App設計網站策劃做網站網站導航外貿網站建設小程序開發(fā)

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

網站托管運營