python3import
⑴ python import 和 from XX import * 的區別
一、作用不同
1、import:可以修改模塊對象的屬性,無論屬性是不是可變類型。
2、from XX import * :只能修改模塊對象的屬性是可變類型的,不可變類型不能修改。
二、用法不同
1、import:import xx,以import time和創建的一個python類為例:調用time模塊中的方法時,需要在前加上time.;而調用類中的方法時,也需要在前面加上實例名aa。
2、from XX import * :使用這種方式,則可以直接調用。
三、特點不同
1、import:所有導入的類使用時需加上模塊名的限定。
2、from XX import * :所有導入的類不需要添加限定。
⑵ 為什麼要導入import+api和import+math
import 關鍵字用於在 Python 中導入模塊,以便使用模塊中定義的函數、類和變數等。
api 不是 Python 中內置的模塊,它可能是某個自定義模塊或者第三方模塊的名稱。同樣,math 是 Python 內置的標准庫之一,提供了許多數學相關的函數。
在使用某個模塊中定義的函數、類和變數時,需要先導入該模塊。因此,在 Python 代碼中出現 import api 和 import math 的語句,意味著該代碼將會使用這兩個模塊中定義的函數、類和變數。導入模塊後,可以通過在前面加上模塊名的方式訪問其中的定義,如 api.some_function() 或 math.pi。
需要注意的是,不是每個 Python 程序都需要導入 api 或 math,而是只有當程序需要使用這些模塊中定義的內容時才需要導入。如果沒有導入相關的模塊,在調用模塊中的函數或變數時會出現 NameError 的錯誤。
⑶ Python的from import和import的區別
一、import和from import的區別:
import 只能導入模塊、子包、包, 而不能導入模塊中的類、函數、變數等
from import 可以導入模塊、子包、包、類、函數、變數以及在包的__init__.py中已經導入的名字
ps: 但是兩者都可以用as給導入的名字重命名
二、包導入的注意事項
不能在導入的路徑中使用已經導入過的名字, 比如 import numpy as np; import np.random as rn, 這會報錯, 說沒有找到名字叫np的model, 這其實就說明python尋找包路徑的時候, 是在文件系統中尋找, 而不包含當前命名空間中的名字, 即與當前的程序執行環境沒有關系的
導入一個包時, 則這個包可用的屬性都必須在__init__.py文件中定義, 這就是說如果一個包的__init__.py文件是空的, 則即使包里邊有幾個模塊文件, 也無法通過這個包名去使用, 比如pkg下有a.py和b.py兩個文件, 但是__init__.py中沒有導入模塊a和b,則import pkg as pg 後, 無法使用pg.a和pg.b,這個說明包內的模塊和子包不會自動加入到包的名字空間里邊, 需要手動通過__init__.py指定後才會加入。這一點上模塊和包不太一樣, 模塊中的符號是自動導入的,因此可以直接通過模塊名來調用
第2點只是說無法通過pg這個名字來使用模塊a和b, 但是我們可以手動導入a和b的, 用import pkg.a as a和from pkgs import a as a都是可以的
導入一個長串的路徑時, 則這個路徑上的所有包的__init__.py都會被執行, 並且包的對應子包也會被加入到包的屬性中去, 比如我們現在有這樣一個包結構: pkgs下有兩個子包pkga和pkgb, 且pkgs/init.py是空文件,則import pkgs語句是無法使用pkgs.pkga這樣的句子的, 但是如果我們後續又使用了一個import語句: import pkgs.pkga.a as a,則此時pkgs的名字空間里會加入pkga這個屬性,也就是可以使用pkgs.pkga了
ps: from pkgs.pkga.a import fun_a這種長路徑形式, 雖然會執行pkgs和pkga的__init__.py以及模塊a的代碼,
⑷ Python3基礎
默認情況下,Python 3 源碼文件以 UTF-8 編碼,所有字元串都是 unicode 字元串。 當然你也可以為源碼文件指定不同的編碼:
在 Python 3 中,非 ASCII 標識符也是允許的了。
保留字即關鍵字,我們不能把它們用作任何標識符名稱。Python 的標准庫提供了一個 keyword 模塊,可以輸出當前版本的所有關鍵字:
Python中單行注釋以 # 開頭,實例如下:
執行以上代碼,輸出結果為:
多行注釋可以用多個 # 號,還有 ''' 和 """:
執行以上代碼,輸出結果為:
python最具特色的就是使用縮進來表示代碼塊,不需要使用大括弧 {} 。
縮進的空格數是可變的,但是同一個代碼塊的語句必須包含相同的縮進空格數。實例如下:
以下代碼最後一行語句縮進數的空格數不一致,會導致運行錯誤:
以上程序由於縮進不一致,執行後會出現類似以下錯誤:
Python 通常是一行寫完一條語句,但如果語句很長,我們可以使用反斜杠()來實現多行語句,例如:
在 [], {}, 或 () 中的多行語句,不需要使用反斜杠(),例如:
python中數字有四種類型:整數、布爾型、浮點數和復數。
實例
輸出結果為:
函數之間或類的方法之間用空行分隔,表示一段新的代碼的開始。類和函數入口之間也用一行空行分隔,以突出函數入口的開始。
空行與代碼縮進不同,空行並不是Python語法的一部分。書寫時不插入空行,Python解釋器運行也不會出錯。但是空行的作用在於分隔兩段不同功能或含義的代碼,便於日後代碼的維護或重構。
記住: 空行也是程序代碼的一部分。
執行下面的程序在按回車鍵後就會等待用戶輸入:
以上代碼中 ," "在結果輸出前會輸出兩個新的空行。一旦用戶按下 enter 鍵時,程序將退出。
Python可以在同一行中使用多條語句,語句之間使用分號(;)分割,以下是一個簡單的實例:
執行以上代碼,輸出結果為:
縮進相同的一組語句構成一個代碼塊,我們稱之代碼組。
像if、while、def和class這樣的復合語句,首行以關鍵字開始,以冒號( : )結束,該行之後的一行或多行代碼構成代碼組。
我們將首行及後面的代碼組稱為一個子句(clause)。
如下實例:
print 默認輸出是換行的,如果要實現不換行需要在變數末尾加上 end="" :
以上實例執行結果為:
在 python 用 import 或者 from...import 來導入相應的模塊。
將整個模塊(somemole)導入,格式為: import somemole
從某個模塊中導入某個函數,格式為: from somemole import somefunction
從某個模塊中導入多個函數,格式為: from somemole import firstfunc, secondfunc, thirdfunc
將某個模塊中的全部函數導入,格式為: from somemole import *
import sys print ( ' ================Python import mode========================== ' ) ; print ( ' 命令行參數為: ' ) for i in sys . argv : print ( i ) print ( ' python 路徑為 ' , sys . path )
from sys import argv , path # 導入特定的成員 print ( ' ================python from import=================================== ' ) print ( ' path: ' , path ) # 因為已經導入path成員,所以此處引用時不需要加sys.path
很多程序可以執行一些操作來查看一些基本信息,Python可以使用-h參數查看各參數幫助信息:
⑸ python3和python2區別有什麼
python2版本和python3版本的區別,兩者對比如下
核心類差異
1. Python3 對 Unicode 字元的原生支持。
Python2 中使用 ASCII 碼作為默認編碼方式導致 string 有兩種類型 str 和 unicode,Python3 只
支持 unicode 的 string。Python2 和 Python3 位元組和字元對應關系為:
2. Python3 採用的是絕對路徑的方式進行 import
Python2 中相對路徑的 import 會導致標准庫導入變得困難(想像一下,同一目錄下有 file.py,如
何同時導入這個文件和標准庫 file)。Python3 中這一點將被修改,如果還需要導入同一目錄的文件必
須使用絕對路徑,否則只能使用相關導入的方式來進行導入。
3. Python2 中存在老式類和新式類的區別,Python3 統一採用新式類。新式類聲明要求繼承 object,
必須用新式類應用多重繼承。
4. Python3 使用更加嚴格的縮進。Python2 的縮進機制中,1 個 tab 和 8 個 space 是等價的,所
以在縮進中可以同時允許 tab 和 space 在代碼中共存。這種等價機制會導致部分 IDE 使用存在問題。
Python3 中 1 個 tab 只能找另外一個 tab 替代,因此 tab 和 space 共存會導致報錯:TabError:
inconsistent use of tabs and spaces in indentation.
python學習網,免費的python學習網站,歡迎在線學習!
廢棄類差異
1. print 語句被 Python3 廢棄,統一使用 print 函數
2. exec 語句被 python3 廢棄,統一使用 exec 函數
3. execfile 語句被 Python3 廢棄,推薦使用 exec(open("./filename").read())
4. 不相等操作符"<>"被 Python3 廢棄,統一使用"!="
5. long 整數類型被 Python3 廢棄,統一使用 int
6. xrange 函數被 Python3 廢棄,統一使用 range,Python3 中 range 的機制也進行修改並提高
了大數據集生成效率
7. Python3 中這些方法再不再返回 list 對象:dictionary 關聯的 keys()、values()、items(),zip(),
map(),filter(),但是可以通過 list 強行轉換:
1. mydict={"a":1,"b":2,"c":3}
2. mydict.keys() #<built-in method keys of dict object at 0x000000000040B4C8>
3. list(mydict.keys()) #['a', 'c', 'b']
8. 迭代器 iterator 的 next()函數被 Python3 廢棄,統一使用 next(iterator)
9. raw_input 函數被 Python3 廢棄,統一使用 input 函數
10. 字典變數的 has_key 函數被 Python 廢棄,統一使用 in 關鍵詞
11. file 函數被 Python3 廢棄,統一使用 open 來處理文件,可以通過 io.IOBase 檢查文件類型
12. apply 函數被 Python3 廢棄
13. 異常 StandardError 被 Python3 廢棄,統一使用 Exception
修改類差異
1. 浮點數除法操作符「/」和「//」的區別
「 / 」:
Python2:若為兩個整形數進行運算,結果為整形,但若兩個數中有一個為浮點數,則結果為
浮點數;
Python3:為真除法,運算結果不再根據參加運算的數的類型。
「//」:
Python2:返回小於除法運算結果的最大整數;從類型上講,與"/"運算符返回類型邏輯一致。
Python3:和 Python2 運算結果一樣。
2. 異常拋出和捕捉機制區別
Python2
1. raise IOError, "file error" #拋出異常
2. except NameError, err: #捕捉異常
Python3
1. raise IOError("file error") #拋出異常
2. except NameError as err: #捕捉異常
3. for 循環中變數值區別
Python2,for 循環會修改外部相同名稱變數的值
1. i = 1
2. print ('comprehension: ', [i for i in range(5)])
3. print ('after: i =', i ) #i=4
Python3,for 循環不會修改外部相同名稱變數的值
1. i = 1
2. print ('comprehension: ', [i for i in range(5)])
3. print ('after: i =', i ) #i=1
4. round 函數返回值區別
Python2,round 函數返回 float 類型值
1. isinstance(round(15.5),int) #True
Python3,round 函數返回 int 類型值
1. isinstance(round(15.5),float) #True
5. 比較操作符區別
Python2 中任意兩個對象都可以比較
1. 11 < 'test' #True
Python3 中只有同一數據類型的對象可以比較
1. 11 < 'test' # TypeError: unorderable types: int() < str()
⑹ python中import是什麼意思
Python中的import語句是用來調用模塊的。
一、mole
通常模塊為一個文件,直接使用import來導入就好了。可以作為mole的文件類型有"py"、".pyo"、"pyc"、"pyd"、"so"、"dll"。
二、package
通常包總是一個目錄,可以使用import導入包,或者from + import來導入包中的部分模塊。
包目錄下為首的一個文件便是_init__py。然後是一些模塊文件和子目錄,假如子目錄中也有_init__py那麼它就是這個包的子包了。
優點
簡單:Python是一種代表簡單主義思想的語言。閱讀一個良好的Python程序就感覺像是在讀英語一樣。它使你能夠專注於解決問題而不是去搞明白語言本身。
易學:Python極其容易上手,因為Python有極其簡單的說明文檔。
易讀、易維護:風格清晰劃一、強制縮進。
速度快:Python的底層是用C語言寫的,很多標准庫和第三方庫也都是用C寫的,運行速度非常快。
免費、開源:Python是FLOSS(自由/開放源碼軟體)之一。
使用者可以自由地發布這個軟體的拷貝、閱讀它的源代碼、對它做改動、把它的一部分用於新的自由軟體中。FLOSS是基於一個團體分享知識的概念。
⑺ import在python中的意思
python中的"import"表示導入的意思。
python中的"import"一般用於導入一些函數庫,以便於在下面的程序中調用導入的函數庫裡面的函數,類似於c++編程語言裡面的include。通常模塊為一個文件,直接使用import來導入就好了。可以作為mole的文件類型有".py"、".pyo"、".pyc"、".pyd"、".so"、".dll"。
import語句的用途和注意事項
1、通過一定的方式,搜尋要導入的文件。
2、如果需要,就編譯這個文件。
3、運行這個文件。
但是需要注意的是所有這三個步驟,都只是文件再第一次導入的時候才會執行,如果文件已經導入了,後續的import會直接從內存裡面找到已經載入的模塊使用,換句話說此時import不會執行上面的3個步驟。