python中的"import"表示導(dǎo)入的意思。
創(chuàng)新互聯(lián)建站10多年成都定制網(wǎng)頁(yè)設(shè)計(jì)服務(wù);為您提供網(wǎng)站建設(shè),網(wǎng)站制作,網(wǎng)頁(yè)設(shè)計(jì)及高端網(wǎng)站定制服務(wù),成都定制網(wǎng)頁(yè)設(shè)計(jì)及推廣,對(duì)酒樓設(shè)計(jì)等多個(gè)領(lǐng)域擁有豐富的網(wǎng)站營(yíng)銷經(jīng)驗(yàn)的網(wǎng)站建設(shè)公司。
python中的"import"一般用于導(dǎo)入一些函數(shù)庫(kù),以便于在下面的程序中調(diào)用導(dǎo)入的函數(shù)庫(kù)里面的函數(shù),類似于c++編程語(yǔ)言里面的include。通常模塊為一個(gè)文件,直接使用import來(lái)導(dǎo)入就好了??梢宰鳛閙odule的文件類型有".py"、".pyo"、".pyc"、".pyd"、".so"、".dll"。
import語(yǔ)句的用途和注意事項(xiàng)
1、通過(guò)一定的方式,搜尋要導(dǎo)入的文件。
2、如果需要,就編譯這個(gè)文件。
3、運(yùn)行這個(gè)文件。
但是需要注意的是所有這三個(gè)步驟,都只是文件再第一次導(dǎo)入的時(shí)候才會(huì)執(zhí)行,如果文件已經(jīng)導(dǎo)入了,后續(xù)的import會(huì)直接從內(nèi)存里面找到已經(jīng)加載的模塊使用,換句話說(shuō)此時(shí)import不會(huì)執(zhí)行上面的3個(gè)步驟。
(1)主程序main.py與模塊程序mod1.py在同一目錄下。
--src
|--mod1.py
|--main.py
直接在main.py中導(dǎo)入模塊mod1.py,即 import mod1 或 from mod1 import *
(2)主程序main.py所在目錄是模塊程序mod.py所在目錄的父目錄。
--src
|--mod1.py
|--main.py
---mod2
?|--mod2.py
先需要在mod2文件夾中建立空文件__init__.py
然后在main.py中導(dǎo)入模塊mod2.py,即 import mod2.mod2 或 from mod2.mod2 import *
(3)主程序main.py導(dǎo)入上層目錄中的模塊或其他目錄(平級(jí))下的模塊。
--src
|--mod1.py
---mod2
?|--mod2.py
---sub
?|--main.py
先需要在mod2文件夾中建立空文件__init__.py,而src文件夾下不需要建立
然后進(jìn)入主程序main.py所在的路徑,執(zhí)行python main.py
在main.py中導(dǎo)入模塊mod2.py,即 import mod2.mod2 或 from mod2.mod2 import *
執(zhí)行前在main.py中加入:
import sys
sys.path.append("..")
import mod1
import mod2.mod2
1.并非只能訪問(wèn)文本文件
open可以訪問(wèn)任何形式的文件,在訪問(wèn)非文本格式文件(二進(jìn)制文件)的時(shí)候,訪問(wèn)模式通常加上‘b’(即二進(jìn)制模式:‘rb’或‘wb’),但并不必須,依情況而定
2.路徑是填寫在前面的filename參數(shù)處的
如你的例子,若要只讀這個(gè)文件,則是:
open('D:\\123.txt', 'r')
(由于\是轉(zhuǎn)義符,所以要將他再轉(zhuǎn)義,才能得到\符號(hào)本身)
若要寫入,則是:
open('D:\\123.txt', 'w')
以此類推
如果是不加路徑,只有一個(gè)文件名:
open('123.txt', 'r')
則會(huì)在python運(yùn)行的當(dāng)前目錄下尋找該文件名的文件
另:讀模式(r)必須保證文件存在,寫模式(w)至少要保證文件所在目錄存在(文件本身可以不存在)
如果不滿足,則系統(tǒng)會(huì)拋出一個(gè)IOError
是指在當(dāng)前目錄,相對(duì)路徑下import某個(gè)模塊。 import 非常規(guī)的常見(jiàn)的用法有:
1、在sys.path里加入你要引用的目錄,甚至 ../的絕對(duì)目錄都可以。
2、absolute_import,可以按絕對(duì)路徑import某個(gè)模塊, 實(shí)際上這個(gè)東西好象不起作用。
至于from .XXX import yyy這種用法,在老的代碼里還是常見(jiàn)。其實(shí)沒(méi)有必要。因?yàn)閕mport 本身就有這個(gè)功能?;蛘呤怯酶庇^的方法importlib.import_module(module,parent)這樣不容易犯錯(cuò)誤。
Random的作用
Random使用之前需要使用Randomize語(yǔ)句進(jìn)行隨機(jī)數(shù)種子的初始化。RANDOM產(chǎn)生的是偽隨機(jī)數(shù)或者說(shuō)是用一種復(fù)雜的方法計(jì)算得到的序列值,因此每次運(yùn)算時(shí)需要一個(gè)不同的種子值。種子值不同,得到的序列值也不同。因此也就是真正的隨機(jī)數(shù)了。
RANDOM產(chǎn)生的是偽隨機(jī)數(shù)或者說(shuō)是用一種復(fù)雜的方法計(jì)算得到的序列值,因此每次運(yùn)算時(shí)需要一個(gè)不同的種子值。種子值不同,得到的序列值也不同。因此也就是真正的隨機(jī)數(shù)了。這也正是RANDOMIZE隨機(jī)初始化的作用。 VB里用 NEW RANDOM()來(lái)表示初始化。
python中模塊導(dǎo)入的方法:
方式一:使用 import 語(yǔ)句來(lái)引入模塊
直接使用關(guān)鍵詞import,后面跟具體的模塊名稱,就可以導(dǎo)入某一個(gè)模塊。同一個(gè)模塊不管執(zhí)行了多少次import,都只會(huì)被導(dǎo)入一次,以防止模塊被一遍又一遍的執(zhí)行。
方式二:使用from…import 語(yǔ)句來(lái)引入模塊
在使用import語(yǔ)句導(dǎo)入模塊時(shí)會(huì)將整個(gè)模塊引入進(jìn)來(lái),而使用from...import 語(yǔ)句則是從模塊中導(dǎo)入一個(gè)指定的部分到當(dāng)前命名空間中。如上面代碼中則只會(huì)導(dǎo)入pprint模塊中的pprint函數(shù),其他函數(shù)并不會(huì)導(dǎo)入。
方式三:使用from…import語(yǔ)句來(lái)引入模塊
在多數(shù)情況下,Python程序員都不會(huì)使用這個(gè)功能,因?yàn)樗诮忉屍髦幸肓艘唤M未知的名稱,而它們很可能會(huì)覆蓋一些你已經(jīng)定義過(guò)的東西。
注意通常情況下從一個(gè)模塊或者包內(nèi)調(diào)入 * 的做法是不太被接受的, 因?yàn)檫@通常會(huì)導(dǎo)致代碼的可讀性很差。不過(guò),在交互式編譯器中為了節(jié)省打字可以這么用。
模塊的好處
1、大大提高了代碼的可維護(hù)性。
2、代碼不必從零開(kāi)始,一個(gè)模塊編寫完畢之后,其他模塊可以直接調(diào)用,節(jié)約了工作時(shí)間。
3、避免函數(shù)名稱和變量名稱重復(fù),在不同的模塊中可以存在相同名字的函數(shù)名和變量名,但是盡量不要和系統(tǒng)內(nèi)置的模塊名稱重復(fù)。
通過(guò)標(biāo)準(zhǔn)的Python庫(kù)導(dǎo)入CSV文件:
Python提供了一個(gè)標(biāo)準(zhǔn)的類庫(kù)CSV文件。這個(gè)類庫(kù)中的reader()函數(shù)用來(lái)導(dǎo)入CSV文件。當(dāng)CSV文件被讀入后,可以利用這些數(shù)據(jù)生成一個(gè)NumPy數(shù)組,用來(lái)訓(xùn)練算法模型: