国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

【Python從入門到精通】五萬六千字對Python基礎知識做一個了結吧!(二十八)【值得收藏】

leeon / 802人閱讀

摘要:它是一門解析型的語言,何為解析型語言呢就是在運行時通過解析器將源代碼一行行解析成機器碼。而像語言,等則是編譯型的語言,即通過編譯器將所有的源代碼一次性編譯成二進制指令,生成一個可執行的程序。

為什么寫這篇文章

我從2021年6月13號寫下第一篇Python的系列專欄算起,陸續更新了二十七篇Python系列文章。在此感謝讀者朋友們的支持和閱讀,特別感謝一鍵三連的小伙伴

本專欄起名【Python從入門到精通】,主要分為基礎知識和項目實戰兩個部分,目前基礎知識部分已經完全介紹完畢。下一階段就是寫Python項目實戰以及爬蟲相關的知識點。

為了對前期學習的Python基礎知識做一個總結歸納,以幫助讀者朋友們更好的學習下一部分的實戰知識點,故在此我寫下此文,共勉,同進

同時為了方便大家交流學習,我這邊還建立了一個Python的學習群。群里都是一群熱愛學習的小伙伴,不乏一些牛逼的大佬。大佬帶飛,我相信進入群里的小伙伴一定會走的更快,飛的更高。 歡迎掃碼進群。

本專欄寫了什么

下面就通過一個思維導圖,展示本專欄Python基礎知識部分的總覽圖。

本專欄從零基礎出發,從環境的搭建到高級知識點的學習,一步步走來,相信各位讀者朋友們早已掌握相關的知識點。接下來就做一個詳細的回顧。

0.何為Python

Python是一門開源免費的,通用型的腳本編程語言。它需要在運行時將代碼一行行解析成CPU能識別的機器碼。它是一門解析型的語言,何為解析型語言呢?就是在運行時通過解析器將源代碼一行行解析成機器碼。而像C語言,C++等則是編譯型的語言,即通過編譯器將所有的源代碼一次性編譯成二進制指令,生成一個可執行的程序。解析型語言相對于編譯型語言的好處就是天然具有跨平臺的特點,一次編碼,到處運行。

1. 開發環境配置

  1. 下載Python解釋器
    如同Java需要安裝JDK 編譯器一樣,Python也需要安裝解釋器來運行Python程序。
    官方的下載網址是: https://www.python.org/downloads/,映入眼簾的是最新的發布版本,如果想下載其他版本的話,可以下來找到如下圖所示的信息,當前的最新版本是 python 3.9.5 版本。根據你開發電腦的系統選擇不同系統的安裝包。


    安裝包下載之后雙擊運行進行安裝。需要注意的是在Window下安裝需要勾選 Add Python 3.8 to PATH,如下圖1.2所示

    安裝完成之后在命令行中輸入python3 驗證安裝的結果,如果出現如下結果就表明安裝Python編譯器安裝成功了。

    詳細內容可以查看【Python從入門到精通】(一)就簡單看看Python吧

2. 工具安裝

2.1. 安裝PyCharm開發工具

工欲善其事必先利其器,在實際開發中我們都是通過IDE(集成開發環境)來進行編碼,為啥要使用IDE呢?這是因為IDE集成了語言編輯器,自動建立工具,除錯器等等工具可以極大方便我們快速的進行開發。打個比方 我們可以將集成開發環境想象成一個臺式機。雖然只需要主機就能運行起來,但是,還是需要顯示器,鍵盤等才能用的爽。
PyCharm就是這樣一款讓人用的很爽的IDE開發工具。下面就簡單介紹一下它的安裝過程

下載安裝包

點擊鏈接 https://www.jetbrains.com/pycharm/download/
進入下來頁面,PyCharm 有專業版和社區版。其中,專業版需要購買才能使用,而社區版是免費的。社區版對于日常的Python開發完全夠用了。所以我們選擇PyCharm的社區版進行下載安裝。點擊如下圖所示的按鈕進行安裝包的下載。

安裝

安裝包下載好之后,我們雙擊安裝包即可進行安裝,安裝過程比較簡單,基本只需要安裝默認的設置每一步點擊Next按鈕即可,不過當出現下圖的窗口時需要設置一下。

