Python基礎(chǔ)知識學(xué)習(xí)
Aug 17, 2024 am 07:42 AMPython是一種解釋型、物件導(dǎo)向、動態(tài)資料類型的高階程式設(shè)計語言。 Python由Guido van Rossum於1989年底發(fā)明,第一個公開發(fā)行版發(fā)行於1991年。像Perl語言一樣, Python 原始碼同樣遵循 GPL(GNU General Public License)協(xié)定。
函數(shù)透過def關(guān)鍵字定義,形如
python def function (arg1,arg2,...): ... fuction(1,2,...) #call function
DocStrings文檔字串
DocStrings文檔字串是一個重要工具,用於解釋文檔程式。
``` python def function(): ''' say something here! ''' pass ... print function.__doc__ #調(diào)用doc ```
*DocStrings文檔字串 使用慣例 它的首行以大寫字母開始簡述功能,第二行空行,第三行為函數(shù)的具體描述*
Python 模組(Module),是一個 Python 文件,以 .py 結(jié)尾,包含了 Python 物件定義和Python語句。
模組讓你能夠有邏輯地組織你的 Python 程式碼片段。把相關(guān)的程式碼分配到一個模組裡能讓你的程式碼更好用,更容易理解。模組能定義函數(shù),類別和變量,模組裡也能包含可執(zhí)行的程式碼。以下是載入方法:
import方法(全部引入)
import modules
注意:一個模組只會被導(dǎo)入一次,不管你執(zhí)行了多少次import。這樣可以防止導(dǎo)入模組一遍又一遍地執(zhí)行。
from ... import方法(部分引入)
Python 的 from 語句讓你從模組匯入指定的部分到目前命名空間。文法如下:
from modname import name1[, name2[, ... nameN]]
from ... import*語句
導(dǎo)入模組內(nèi)所有內(nèi)容,並不建議使用。
Python模組搜尋路徑
當(dāng)你導(dǎo)入一個模組,Python 解析器對模組位置的搜尋順序是:
當(dāng)前目錄
如果不在目前目錄,Python 則搜尋在 shell 變數(shù) PYTHONPATH 下的每個目錄。
如果都找不到,Python會察看預(yù)設(shè)路徑。 UNIX下,預(yù)設(shè)路徑一般為/usr/local/lib/python/。模組搜尋路徑儲存在 system 模組的 sys.path 變數(shù)中。變數(shù)裡包含目前目錄,PYTHONPATH和由安裝過程決定的預(yù)設(shè)目錄。
函數(shù)一個排好序的字串列表,內(nèi)容是一個模組裡定義過的名字。
傳回的列表容納了在一個模組裡定義的所有模組,變數(shù)和函數(shù)。
特殊字串變數(shù)__name__指向模組的名字,__file__指向該模組的導(dǎo)入檔名。
據(jù)呼叫地方的不同,globals()和locals()函數(shù)可用來傳回全域和局部命名空間裡的名字。
如果在函數(shù)內(nèi)部呼叫 locals(),則傳回的是所有能在該函數(shù)裡存取的命名。 如果在函數(shù)內(nèi)部呼叫 globals(),則傳回的是所有在該函數(shù)裡能存取的全域名字。 兩個函數(shù)的回傳類型都是字典。所以名字們能用 keys() 函數(shù)摘取。
套件是一個分層的檔案目錄結(jié)構(gòu),它定義了一個由模組及子包,以及子包下的子包等組成的 Python 的應(yīng)用環(huán)境。簡單來說,包就是資料夾,但該資料夾下必須存在 _init_.py 檔案, 該檔案的內(nèi)容可以為空。 _init_.py用於標(biāo)識目前資料夾是一個包。
常用模組
系統(tǒng)相關(guān)的信息模塊: import sys sys.argv 是一個 list,包含所有的命令行參數(shù). sys.stdout sys.stdin sys.stderr 分別表示標(biāo)準輸入輸出,錯誤輸出的文件對象. sys.stdin.readline() 從標(biāo)準輸入讀一行 sys.stdout.write("a") 屏幕輸出a sys.exit(exit_code) 退出程序 sys.modules 是一個dictionary,表示系統(tǒng)中所有可用的module sys.platform 得到運行的操作系統(tǒng)環(huán)境 sys.path 是一個list,指明所有查找module,package的路徑.
操作系統(tǒng)相關(guān)的調(diào)用和操作: import os os.environ 一個dictionary 包含環(huán)境變量的映射關(guān)系 os.environ["HOME"] 可以得到環(huán)境變量HOME的值 os.chdir(dir) 改變當(dāng)前目錄 os.chdir('d:\outlook') 注意windows下用到轉(zhuǎn)義 os.getcwd() 得到當(dāng)前目錄 os.getegid() 得到有效組id os.getgid() 得到組id os.getuid() 得到用戶id os.geteuid() 得到有效用戶id os.setegid os.setegid() os.seteuid() os.setuid() os.getgruops() 得到用戶組名稱列表 os.getlogin() 得到用戶登錄名稱 os.getenv 得到環(huán)境變量 os.putenv 設(shè)置環(huán)境變量 os.umask 設(shè)置umask os.system(cmd) 利用系統(tǒng)調(diào)用,運行cmd命令
內(nèi)置模塊(不用import就可以直接使用)常用內(nèi)置函數(shù): help(obj) 在線幫助, obj可是任何類型 callable(obj) 查看一個obj是不是可以像函數(shù)一樣調(diào)用 repr(obj) 得到obj的表示字符串,可以利用這個字符串eval重建該對象的一個拷貝 eval_r(str) 表示合法的python表達式,返回這個表達式 dir(obj) 查看obj的name space中可見的name hasattr(obj,name) 查看一個obj的name space中是否有name getattr(obj,name) 得到一個obj的name space中的一個name setattr(obj,name,value) 為一個obj的name space中的一個name指向vale這個object delattr(obj,name) 從obj的name space中刪除一個name vars(obj) 返回一個object的name space。用dictionary表示 locals() 返回一個局部name space,用dictionary表示 globals() 返回一個全局name space,用dictionary表示 type(obj) 查看一個obj的類型 isinstance(obj,cls) 查看obj是不是cls的instance issubclass(subcls,supcls) 查看subcls是不是supcls的子類
類型轉(zhuǎn)換 chr(i) 把一個ASCII數(shù)值,變成字符 ord(i) 把一個字符或者unicode字符,變成ASCII數(shù)值 oct(x) 把整數(shù)x變成八進制表示的字符串 hex(x) 把整數(shù)x變成十六進制表示的字符串 str(obj) 得到obj的字符串描述 list(seq) 把一個sequence轉(zhuǎn)換成一個list tuple(seq) 把一個sequence轉(zhuǎn)換成一個tuple dict(),dict(list) 轉(zhuǎn)換成一個dictionary int(x) 轉(zhuǎn)換成一個integer long(x) 轉(zhuǎn)換成一個long interger float(x) 轉(zhuǎn)換成一個浮點數(shù) complex(x) 轉(zhuǎn)換成復(fù)數(shù) max(...) 求最大值 min(...) 求最小值 ------
在python中有三種內(nèi)建的資料結(jié)構(gòu)--列表、元組和字典。
list是處理一組有序項目的數(shù)據(jù)結(jié)構(gòu),即你可以在一個列表中存儲一個序列的項目。
列表是一種可變的數(shù)據(jù)類型。
python listname = [item1.item2,item3] listname.sort() listname.append(item4) del listname[0]
元組與列表極其類似,只不過元組和字符串一樣是不可變 即使你不能修改元組。元組通過圓括號中用逗號分割的項目定義。
元組最通常的用法是用在打印語句中,下面是一個例子:
print '%sis %d' % (name,age)
字典有鍵和值二元組,鍵是不可變的對象,字典的值可以任意。鍵值對在字典中以這樣的方式標(biāo)記
d ={key1:value1,key2:value2}
序列是列表,元組,字符串的總稱,它的特點在于兩個操作--索引操作符 (indexing/subscription)、切片操作符(slicing)
list[-1],list[0],list[1],list[3] list[0;2] #0到1的 不包含2 list[2:] #2以后 list[:] #全部
當(dāng)你創(chuàng)建一個對象并給它賦一個變量的時候,這個變量僅僅引用那個對象,而不是表示那個對象本身
!也就是說,變量名只是指向計算機中存儲那個對象的內(nèi)存。這被稱作名稱到對象的綁定。
```python #!/usr/bin/python #-- coding=utf-8 -- print 'Simple Assignment' shoplist = ['apple','mango','carrot','banana'] mylist = shoplist #簡單的賦值 只是引用變量名 del shoplist[0] del mylist[0] print 'shoplist is',shoplist print 'mylist is',mylist print 'Coping by making full slice' mylist = shoplist[:] del mylist[0] print 'shoplist is',shoplist print 'mylist is',mylist ``` Simple Assignment shoplist is ['carrot', 'banana'] mylist is ['carrot', 'banana'] Coping by making full slice shoplist is ['carrot', 'banana'] mylist is ['banana']
很明顯,普通引用只是名稱的綁定,3而只有完整切片才是真正意義上的復(fù)制。所以我們在簡單引用后一定要考慮是否可以更改,因為操作可能影響到源對象。
注意在python中即使是整型也會被視為對象,這與C++和Java(1.5以前),在它們那兒整數(shù)是原始的內(nèi)置類型。
在python中秉承一切皆對象的原則。
字段(Filed):屬于某個對象或類的變量
方法(Method):屬于類的函數(shù)
屬性(Attribute):上者綜合
-self
類方法與普通函數(shù)的區(qū)別所在,將類函數(shù)參數(shù)項前面用self修飾。與C++中this作用類似。
python class Person: def say_hi(self): print('Hello,how are you?')
Python中 特殊意義的類函數(shù)名稱
init 方法
該方法會在類的對象被實例化(Instantiated)時立即運行。這一方法可以用作初始化操作。
python class Person: def __init__(self,name) self.name = name def say_hi(self): print('Hello,my name is',self.name) p = Person('Swaroop') p.say_hi()
特殊變量命名方法
1、 _xx 以單下劃線開頭的表示的是protected類型的變量。即保護類型只能允許其本身與子類進行訪問。若內(nèi)部變量標(biāo)示,如: 當(dāng)使用“from M import”時,不會將以一個下劃線開頭的對象引入 。
2、 __xx 雙下劃線的表示的是私有類型的變量。只能允許這個類本身進行訪問了,連子類也不可以用于命名一個類屬性(類變量),調(diào)用時名字被改變(在類FooBar內(nèi)部,__boo變成_FooBar__boo,如self._FooBar__boo)
3、 __xx__定義的是特列方法。用戶控制的命名空間內(nèi)的變量或是屬性,如init , __import__或是file 。只有當(dāng)文檔有說明時使用,不要自己定義這類變量。 (就是說這些是python內(nèi)部定義的變量名)
在這里強調(diào)說一下私有變量,python默認的成員函數(shù)和成員變量都是公開的,沒有像其他類似語言的public,private等關(guān)鍵字修飾.但是可以在變量前面加上兩個下劃線"_",這樣的話函數(shù)或變量就變成私有的.這是python的私有變量軋壓(這個翻譯好拗口),英文是(private name mangling.) **情況就是當(dāng)變量被標(biāo)記為私有后,在變量的前端插入類名,再類名前添加一個下劃線"_",即形成了_ClassName__變量名.**
以上是Python基礎(chǔ)知識學(xué)習(xí)的詳細內(nèi)容。更多資訊請關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

