Python知識點示例

這篇文章主要介紹了Python知識點示例,具有一定借鑒價值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓小編帶著大家一起了解一下。

專業(yè)從事成都網(wǎng)站建設(shè)、網(wǎng)站制作,高端網(wǎng)站制作設(shè)計,小程序設(shè)計,網(wǎng)站推廣的成都做網(wǎng)站的公司。優(yōu)秀技術(shù)團隊竭力真誠服務(wù),采用H5網(wǎng)站設(shè)計+CSS3前端渲染技術(shù),響應式網(wǎng)站設(shè)計,讓網(wǎng)站在手機、平板、PC、微信下都能呈現(xiàn)。建站過程建立專項小組,與您實時在線互動,隨時提供解決方案,暢聊想法和感受。

13、Python標準庫

Python標準庫是隨Pthon附帶安裝的,包含了大量極其有用的模塊。

我們主要了解下sys和os就夠了。

13.1 sys模塊  

sys模塊主要是針對與Python解釋器相關(guān)的變量和方法,不是主機操作系統(tǒng)。

sys.argv    #獲取命令行參數(shù)列表,第一個元素是程序本身
sys.exit(n) #退出Python程序,exit(0)表示正常退出。當參數(shù)非0時,會引發(fā)一個SystemExit異常,可以在程序中捕獲該異常
sys.version #獲取Python解釋程器的版本信息
sys.maxsize #最大的Int值,64位平臺是2**63 - 1
sys.path    #返回模塊的搜索路徑,初始化時使用PYTHONPATH環(huán)境變量的值
sys.platform    #返回操作系統(tǒng)平臺名稱
sys.stdin   #輸入相關(guān)
sys.stdout  #輸出相關(guān)
sys.stderr  #錯誤相關(guān)
sys.exc_info()  #返回異常信息三元元組
sys.getdefaultencoding()    #獲取系統(tǒng)當前編碼,默認為utf-8
sys.setdefaultencoding()    #設(shè)置系統(tǒng)的默認編碼
sys.getfilesystemencoding() #獲取文件系統(tǒng)使用編碼方式,默認是utf-8
sys.modules #以字典的形式返回所有當前Python環(huán)境中已經(jīng)導入的模塊
sys.builtin_module_names    #返回一個列表,包含所有已經(jīng)編譯到Python解釋器里的模塊的名字
sys.copyright   #當前Python的版權(quán)信息
sys.flags   #命令行標識狀態(tài)信息列表。只讀。
sys.getrefcount(object) #返回對象的引用數(shù)量
sys.getrecursionlimit() #返回Python最大遞歸深度,默認1000
sys.getsizeof(object[, default])    #返回對象的大小
sys.getswitchinterval() #返回線程切換時間間隔,默認0.005秒
sys.setswitchinterval(interval) #設(shè)置線程切換的時間間隔,單位秒
sys.getwindowsversion() #返回當前windwos系統(tǒng)的版本信息
sys.hash_info   #返回Python默認的哈希方法的參數(shù)
sys.implementation  #當前正在運行的Python解釋器的具體實現(xiàn),比如CPython
sys.thread_info #當前線程信息復制代碼

上面是sys模塊所有語法,我們看看就夠了,了解下sys.argv和sys.path就足夠了

sys.argv是一個腳本執(zhí)行參數(shù)列表,列表的第一個元素是腳本名稱,從第二個元素開始才是真正的參數(shù)。

# test.py
import sys

for index, arg in enumerate(sys.argv):
    print("第%d個參數(shù)是: %s" % (index, arg))

#輸出
第0個參數(shù)是: test.py
第1個參數(shù)是: 1
第2個參數(shù)是: 2
第3個參數(shù)是: 3
第4個參數(shù)是: 4 
復制代碼

argv:獲取程序外部向程序傳遞的參數(shù)

#  script.py

import sys
print(sys.argv[0])
print(sys.argv[1])復制代碼

運行:

# python script.py argv1
sys.py
argv1復制代碼

sys.path

path是一個目錄列表,供Python從中查找模塊。在Python啟動時,sys.path根據(jù)內(nèi)建規(guī)則和PYTHONPATH變量進行初始化。sys.path的第一個元素通常是個空字符串,表示當前目錄。