設置好之后點擊 Next 進入下一步的安裝,知道所有的安裝都完成。

使用

這里使用只需要注意一點,就是設置解釋器,默認的話在Project Interpreter的選擇框中是提示的是 No interpreter,即沒有選中解釋器,所以,我們需要手動添加。
所以需要點擊設置按鈕設置解釋器,這里選擇 Add Local 設置本地的解釋器。

打開解釋器的設置頁面之后,默認選中的是Virtualenv Environment 這個tab頁,
這里Location是用來設置項目的虛擬環境,具體可以參考pycharm的使用小結,設置虛擬環境,更換鏡像源
Base interpreter 用來設置解釋器的路徑。

至此,開發Python的腳手架已經弄好,接下來就是編碼了。
如下創建了一個名為demo_1.py的文件,然后在文件中寫入了如下幾行代碼

print("你好,世界")a = 120b = 230print(a + b)

運行這些代碼只需要簡單的右鍵選中 Run ‘demo_1’ 或者 Debug ‘demo_1’ ,這兩者的區別是Run demo_1是以普通模式運行代碼,而 Debug ‘demo_1’ 是以調試模式運行代碼。

運行結果就是:

詳細內容可以查看【Python從入門到精通】(二)怎么運行Python呢?有哪些好的開發工具

3. 編碼規范&注釋

3.1.注釋

首先介紹的是Python的注釋,Python的注釋分為兩種:單行注釋和多行注釋。

  1. 單行注釋
    Python使用 # 號作為單行注釋的符號,其語法格式為:#注釋內容 從#號開始直到這行結束為止的所有內容都是注釋。例如:
