python中nls函數(shù) python里的ln函數(shù)

關(guān)于python中幾個函數(shù)的用法

函數(shù)調(diào)用

10余年的互助網(wǎng)站建設(shè)經(jīng)驗,針對設(shè)計、前端、開發(fā)、售后、文案、推廣等六對一服務(wù),響應(yīng)快,48小時及時工作處理。成都全網(wǎng)營銷推廣的優(yōu)勢是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動調(diào)整互助建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計,從而大程度地提升瀏覽體驗。成都創(chuàng)新互聯(lián)從事“互助網(wǎng)站設(shè)計”,“互助網(wǎng)站推廣”以來,每個客戶項目都認真落實執(zhí)行。

myFun()

# 函數(shù)的參數(shù)

# 單個參數(shù)

# 場景

# 需要動態(tài)的調(diào)整函數(shù)體中某一個處理信息

# 則可以, 以參數(shù)的形式接收到相關(guān)數(shù)據(jù)

# 定義

# def 函數(shù)名(參數(shù)名稱):

# 函數(shù)體

# 函數(shù)體中, 可以直接以變量的方式使用該參數(shù)

# 函數(shù)的調(diào)用

# 函數(shù)名(參數(shù)值)

# 形參和實參的概念

# 上述函數(shù)定義中, "參數(shù)名稱"即為形參;

# 在調(diào)用函數(shù)的時候, 傳遞的真實數(shù)據(jù), 即為實參

# 多個參數(shù)

# 場景

# 需要動態(tài)的調(diào)整函數(shù)體中多個處理信息時

# 則可以以 逗號 做分割, 接收多個參數(shù)

# 定義

# def 函數(shù)名(參數(shù)名稱1, 參數(shù)名稱2):

# 函數(shù)體

# 函數(shù)體中, 可以直接以變量的方式使用所有參數(shù)

# 調(diào)用

# 方式1

# 函數(shù)名(參數(shù)1, 參數(shù)2, 參數(shù)3...)

# 形參和實參一一對應(yīng)

# 方式2

# 函數(shù)名(參數(shù)名稱1=參數(shù)1, 參數(shù)名稱n = 參數(shù)n...)

# 可以指明形參名稱

# 稱為"關(guān)鍵字參數(shù)"

# 不需要嚴格按照順序

# 不定長參數(shù)

# 場景

# 如果函數(shù)體中, 需要處理的數(shù)據(jù), 不確定長度

# 則可以以不定長參數(shù)的方式接收數(shù)據(jù)

# 方式1

# 定義

# def 函數(shù)名(*args):

# 元組

# 函數(shù)體

# 函數(shù)體中, 可以直接以元組變量的方式使用該參數(shù)

# 使用

# 函數(shù)名(參數(shù)1, 參數(shù)2, 參數(shù)3...)

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

目錄

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

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

本文結(jié)束時,您將了解以下內(nèi)容:

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

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

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

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

Python中的執(zhí)行模式

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

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

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

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

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

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

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

基于命令行執(zhí)行

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

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

命令行環(huán)境

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

導入模塊或解釋器

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

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

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

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

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

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

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

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

如下是四種實踐方式:

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

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

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

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

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

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

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

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

在命令行中執(zhí)行

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

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

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

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

導入模塊或解釋器執(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í)行腳本而不是將其導入。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

第21行定義了main()函數(shù)。在此示例中,對main()做出修改,它將調(diào)用數(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í)行結(jié)果,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)全部的代碼邏輯。

實踐總結(jié)

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

結(jié)論

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

本文介紹了如下內(nèi)容:

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

Python中的input()、isinstance()函數(shù)如何使用

Python解釋器內(nèi)置了許多函數(shù),這意味著我們無需定義,始終可以它們。接下來和大家一起討論一個常用的內(nèi)建函數(shù)-input()和isinstance()。

input()

input()函數(shù)讀取用戶輸入,并轉(zhuǎn)換成字符串:

a?=?input()??#?將input()返回的值賦值給a

Python

a????????????#?查看a的值(為字符串'Python')

'Python'

input()函數(shù)可以提供一個參數(shù),用來提示用戶:

b?=?input('請輸入你最喜歡的水果:??')???#?給用戶必要的提示

請輸入你最喜歡的水果:??香蕉

b

'香蕉'

需要注意的是,input()函數(shù)返回的值總是字符串,當用戶輸入的是數(shù)字也是這樣,所以當使用它時一定要注意:

num?=?input('請輸入一個數(shù)字:?')

請輸入一個數(shù)字:?10

num?+?9????????????????????????????#?試圖把num和數(shù)字相加

Traceback?(most?recent?call?last):

File?"",?line?1,?in

TypeError:?must?be?str,?not?int

num

'10'

type(num)???????????????????????????#?查看num的數(shù)字類型

class?'str'

isinstance()

isinstance()函數(shù)用于檢查對象是否為指定類(或者說數(shù)據(jù)類型)的實例。isintance()的第一個參數(shù)為一個對象,第二個參數(shù)為要檢查的數(shù)據(jù)類型。

舉個例子,比如有有一個變量,你想檢查它是否為數(shù)字類型,可以使用isinstance()函數(shù):

score?=?90