>>> sys.path
['', 'C:\\Python36\\Lib\\idlelib', 'C:\\Python36\\python36.zip', 'C:\\Python36\\DLLs', 'C:\\Python36\\lib', 'C:\\Python36', 'C:\\Python36\\lib\\site-packages']復制代碼

sys.path本質(zhì)上是一個列表,可以進行append、insert、pop、remove等各種列表相關(guān)的操作,但通常都進行append操作,添加自己想要的查找路徑。

sys.stdin、sys.stdout、sys.stderr

  • stdin用于所有的交互式輸入(包括input()函數(shù))。
  • stdout用于print()的打印輸出或者input()函數(shù)的提示符。
  • stderr用于解釋器自己的提示信息和錯誤信息。

簡而言之,這三個屬性就是操作系統(tǒng)的標準輸入、輸出和錯誤流,它們返回的都是一個“文件類型”對象,支持read()、write()和flush()等操作。

>>> import sys
>>> s = sys.stdin.readline()        
i don't like python
>>> s
'i don't like python\n'
>>> sys.stdout.write(s)
i don't like python 
20復制代碼

python3中sys.stdin與input的區(qū)別:

input()方法和stdin()類似,不同的是input()括號內(nèi)可以直接填寫說明文字。

s = input('Please input something!')

print('Please input something!',)  # 逗號表示不換行
s = sys.stdin.readline()[:-1]  # -1 拋棄輸入流中的'\n' 換行符復制代碼

當我們print(obj)的時候,事實上是調(diào)用了sys.stdout.write(obj+'\n'),將內(nèi)容打印到控制臺(默認是顯示器),然后追加一個換行符。以下兩行等價:

sys.stdout.write('hello'+'\n') 
print('hello')復制代碼

13.2 os模塊  

該模塊包含普遍的操作系統(tǒng)功能

  • os.name字符串指示你正在使用的平臺。比如對于Windows,它是'nt',而對于Linux/Unix用戶,它是'posix'

  • os.getcwd()函數(shù)得到當前工作目錄,即當前Python腳本工作的目錄路徑

  • os.getenv()和os.putenv()函數(shù)分別用來讀取和設(shè)置環(huán)境變量

  • os.listdir()返回指定目錄下的所有文件和目錄名

  • os.remove()函數(shù)用來刪除一個文件

  • os.system()函數(shù)用來運行shell命令

  • os.linesep字符串給出當前平臺使用的行終止符。例如,Windows使用'\r\n',Linux使用'\n'而Mac使用'\r'

  • os.sep 操作系統(tǒng)特定的路徑分割符

  • os.path.split()函數(shù)返回一個路徑的目錄名和文件名

  • os.path.isfile()和os.path.isdir()函數(shù)分別檢驗給出的路徑是一個文件還是目錄

  • os.path.existe()函數(shù)用來檢驗給出的路徑是否真地存在

14、類中的特別方法

名稱說明
init(self,...)這個方法在新建對象恰好要被返回使用之前被調(diào)用。
del(self)恰好在對象要被刪除之前調(diào)用。
str(self)在我們對對象使用print語句或是使用str()的時候調(diào)用。
getitem(self,key)使用x[key]索引操作符的時候調(diào)用。
len(self)對序列對象使用內(nèi)建的len()函數(shù)的時候調(diào)用。

下面的類中定義了上表中的方法:

class Array:
    __list = []

    def __init__(self):
        print "constructor"

    def __del__(self):
        print "destructor"

    def __str__(self):
        return "this self-defined array class"

    def __getitem__(self, key):
        return self.__list[key]

    def __len__(self):
        return len(self.__list)

    def Add(self, value):
        self.__list.append(value)

    def Remove(self, index):
        del self.__list[index]

    def DisplayItems(self):
        print "show all items----"
        for item in self.__list:
            print item

arr = Array()   #constructor
print(arr)    #this self-defined array class
print(len(arr))   #0
arr.Add(1)
arr.Add(2)
arr.Add(3)
print(len(arr))   #3
print(arr[0])   #1
arr.DisplayItems()
#show all items----
#1
#2
#3
arr.Remove(1)
arr.DisplayItems()
#show all items----
#1
#3
#destructor復制代碼

