python基礎小結

編輯本文html

目錄python

(一)python環境準備linux

 一、python安裝web

 二、虛擬環境安裝正則表達式

 三、修改pip鏡像源算法

 四、運行python程序數據庫

(二)python語法編程

一、數據類型windows

二、數據操做(方法)數組

三、python理論特色

四、函數

五、類

六、框架、系統

七、多任務

八、裝飾器

九、迭代器、生成器


正文

 

 

(一)python環境準備

一、python安裝

python3安裝在Linux上:http://www.javashuo.com/article/p-pqmoqjbx-dk.html

二、虛擬環境安裝

安裝虛擬環境:http://www.javashuo.com/article/p-pqmoqjbx-dk.html

windows上安裝python虛擬環境

三、修改pip鏡像源

pip升級

python修改鏡像源

四、運行python程序

Linux:解決nohup中不寫入日誌的問題

windows:在windows中:雙擊運行Python程序、後臺運行Python程序

 

 

(二)python語法

一、數據類型

Python的八種數據類型
八種數據類型分別是:
number(數字)、string(字符串)、Boolean(布爾值)、None(空值)、
list(列表)、tuple(元組)、dict(字典)、set(集合)。

 

編輯本文

二、數據操做(方法)

https://blog.csdn.net/mdxiaohu/article/details/81811459

(2)string(字符串)操做方法

1)len(s)   # 獲取字符串長度

2)s.strip("*")  # 去除s兩端的*號,默認去除空格

3)s.split(",")  # 按照,號分割字符串s爲list

4)s.splitlines()  # 按照行(\n,\r\n,\r)分割字符串s爲list

5)"@".join(list1)  # 用@號,將list1中的元素鏈接成字符串

6)s.replace(oldstr, newstr, count)  # 在s字符串中,用newstr替換oldstr,共替換count次

7)s.startswith(s0)  # 判斷s字符串中是不是s0字串開始的

8)s.endswith(sn)  # 判斷s字串中是不是sn字串結尾的

9)s.encode("utf-8")  # 將s字串按照utf-8格式編碼爲二進制流

10)b.decode("utf-8")  # 將b二進制流按照utf-8解碼爲s字符串

 

(4)None(空值)

空值None是python裏一個特殊的值。

None不能理解爲0,由於0是有意義的,而None是一個特殊值。

 

(5)list(列表)——有序、數組、可重複、可變

1)添加

list1.append("endstr")

list1.insert(1,"second")

list1.extend(  ["aa", "bb"]  )   或者  list1 +   ["aa", "bb"] 

2)修改

list1[3] = "newstr"

3)查詢統計

list1[3] 

list1[0:2]

"bbb"  in list1   或者  "bbb"  not in list1 

list1.index("bbb")      # 輸出:bbb的下標

list1.count("bbb")      # 輸出:輸出列表中有多少個bbb元素

len(list1)          # 輸出:輸出列表中有多少個元素

4)刪除

del  list1[3]

list1.pop()     刪除列表中最後一個元素,並返回這個元素。

list1.remove("bbb")   刪除了左邊第一個「bbb」,無返回值。

list1.clear()        清空列表

 

5)遍歷

①不帶下標遍歷

for  v in list1:

    print(v)

②帶下標遍歷

for  i, v in enumerate(list1):

    print(i, v)

 

6)排序

list1.sort()      升序,改變原list1

list1.sort(reverse=True)     降序,改變原list1

list1.reverse()              反轉順序,改變原list1

 或者

升序,不改變原list1
sorted(list1)
降序,不改變原list1
sorted(list1, reverse=True)

7)複製

list2=list1                  淺拷貝  

print(id(list1))
print(id(list2))

list3=list1.copy()        深拷貝

print(id(list1))
print(id(list3))

 

 

 

(6)tuple(元組)——有序、數組、可重複、不可變

(7)dict(字典)——無序、鍵值對、鍵名不可重複

1)增長

dict1["sex"]="boy"

2)修改

dict1["sex"]="girl"

3)查看統計

dict1["sex"]      # 沒有sex就會報錯

ret = dict1.get("sex")  # 沒有sex,也不會報錯

if   ret == None:

    print("沒有")

else:

    print("有")

 

4)刪除

dict1.pop("sex")   # 刪除一個,而且返回

del dict1["sex"]   # 刪除一個

dict1.clear()    #  全刪

 

5)遍歷

字典自己沒法遍歷,能夠轉成列表後遍歷。

①遍歷鍵k

for  k  in  dict1.keys():

     print(k)

或者

for  k  in  dict1:

     print(k)

 

②遍歷值v

for  v  in  dict1.values():

     print(v)

 

③遍歷鍵和值(k,v)

for  k, v  in  dict1.items():

    print(k,v)

延伸:dict和list比較:

(a)dict查找和插入的速度極快,不會隨着k-v的增長而變慢。

(b)dict須要佔用大量的內存,內存浪費多。

 

(8)set(集合)——無序,數組,無重複

1)增長建立

set1=set([1,2,3])      # 輸出:{1,2,3}

set2=set((1,2,3,1,2))      # 輸出:{1,2,3}

set3=set({1:"good",2:"nice"})      # 輸出:{1,2}

set1.update([4,5,6])      # 輸出:{1,2,3,4,5,6}      update打碎插入

set1.update("haha")      # 輸出:{1,2,3,4,5,6,'h','a','h','a'}     update打碎插入

set1.add(7)   # 增長元素,add只能插入不可變元素

2)修改

3)查詢

set集合沒有下標索引,小標訪問會報錯。

4)刪除

set1.remove(3)

5)遍歷

①無下標遍歷

for   v   in  set1:

    print(v)

②下標遍歷

for   i, v   in  enumerate(set1):

    print(i,v)

 