result?=?isinstance(score,?int)

if?result:

...?????print('score為int數(shù)據(jù)類型')

...?else:

...?????print('score不為int數(shù)據(jù)類型')

...

score為int數(shù)據(jù)類型

除了能檢查是否為int類型外,isintance()還能檢查其他數(shù)據(jù)類型(當然了),下面是一個綜合示例:

pi?=?3.14

name?=?'Wang'

complex_num?=?1?+?2j

isinstance(pi,?float)??????????????#?3.14為浮點數(shù)類型

True

isinstance(name,?str)??????????????#?'Wang'為字符串類型

True

isinstance(complex_num,?complex)???#??1?+?2j為復數(shù)

True

isinstance()還可以驗證某個對象是否為自定義的類型:

class?Developer:?????????????????????????????#?定義一個叫做Developer的類

...

...?????def?__init__(self,?name):????????????????#?__init__方法中,需要輸入名字

...?????????self.name?=?name

...?????def?display(self):???????????????????????#?定義了display()方法

...?????????print("Developer:",?self.name,?"-")

...

class?PythonDeveloper(Developer):????????????#?PythonDeveloper類,繼承了Developer類

...

...?????def?__init__(self,?name,?language):

...?????????self.name?=?name

...?????????self.language?=?language

...

...?????def?display(self):????????????????????????#?覆蓋了父類的display方法

...?????????print("Python?Developer:",?self.name,?"language:",?self.language,?"-")

...

dev?=?Developer('Zhang')?????????????????????#?創(chuàng)建一個Developer對象

dev.display()????????????????????????????????#?調(diào)用display()方法,以查看該對象

Developer:?Zhang?-

isinstance(dev,?Developer)???????????????????#?判斷dev是否為Developer類,答案是肯定的

True

isinstance(dev,?PythonDeveloper)?????????????#?判斷dev是否為PythonDeveloper類,當然不是

False

python_dev?=?PythonDeveloper('Liu',?'Python')??#?創(chuàng)建一個PythonDeveloper對象,注意PythonDeveloper是Developer的子類

python_dev.display()??????????????????????????#?調(diào)用display方法

Python?Developer:?Liu?language:?Python?-

isinstance(python_dev,?Developer)?????????????#?判斷python_dev是否為Developer類,答案是肯定的

True

isinstance(python_dev,?PythonDeveloper)??????#?判斷python是否為PythonDeveloper類,答案也是肯定的

True

關(guān)于Python的基礎(chǔ)問題可以看下這個網(wǎng)頁的視頻教程,網(wǎng)頁鏈接,希望我的回答能幫到你。

python 中的int函數(shù)怎么用

int()是Python的一個內(nèi)部函數(shù)

Python系統(tǒng)幫助里面是這么說的

[python] view plain copy

help(int)

Help?on?class?int?in?module?__builtin__:

class?int(object)

|??int(x[,?base])?-?integer

|

|??Convert?a?string?or?number?to?an?integer,?if?possible.??A?floating?point

|??argument?will?be?truncated?towards?zero?(this?does?not?include?a?string

|??representation?of?a?floating?point?number!)??When?converting?a?string,?use

|??the?optional?base.??It?is?an?error?to?supply?a?base?when?converting?a

|??non-string.??If?base?is?zero,?the?proper?base?is?guessed?based?on?the

|??string?content.??If?the?argument?is?outside?the?integer?range?a

|??long?object?will?be?returned?instead.

[python] view plain copy

int(12.0)

12

int()函數(shù)可以將一個數(shù)轉(zhuǎn)化為整數(shù)

[python] view plain copy

int('12',16)

18

這里有兩個地方要注意:1)12要以字符串的形式進行輸入,如果是帶參數(shù)base的話

2)這里并不是將12轉(zhuǎn)換為16進制的數(shù),而是說12就是一個16進制的數(shù),int()函數(shù)將其用十進制數(shù)表示,如下

[python] view plain copy

int('0xa',16)

10

int('10',8)

8?

python里面的函數(shù)是什么意思?

1、Python中的函數(shù)是什么意思?

如果你需要實現(xiàn)一個功能,那么你需要用代碼來實現(xiàn)。

那么Python中為你設(shè)置了一些固定功能的代碼,實現(xiàn)一個功能的這些代碼就是一個函數(shù)。

簡而言之,函數(shù)就是實現(xiàn)特有的功能,你可以直接調(diào)用的內(nèi)建函數(shù)。

2、函數(shù)舉例

Python內(nèi)置了許多函數(shù),我們可以直接調(diào)用。

比如:abs函數(shù),是用來求絕對值的。

如下圖所示,a就是輸入,b就是經(jīng)過函數(shù)處理后得到的輸出。

具體如何求絕對值?我們不管,abs幫我們做好了,我們只要把他需要的值給他就行了

本文標題:python中nls函數(shù) python里的ln函數(shù)
文章轉(zhuǎn)載:http://muchs.cn/article14/hjdgge.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站設(shè)計、外貿(mào)網(wǎng)站建設(shè)、標簽優(yōu)化、網(wǎng)站導航搜索引擎優(yōu)化、企業(yè)網(wǎng)站制作

廣告

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

外貿(mào)網(wǎng)站制作