熱AI工具

Undress AI Tool
免費脫衣圖片

Undresser.AI Undress
人工智慧驅(qū)動的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6
視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

熱門話題

在CentOS上集成Postman應(yīng)用可以通過多種方法來實現(xiàn),以下是詳細的步驟和建議:通過下載安裝包安裝Postman下載Postman的Linux版本安裝包:訪問Postman官方網(wǎng)站,選擇適用於Linux的版本進行下載。解壓安裝包:使用以下命令將安裝包解壓到指定目錄,例如/opt:sudotar-xzfpostman-linux-x64-xx.xx.xx.tar.gz-C/opt請注意將“postman-linux-x64-xx.xx.xx.tar.gz”替換為您實際下載的文件名。創(chuàng)建符號

Java與其他編程語言的主要區(qū)別在於其“一次編寫,到處運行”的跨平臺特性。 1.Java的語法接近C ,但去掉了容易出錯的指針操作,適合大型企業(yè)應(yīng)用。 2.與Python相比,Java在性能和大規(guī)模數(shù)據(jù)處理上更具優(yōu)勢。 Java的跨平臺優(yōu)勢源於Java虛擬機(JVM),它能在不同平臺上運行相同的字節(jié)碼,簡化開發(fā)和部署,但需注意避免使用平臺特定API以保持跨平臺性。