6)並集和交集運算

bing1=set1 |  set2           #  並集

jiao2 = set1 & set2           #  交集

 

三、python理論特色

Python的發音與拼寫
Python的意思是蟒蛇,源於做者喜歡的一部電視劇 (C呢?)
Python的做者是Guido van Rossum(龜叔)
Python是龜叔在1989年聖誕節期間,爲了打發無聊的聖誕節而用C編寫的一個編程語言
Python正式誕生於1991年
Python的解釋器現在有多個語言實現,咱們經常使用的是CPython(官方版本的C語言實現),其餘還有Jython(能夠運行在Java平臺)、IronPython(能夠運行在.NET和Mono平臺)、PyPy(Python實現的,支持JIT即時編譯)
Python目前有兩個版本,Python2和Python3,最新版分別爲2.7.12和3.5.2,現階段大部分公司用的是Python2


優勢
一、簡單————Python是一種表明簡單主義思想的語言。閱讀一個良好的Python程序就感受像是在讀英語同樣,儘管這個英語的要求很是嚴格!Python的這種僞代碼本質是它最大的優勢之一。它使你可以專一於解決問題而不是去搞明白語言自己。
二、易學————就如同你即將看到的同樣,Python極其容易上手。前面已經提到了,Python有極其簡單的語法。強制縮進易懂。
三、免費、開源————Python是FLOSS(自由/開放源碼軟件)之一。簡單地說,你能夠自由地發佈這個軟件的拷貝、閱讀它的源代碼、對它作改動、把它的一部分用於新的自由軟件中。FLOSS是基於一個團體分享知識的概念。這是爲何Python如此優秀的緣由之一——它是由一羣但願看到一個更加優秀的Python的人創造並常常改進着的。
四、高層語言————當你用Python語言編寫程序的時候,你無需考慮諸如如何管理你的程序使用的內存一類的底層細節。
五、可移植性————因爲它的開源本質,Python已經被移植在許多平臺上(通過改動使它可以工做在不一樣平臺上)。若是你當心地避免使用依賴於系統的特性,那麼你的全部Python程序無需修改就能夠在下述任何平臺上面運行。這些平臺包括Linux、Windows、FreeBSD、Macintosh、Solaris、OS/二、Amiga、AROS、AS/400、BeOS、OS/390、z/OS、Palm OS、QNX、VMS、Psion、Acom RISC OS、VxWorks、PlayStation、Sharp Zaurus、Windows CE甚至還有PocketPC、Symbian以及Google基於linux開發的Android平臺!
六、解釋性————這一點須要一些解釋。一個用編譯性語言好比C或C++寫的程序能夠從源文件(即C或C++語言)轉換到一個你的計算機使用的語言(二進制代碼,即0和1)。這個過程經過編譯器和不一樣的標記、選項完成。當你運行你的程序的時候,鏈接/轉載器軟件把你的程序從硬盤複製到內存中而且運行。而Python語言寫的程序不須要編譯成二進制代碼。你能夠直接從源代碼運行程序。在計算機內部,Python解釋器把源代碼轉換成稱爲字節碼的中間形式,而後再把它翻譯成計算機使用的機器語言並運行。事實上,因爲你再也不須要擔憂如何編譯程序,如何確保鏈接轉載正確的庫等等,全部這一切使得使用Python更加簡單。因爲你只須要把你的Python程序拷貝到另一臺計算機上,它就能夠工做了,這也使得你的Python程序更加易於移植。
七、面向對象————Python既支持面向過程的編程也支持面向對象的編程。在「面向過程」的語言中,程序是由過程或僅僅是可重用代碼的函數構建起來的。在「面向對象」的語言中,程序是由數據和功能組合而成的對象構建起來的。與其餘主要的語言如C++和Java相比,Python以一種很是強大又簡單的方式實現面向對象編程。
八、可擴展性————若是你須要你的一段關鍵代碼運行得更快或者但願某些算法不公開,你能夠把你的部分程序用C或C++編寫,而後在你的Python程序中使用它們。
九、豐富的庫————Python標準庫確實很龐大。它能夠幫助你處理各類工做,包括正則表達式、文檔生成、單元測試、線程、數據庫、網頁瀏覽器、CGI、FTP、電子郵件、XML、XML-RPC、HTML、WAV文件、密碼系統、GUI(圖形用戶界面)、Tk和其餘與系統有關的操做。記住,只要安裝了Python,全部這些功能都是可用的。這被稱做Python的「功能齊全」理念。除了標準庫之外,還有許多其餘高質量的庫,如wxPython、Twisted和Python圖像庫等等。
十、規範的代碼————Python採用強制縮進的方式使得代碼具備極佳的可讀性。

缺點
一、運行速度,有速度要求的話,用C++改寫關鍵部分吧。
二、國內市場較小(國內以python來作主要開發的,目前只有一些web2.0公司)。但時間推移,目前不少國內軟件公司,尤爲是遊戲公司,也開始規模使用他。
三、中文資料匱乏(好的python中文資料屈指可數)。託社區的福,有幾本優秀的教材已經被翻譯了,但入門級教材多,高級內容仍是隻能看英語版。
四、構架選擇太多(沒有像C#這樣的官方.net構架,也沒有像ruby因爲歷史較短,構架開發的相對集中。Ruby on Rails 構架開發中小型web程序天下無敵)。不過這也從另外一個側面說明,python比較優秀,吸引的人才多,項目也多。

 

python的應用場景

Web應用開發
操做系統管理、服務器運維的自動化腳本
科學計算
桌面軟件
服務器軟件(網絡軟件)
遊戲
構思實現,產品早期原型和迭代

 

四、函數

五、類

六、框架、系統

七、多任務

八、裝飾器

九、迭代器、生成器

相關文章
相關標籤/搜索