# 這是單行注釋
  1. 多行注釋
    多行注釋指一次注釋程序中多行的內容(包含一行) ,Python使用三個連續的 單引號’’’ 或者三個連續的雙引號""" 注釋多行內容。其語法格式是如下:
"""三個連續的單引號的多行注釋注釋多行內容"""

或者

"""三個連續的雙引號的多行注釋注釋多行內容"""

多行注釋通常用來為Python文件、模塊、類或者函數等添加版權或者功能描述信息(即文檔注釋)

3.2.縮進規則

不同于其他編程語言(如Java,或者C)采用大括號{}分割代碼塊,Python采用代碼縮進冒號 : 來區分代碼塊之間的層次。如下面的代碼所示:

a = -100                     if a >= 0:    print("輸出正數" + str(a))    print("測試")else:    print("輸出負數" + str(a))

其中第一行代碼a = -100和第二行代碼if a >= 0:是在同一作用域(也就是作用范圍相同),所以這兩行代碼并排。而第三行代碼print("輸出正數" + str(a)) 的作用范圍是在第二行代碼里面,所以需要縮進。第五行代碼也是同理。第二行代碼通過冒號和第三行代碼的縮進來區分這兩個代碼塊。
Python的縮進量可以使用空格或者Tab鍵來實現縮進,通常情況下都是采用4個空格長度作為一個縮進量的
這里需要注意的是同一個作用域的代碼的縮進量要相同,不然會導致IndentationError異常錯誤,提示縮進量不對,如下面代碼所示:第二行代碼print("輸出正數" + str(a)) 縮進了4個空格,而第三行代碼print("測試")只縮進了2個空格。

if a >= 0:    print("輸出正數" + str(a))  print("測試")

在Python中,對于類定義,函數定義,流程控制語句就像前面的if a>=0:,異常處理語句等,行尾的冒號和下一行縮進,表示下一個代碼塊的開始,而縮進的結束則表示此代碼的結束。
詳細內容可以查看【Python從入門到精通】(三)Python的編碼規范,標識符知多少?

4. 數據類型

4.1.各種數據類型總覽

4.2.整數(int)

Python3中的整數是不分類型,也就是說沒有長整數類型(Long)或者短整數類型(short)之分,它的取值范圍是是無限的,即不管多大或者多小的數字,Python都能輕松的應對。如下就是兩個極大或者極小的整數。

>>> 100000-00000000000000000000000000000000000000001000000000000000000000000000000000000000000000>>> print(-1000000000000000000000000000000000000000000000)-1000000000000000000000000000000000000000000000

可以看出再大或者再小的數字都不會出現溢出的情況,這說明了Python對整數的處理能力非常強。

整數的不同進制

Python中可以用多種進制的來表示整數。

  1. 十進制形式
    我們平時常見的整數就是十進制形式,它由 0~9 共十個數字排列組合而成。
    注意,使用十進制形式的整數不能以 0 作為開頭,除非這個數值本身就是 0。
  2. 二進制形式
    由 0 和 1 兩個數字組成,書寫時以0b或0B開頭。例如,1001對應十進制數是 9。
  3. 八進制形式
    八進制整數由 0~7 共八個數字組成,以0o或0O開頭。注意,第一個符號是數字 0,第二個符號是大寫或小寫的字母 O。
  4. 十六進制形式
    由 0~9 十個數字以及 A~F(或 a~f)六個字母組成,書寫時以0x或0X開頭。
# 二進制a=0b1001print("a=",a)# 八進制b=0o207print("b=",b)# 十六進制c=0x45print("c=",c)

運行結果是:

a= 9b= 135c= 69

Python 3.x允許使用下劃線_作為數字(包括整數和小數)的分隔符,通常每隔三個數字添加一個下劃線,比如:click = 1_301_547

4.3. 浮點數/小數(float)

在編程語言中,小數通常以浮點數的形式存儲,浮點數和定點數是相對的;小數在存儲過程中如果小數點發生移動,就稱為浮點數;如果小數點不動,就稱為定點數。

小數的書寫形式

Python中的小數有兩種書寫形式:

  1. 十進制形式
    這就是我們經常看到的小數形式,比如101.1;234.5;0.23
  2. 指數形式
    Python小數點指數形式的寫法為:aEn或aen
    a為尾數部分,是一個十進制,n為指數部分,是一個十進制,E或者e是固定的字符,用于分割尾數部分和指數部分,真的表達式是 a×10n。
    舉個栗子:
    2.3E5=2.3x10的5次方
    依然還舉個栗子:
x=10.01print("x=",x)y=-0.031print("y=",y)z=2.3E10print("z=",z)w=-0.00000001print("w=",w)

運行結果是:

x= 10.01y= -0.031z= 23000000000.0w= -1e-08

4.4.布爾類型(bool)

布爾類型用來表示真(對)或假(錯),比如常見的3>2 比較算式,這個是正確的,Python中使用True來代表;再比如2>3 比較算式,這個是錯誤的,用False來代表。

print(3>2)print(2>3)print("True==1的結果是:",True==1)print("False==0的結果是:",False==0)

運行結果是:

TrueFalseTrue==1的結果是: TrueFalse==0的結果是: True

詳細內容可以查看【Python從入門到精通】(四)Python的內置數據類型有哪些呢?數字了解一下

5. 序列

序列(sequence)指的是一塊可存放多個元素的內存空間,這些元素按照一定的順序排列。每個元素都有自己的位置(索引),可以通過這些位置(索引)來找到指定的元素。如果將序列想象成一個酒店,那么酒店里的每個房間就相當于序列中的每個元素,房間的編號就相當于元素的索引,可以通過編號(索引)找到指定的房間(元素)。

5.1.有哪些序列類型呢?

了解完了序列的基本概念,那么在Python中一共有哪些序列類型呢?如下圖所示:

從圖中可以看出在Python中共有7種序列類型,分別是文本序列類型(str);二進制序列類型 bytes和bytearray;列表(list);元組(tuple);集合類型(set和frozenset);范圍類型(range)以及字典類型(dict)。

5.2. 按照能存儲的元素劃分

按照能存儲的元素可以將序列類型劃分為兩大類:分別是:容器序列和扁平序列
容器序列:即可容納不同數據類型的元素的序列;有 list;tuple;set;dict
舉個栗子:

list=["runoob",786,2.23,"john",70.2]

這里的list保存的元素有多種數據類型,既有字符串,也有小數和整數。
扁平序列:即只能容納相同數據類型的元素的序列;有bytes;str;bytearray,以str為例,同一個str只能都存儲字符。

5.2. 按照是否可變劃分

按照序列是否可變,又可分為可變序列和不可變序列。
這里的可變的意思是:序列創建成功之后,還能不能進行修改操作,比如插入,修改等等,如果可以的話則是可變的序列,如果不可以的話則是不可變序列。
可變序列有列表( list);字典(dict)等,
不可變的序列有元祖(tuple),后面的文章會詳細的對這些數據類型做詳細介紹。

5.3. 序列的索引

在介紹序列概念的時候,說到了序列中元素的索引,那么什么是序列的索引呢?其實就是位置的下標。 如果對C語言中的數組有所了解的話,我們知道數組的索引下標都是從0開始依次遞增的正數,即第一個元素的索引下標是0,第n個元素的索引下標是n-1。序列的索引也是同理,默認情況下都是從左向右記錄索引,索引值從0開始遞增,即第一個元素的元素的索引值是0,第n個元素的索引值是n-1。如下圖所示:

當然與C語言中數組不同的是,Python還支持索引值是負數,該類的索引是從右向左計數。換句話說,就是從最后一個元素開始計數,從索引值-1開始遞減,即第n個元素的索引值是-1,第1個元素的索引值是-n,如下圖所示:

5.4.序列切片

切片操作是訪問序列元素的另一種方式,它可以訪問一定范圍內的元素,通過切片操作,可以生成一個新的序列。切片操作的語法格式是:

sname[start : end : step]

各個參數的含義分別是:

  1. sname: 表示序列的名稱
  2. start:表示切片的開始索引位置(包括該位置),此參數也可以不指定,不指定的情況下會默認為0,也就是從序列的開頭開始切片。
  3. end:表示切片的結束索引位置(不包括該位置),如果不指定,則默認為序列的長度。
  4. step: 表示步長,即在切片過程中,隔幾個存儲位置(包括當前位置)取一次元素,也就是說,如果step的值大于1,比如step為3時,則在切片取元素時,會隔2個位置去取下一個元素。
    還是舉個栗子說明下吧:
str1="好好學習,天天向上"# 取出索引下標為7的值print(str1[7])# 從下標0開始取值,一直取到下標為7(不包括)的索引值print(str1[0:7])# 從下標1開始取值,一直取到下標為4(不包括)的索引值,因為step等于2,所以會隔1個元素取值print(str1[1:4:2])# 取出最后一個元素print(str1[-1])# 從下標-9開始取值,一直取到下標為-2(不包括)的索引值print(str1[-9:-2])

運行的結果是:

向好好學習,天天好習上好好學習,天天

5.5.序列相加

Python支持類型相同的兩個序列使用"+"運算符做想加操作,它會將兩個序列進行連接,但是不會去除重復的元素,即只做一個簡單的拼接。

str="他叫小明"str1="他很聰明"print(str+str1)

運行結果是:他叫小明他很聰明

5.6.序列相乘

Python支持使用數字n乘以一個序列,其會生成一個新的序列,新序列的內容是原序列被重復了n次的結果。

str2="你好呀"print(str2*3)

運行結果是:你好呀你好呀你好呀 ,原序列的內容重復了3次。

5.7.檢查元素是否包含在序列中

Python中可以使用in關鍵字檢查某個元素是否為序列中的成員,其語法格式為:

value in sequence

其中,value表示要檢查的元素,sequence表示指定的序列。
舉個栗子:查找字是否在字符串str1中。

str1="好好學習,天天向上"print("天" in str1)

運行結果是:True

6. 字符串

*由若干個字符組成的集合就是一個字符串(str)**,Python中的字符串必須由雙引號""或者單引號’"包圍。其語法格式是:

"字符串內容""字符串內容"

如果字符串中包含了單引號需要做特殊處理。比如現在有這樣一個字符串
str4="I"m a greate coder" 直接這樣寫有問題的。
處理的方式有兩種:

  1. 對引號進行轉義,通過轉義符號/進行轉義即可:
str4="I/"m a greate coder"
  1. 使用不同的引號包圍字符串
str4="I"m a greate coder"

這里外層用雙引號,包裹字符串里的單引號。

6.1.字符串拼接

通過+運算符
現有字符串碼農飛哥好,,要求將字符串碼農飛哥牛逼拼接到其后面,生成新的字符串碼農飛哥好,碼農飛哥牛逼
舉個例子:

str6 = "碼農飛哥好,"# 使用+ 運算符號print("+運算符拼接的結果=",(str6 + "碼農飛哥牛逼"))

運行結果是:

+運算符拼接的結果= 碼農飛哥好,碼農飛哥牛逼

6.2.字符串截取(字符串切片)

切片操作是訪問字符串的另一種方式,它可以訪問一定范圍內的元素,通過切片操作,可以生成一個新的字符串。切片操作的語法格式是:

sname[start : end : step]

各個參數的含義分別是:

  1. sname: 表示字符串的名稱
  2. start:表示切片的開始索引位置(包括該位置),此參數也可以不指定,不指定的情況下會默認為0,也就是從序列的開頭開始切片。
  3. end:表示切片的結束索引位置(不包括該位置),如果不指定,則默認為序列的長度。
  4. step: 表示步長,即在切片過程中,隔幾個存儲位置(包括當前位置)取一次元素,也就是說,如果step的值大于1,比如step為3時,則在切片取元素時,會隔2個位置去取下一個元素。
    還是舉個栗子說明下吧:
str1="好好學習,天天向上"# 取出索引下標為7的值print(str1[7])# 從下標0開始取值,一直取到下標為7(不包括)的索引值print(str1[0:7])# 從下標1開始取值,一直取到下標為4(不包括)的索引值,因為step等于2,所以會隔1個元素取值print(str1[1:4:2])# 取出最后一個元素print(str1[-1])# 從下標-9開始取值,一直取到下標為-2(不包括)的索引值print(str1[-9:-2])

運行的結果是:

向好好學習,天天好習上好好學習,天天

6.3.分割字符串

Python提供了split()方法用于分割字符串,split() 方法可以實現將一個字符串按照指定的分隔符切分成多個子串,這些子串會被保存到列表中(不包含分隔符),作為方法的返回值反饋回來。該方法的基本語法格式如下:

str.split(sep,maxsplit)

此方法中各部分參數的含義分別是:

  1. str: 表示要進行分割的字符串
  2. sep: 用于指定分隔符,可以包含多個字符,此參數默認為None,表示所有空字符,包括空格,換行符"/n"、制表符"/t"等
  3. maxsplit: 可選參數,用于指定分割的次數,最后列表中子串的個數最多為maxsplit+1,如果不指定或者指定為-1,則表示分割次數沒有限制。
    在 split 方法中,如果不指定 sep 參數,那么也不能指定 maxsplit 參數。
    舉例說明下:
str = "https://feige.blog.csdn.net/"print("不指定分割次數", str.split("."))print("指定分割次數為2次",str.split(".",2))

運行結果是:

不指定分割次數 ["https://feige", "blog", "csdn", "net/"]指定分割次數為2次 ["https://feige", "blog", "csdn.net/"]

6.4.合并字符串

合并字符串與split的作用剛剛相反,Python提供了join() 方法來將列表(或元組)中包含的多個字符串連接成一個字符串。其語法結構是:

newstr = str.join(iterable)

此方法各部分的參數含義是:

  1. newstr: 表示合并后生成的新字符串
  2. str: 用于指定合并時的分隔符
  3. iterable: 做合并操作的源字符串數據,允許以列表、元組等形式提供。
    依然是舉例說明:
list = ["碼農飛哥", "好好學習", "非常棒"]print("通過.來拼接", ".".join(list))print("通過-來拼接", "-".join(list))

運行結果是:

通過.來拼接 碼農飛哥.好好學習.非常棒通過-來拼接 碼農飛哥-好好學習-非常棒

6.5.檢索字符串是否以指定字符串開頭(startswith())

startswith()方法用于檢索字符串是否以指定字符串開頭,如果是返回True;反之返回False。其語法結構是:

str.startswith(sub[,start[,end]])

此方法各個參數的含義是:

  1. str: 表示原字符串
  2. sub: 要檢索的子串‘
  3. start: 指定檢索開始的起始位置索引,如果不指定,則默認從頭開始檢索
  4. end: 指定檢索的結束位置索引,如果不指定,則默認一直檢索到結束。
    舉個栗子說明下:
str1 = "https://feige.blog.csdn.net/"print("是否是以https開頭", str1.startswith("https"))print("是否是以feige開頭", str1.startswith("feige", 0, 20))

運行結果是:

是否是以https開頭 True是否是以feige開頭 False

6.6.檢索字符串是否以指定字符串結尾(endswith())

endswith()方法用于檢索字符串是否以指定字符串結尾,如果是則返回True,反之則返回False。其語法結構是:

str.endswith(sub[,start[,end]])

此方法各個參數的含義與startswith方法相同,再此就不在贅述了。

6.7.字符串大小寫轉換(3種)函數及用法

Python中提供了3種方法用于字符串大小寫轉換

  1. title()方法用于將字符串中每個單詞的首字母轉成大寫,其他字母全部轉為小寫。轉換完成后,此方法會返回轉換得到的字符串。如果字符串中沒有需要被轉換的字符,此方法會將字符串原封不動地返回。其語法結構是str.title()
  2. lower()用于將字符串中的所有大寫字母轉換成小寫字母,轉換完成后,該方法會返回新得到的子串。如果字符串中原本就都是小寫字母,則該方法會返回原字符串。 其語法結構是str.lower()
  3. upper()用于將字符串中的所有小寫字母轉換成大寫字母,如果轉換成功,則返回新字符串;反之,則返回原字符串。其語法結構是:str.upper()
    舉例說明下吧:
str = "feiGe勇敢飛"print("首字母大寫", str.title())print("全部小寫", str.lower())print("全部大寫", str.upper())

運行結果是:

首字母大寫 Feige勇敢飛全部小寫 feige勇敢飛全部大寫 FEIGE勇敢飛

6.8.去除字符串中空格(刪除特殊字符)的3種方法

Python中提供了三種方法去除字符串中空格(刪除特殊字符)的3種方法,這里的特殊字符,指的是指表符(/t)、回車符(/r),換行符(/n)等。

  1. strip(): 刪除字符串前后(左右兩側)的空格或特殊字符
  2. lstrip():刪除字符串前面(左邊)的空格或特殊字符
  3. rstrip():刪除字符串后面(右邊)的空格或特殊字符
    Python的str是不可變的,因此這三個方法只是返回字符串前面或者后面空白被刪除之后的副本,并不會改變字符串本身
    舉個例子說明下:
str = "/n碼農飛哥勇敢飛 "print("去除前后空格(特殊字符串)", str.strip())print("去除左邊空格(特殊字符串)", str.lstrip())print("去除右邊空格(特殊字符串)", str.rstrip())

運行結果是:

去除前后空格(特殊字符串) 碼農飛哥勇敢飛去除左邊空格(特殊字符串) 碼農飛哥勇敢飛 去除右邊空格(特殊字符串) 碼農飛哥勇敢飛

6.9.encode()和decode()方法:字符串編碼轉換

最早的字符串編碼是ASCll編碼,它僅僅對10個數字,26個大小寫英文字母以及一些特殊字符進行了編碼,ASCII碼最多只能表示256個字符,每個字符只需要占用1個字節。為了兼容各國的文字,相繼出現了GBK,GB2312,UTF-8編碼等,UTF-8是國際通用的編碼格式,它包含了全世界所有國家需要用到的字符,其規定英文字符占用1個字節,中文字符占用3個字節。

  1. encode() 方法為字符串類型(str)提供的方法,用于將 str 類型轉換成 bytes 類型,這個過程也稱為“編碼”。其語法結構是:str.encode([encoding="utf-8"][,errors="strict"])
  2. 將bytes類型的二進制數據轉換成str類型。這個過程也稱為"解碼",其語法結構是:bytes.decode([encoding="utf-8"][,errors="strict"])
    舉個例子說明下:
str = "碼農飛哥加油"bytes = str.encode()print("編碼", bytes)print("解碼", bytes.decode())

運行結果是:

編碼 b"/xe7/xa0/x81/xe5/x86/x9c/xe9/xa3/x9e/xe5/x93/xa5/xe5/x8a/xa0/xe6/xb2/xb9"解碼 碼農飛哥加油

默認的編碼格式是UTF-8,編碼和解碼的格式要相同,不然會解碼失敗。

6.9.序列化和反序列化

在實際工作中我們經常要將一個數據對象序列化成字符串,也會將一個字符串反序列化成一個數據對象。Python自帶的序列化模塊是json模塊。

  1. json.dumps() 方法是將Python對象轉成字符串
  2. json.loads()方法是將已編碼的 JSON 字符串解碼為 Python 對象
    舉個例子說明下:
import jsondict = {"學號": 1001, "name": "張三", "score": [{"語文": 90, "數學": 100}]}str = json.dumps(dict,ensure_ascii=False)print("序列化成字符串", str, type(str))dict2 = json.loads(str)print("反序列化成對象", dict2, type(dict2))

運行結果是:

序列化成字符串 {"name": "張三", "score": [{"數學": 100, "語文": 90}], "學號": 1001} 反序列化成對象 {"name": "張三", "score": [{"數學": 100, "語文": 90}], "學號": 1001} 

詳細內容可以查看
【Python從入門到精通】(五)Python內置的數據類型-序列和字符串,沒有女友,不是保姆,只有拿來就能用的干貨
【Python從入門到精通】(九)Python中字符串的各種騷操作你已經爛熟于心了么?【收藏下來就挺好的】

7. 列表&元組

7.1.列表(list)的介紹

列表作為Python序列類型中的一種,其也是用于存儲多個元素的一塊內存空間,這些元素按照一定的順序排列。其數據結構是:

[element1, element2, element3, ..., elementn]

element1~elementn表示列表中的元素,元素的數據格式沒有限制,只要是Python支持的數據格式都可以往里面方。同時因為列表支持自動擴容,所以它可變序列,即可以動態的修改列表,即可以修改,新增,刪除列表元素。看個爽圖吧!

7.2.列表的操作

首先介紹的是對列表的操作:包括列表的創建,列表的刪除等!其中創建一個列表的方式有兩種:
第一種方式:
通過[]包裹列表中的元素,每個元素之間通過逗號,分割。元素類型不限并且同一列表中的每個元素的類型可以不相同,但是不建議這樣做,因為如果每個元素的數據類型都不同的話則非常不方便對列表進行遍歷解析。所以建議一個列表只存同一種類型的元素

   list=[element1, element2, element3, ..., elementn]

例如:test_list = ["測試", 2, ["碼農飛哥", "小偉"], (12, 23)]
PS: 空列表的定義是list=[]
第二種方式:
通過list(iterable)函數來創建列表,list函數是Python內置的函數。該函數傳入的參數必須是可迭代的序列,比如字符串,列表,元組等等,如果iterable傳入為空,則會創建一個空的列表。iterable不能只傳一個數字。

classmates1 = list("碼農飛哥")print(classmates1)

生成的列表是:["碼", "農", "飛", "哥"]

7.3. 向列表中新增元素

向列表中新增元素的方法有四種,分別是:
第一種: 使用**+運算符將多個列表**連接起來。相當于在第一個列表的末尾添加上另一個列表。其語法格式是listname1+listname2

name_list = ["碼農飛哥", "小偉", "小小偉"]name_list2 = ["python", "java"]print(name_list + name_list2)

輸出結果是:["碼農飛哥", "小偉", "小小偉", "python", "java"],可以看出將name_list2中的每個元素都添加到了name_list的末尾。
第二種:使用append()方法添加元素
append()方法用于向列表末尾添加元素,其語法格式是:listname.append(p_object)其中listname表示要添加元素的列表,p_object表示要添加到列表末尾的元素,可以是字符串,數字,也可以是一個序列。舉個栗子:

name_list.append("Adam")print(name_list)name_list.append(["test", "test1"])print(name_list)

運行結果是:

["碼農飛哥", "小偉", "小小偉", "Adam"]["碼農飛哥", "小偉", "小小偉", "Adam", ["test", "test1"]]

可以看出待添加的元素都成功的添加到了原列表的末尾處。并且當添加的元素是一個序列時,則會將該序列當成一個整體。
第三種:使用extend()方法
extend()方法跟append()方法的用法相同,同樣是向列表末尾添加元素。元素的類型只需要Python支持的數據類型即可。不過與append()方法不同的是,當添加的元素是序列

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/122579.html

相關文章

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<