在PyCharm中設(shè)置解釋器的位置可以通過以下步驟實現(xiàn):1.打開PyCharm,點擊“File”菜單,選擇“Settings”或“Preferences”。 2.找到並點擊“Project:[你的項目名]”,然後選擇“PythonInterpreter”。 3.點擊“AddInterpreter”,選擇“SystemInterpreter”,瀏覽到Python安裝目錄,選中Python可執(zhí)行文件,點擊“OK”。設(shè)置解釋器時需注意路徑正確性、版本兼容性和虛擬環(huán)境的使用,以確保項目順利運行。

在VSCode中手動安裝插件包的步驟是:1.下載插件的.vsix文件;2.打開VSCode並按Ctrl Shift P(Windows/Linux)或Cmd Shift P(Mac)調(diào)出命令面板;3.輸入並選擇Extensions:InstallfromVSIX...,然後選擇.vsix文件並安裝。手動安裝插件提供了一種靈活的安裝方式,特別是在網(wǎng)絡(luò)受限或插件市場不可用時,但需要注意文件安全和可能的依賴問題。

【常見目錄說明】目錄/bin存放二進制可執(zhí)行文件(ls,cat,mkdir等),常用命令一般都在這裡。 /etc存放系統(tǒng)管理和配置文件/home存放所有用戶文件的根目錄,是用戶主目錄的基點,比如用戶user的主目錄就是/home/user,可以用~user表示/usr用於存放系統(tǒng)應(yīng)用程序,比較重要的目錄/usr/local?本地系統(tǒng)管理員軟件安裝目錄(安裝系統(tǒng)級的應(yīng)用)。這是最龐大的目錄,要用到的應(yīng)用程序和文件幾乎都在這個目錄。 /usr/x11r6?存放x?window的目錄/usr/bin?眾多