15、列表推導式

通過列表綜合,可以從一個已有的列表導出一個新的列表。

list1 = [1, 2, 3, 4, 5]
list2 = [i*2 for i in list1 if i > 3]

print(list1)  #[1, 2, 3, 4, 5]
print(list2)  #[8, 10]復制代碼

16、 *和**args區(qū)別

當函數(shù)接收元組或字典形式的參數(shù)的時候,有一種特殊的方法,使用*和**前綴。

該方法在函數(shù)需要獲取可變數(shù)量的參數(shù)的時候特別有用。  

由于在args變量前有*前綴,所有多余的函數(shù)參數(shù)都會作為一個元組存儲在args中。如果使用的是**前綴,多余的參數(shù)則會被認為是一個字典的鍵/值對。

*args接受元組

**args接受字典

def powersum(power, *args):
    total = 0
    for i in args:
        total += pow(i, power)
    return total

print (powersum(2, 1, 2, 3))  

#14 1^2+2^2+3^2 = 14


def displaydic(**args):
    for key,value in args.items():
        print( "key:%s;value:%s" % (key, value))

displaydic(a="one", b="two", c="three")


#key:a;value:one
#key:c;value:three
#key:b;value:two復制代碼

17、lambda函數(shù)

lambda語句被用來創(chuàng)建新的函數(shù)對象,并在運行時返回它們。lambda需要一個參數(shù),后面僅跟單個表達式作為函數(shù)體,而表達式的值被這個

新建的函數(shù)返回。 注意,print語句也不能用在lambda形式中,只能使用表達式。

func = lambda s: s * 3
print(func("Runsen "))  # Runsen Runsen Runsen


func2 = lambda a, b: a * b

print(func2(2, 3))  #6復制代碼

18、exec/eval

exec語句用來執(zhí)行儲存在字符串或文件中的Python語句

eval語句用來計算存儲在字符串中的有效Python表達式。

cmd = "print 'hello world'"
exec cmd   #hello world

expression = "10 * 2 + 5"
print(eval(expression))    #25復制代碼

exec還批量創(chuàng)建變量,這個大家可能忽視

for i in range(8):
    exec('v' + str(i) + ' = ' + str(i))
    print('v' + str(i) + ':', eval('v' + str(i)))
    
v0: 0
v1: 1
v2: 2
v3: 3
v4: 4
v5: 5
v6: 6
v7: 7    
復制代碼

19、assert

assert語句用來斷言某個條件是真的,并且在它非真的時候引發(fā)一個錯誤--AssertionError。

>>> assert True     # 條件為 true 正常執(zhí)行
>>> assert False    # 條件為 false 觸發(fā)異常
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AssertionError復制代碼

assert一般和try except連用

flag = True

assert flag == True

try:
    assert flag == False
except AssertionError:
    print ("failed")
else:
    print ("pass")
    
    
failed復制代碼

20、repr

repr函數(shù)用來取得對象的規(guī)范字符串表示。

注意,在大多數(shù)時候有eval(repr(object)) == object。

可以通過定義類的__repr__方法來控制對象在被repr函數(shù)調(diào)用的時候返回的內(nèi)容。

arr = [1, 2, 3]
print(arr)    #[1, 2, 3]
print(repr(arr))    #[1, 2, 3]復制代碼

其實Python就是這么簡單,學Python就是看官方文檔,看demo,代碼跟做英語閱讀似的,多看官方文檔,然后調(diào)下第三方庫,實現(xiàn)需求就行了。

感謝你能夠認真閱讀完這篇文章,希望小編分享Python知識點示例內(nèi)容對大家有幫助,同時也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,遇到問題就找創(chuàng)新互聯(lián),詳細的解決方法等著你來學習!

分享名稱:Python知識點示例
瀏覽地址:http://muchs.cn/article32/jopspc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供標簽優(yōu)化Google、虛擬主機App設(shè)計、做網(wǎng)站、網(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)

綿陽服務(wù)器托管