了解Nginx的配置文件路徑和初始設(shè)置非常重要,因為它是優(yōu)化和管理Web服務(wù)器的第一步。 1)配置文件路徑通常是/etc/nginx/nginx.conf,使用nginx-t命令可以查找並測試語法。 2)初始設(shè)置包括全局設(shè)置(如user、worker_processes)和HTTP設(shè)置(如include、log_format),這些設(shè)置允許根據(jù)需求進行定制和擴展,錯誤配置可能導(dǎo)致性能問題和安全漏洞。

MySQL的安裝和配置可以通過以下步驟完成:1.從官方網(wǎng)站下載適合操作系統(tǒng)的安裝包。 2.運行安裝程序,選擇“開發(fā)者默認”選項並設(shè)置root用戶密碼。 3.安裝後配置環(huán)境變量,確保MySQL的bin目錄在PATH中。 4.創(chuàng)建用戶時遵循最小權(quán)限原則並設(shè)置強密碼。 5.優(yōu)化性能時調(diào)整innodb_buffer_pool_size和max_connections參數(shù)。 6.定期備份數(shù)據(jù)庫並優(yōu)化查詢語句以提高性能。

Informix和MySQL均為廣受青睞的關(guān)係型數(shù)據(jù)庫管理系統(tǒng),它們在Linux環(huán)境下均表現(xiàn)優(yōu)異並得到廣泛應(yīng)用。以下是對兩者在Linux平臺上的對比分析:安裝與配置Informix:在Linux上部署Informix需要下載對應(yīng)的安裝文件,隨後依據(jù)官方文檔指引完成安裝及配置流程。 MySQL:MySQL的安裝過程較為簡便,可通過系統(tǒng)的包管理工具(例如apt或yum)輕鬆實現(xiàn)安裝,並且網(wǎng)絡(luò)上有大量的教程和社區(qū)支持可供參考。性能表現(xiàn)Informix:Informix以卓越的性能和
