[Python從零到壹] 一.為什么我們要學Python及基礎語法詳解(python從0到1)
歡迎大家來到“Python從零到壹”,在這里我將分享約200篇Python系列文章,包括基礎語法10篇、網絡爬蟲30篇、可視化分析10篇、機器學習20篇、大數據分析20篇、圖像識別30篇、人工智能40篇、Python安全20篇、其他技巧10篇。您的關注、和轉發就是對秀璋最大的支持,知識無價人有情,希望我們都能在人生路上開心快樂、共同成長。
https://blog.csdn.net/Eastmount
https://blog.csdn.net/xufive
一.初聊Python
二.Python簡介及安裝入門
1.Python簡介
2.安裝流程
三.基礎語法
1.縮進與注釋
2.變量與常量
3.輸入與輸出
4.賦值與表達式
四.數據類型
1.數字類型
2.字符串類型
3.列表類型
4.元組類型
5.字典類型
五.字符串操作
六.總結
一.初聊Python
為什么要學習Python?
在學習Python之前,你不要擔心自己沒基礎或“腦子笨”,我始終認為,只要你想學并為之努力,就能學好,就能用Python去做很多事情。在這個喧囂的時代,很多技術或概念會不斷興起,我希望你能沉下心來去學習,不要急于求成,一步一個腳印。當你把某個技術學好、學精后,還是能做一些事情的,甚至能找到喜歡的工作或完成實踐項目。
程序語言沒有最好,只有最適合。作為一名初學者,我非常推薦你學習Python,為啥?一方面是因為它具有語法清晰、代碼友好、易讀性高的特點,同時Python擁有強大的第三方庫函數,包括網絡爬取、數據分析、可視化、人工智能等;另一方面Python既是一門解釋性編程語言,又是面向對象的語言,其操作性和可移植性高,被廣泛應用于數據挖掘、信息采集、人工智能、網絡安全、自動化測試等領域。甚至,很多小學生、高中課程和計算機二級也都陸續增加了Python。
所以,從來沒有一種編程語言可以像Python這樣同時扎根在這么多領域,并且Python支持跨平臺操作,也支持開源,擁有強大的第三方庫。尤其隨著人工智能的持續火熱,Python在IEEE近幾年發布的最熱門語言中多次排名第一,越來越多的程序愛好者、科技關注者也都開始學習Python。
Python學習建議
在Python學習過程中,不要覺得你的底子薄或者之前沒接觸過,就想放棄,很多人還沒起跑就選擇退賽。我想,只要沉下心來,肯下功夫,就能學好。在學習過程中,一定要去寫代碼、寫代碼、寫代碼,只寫真正動手去實踐,才能慢慢積累。
同時,編寫代碼過程中出錯也是家常便飯,我現在寫Python代碼每天不出點錯,心里都躁得慌,所以遇到錯誤,學會百度、谷歌去解決真的非常重要,它也是你學習能力的一種提升,實在找不到錯誤,可以去開源論壇、社區、學習群里提問,也歡迎來公眾號或CSDN找我。
接下來我給出許老師推薦的Python程序員成長路線圖,包括:基礎語法–>語感訓練–>課題練習–>分方向繼續學習–>中級程序員–>拓展深度和廣度–>高級程序員。
這里,給出我學習Python的一些歷程和技巧。我最早接觸Python是2013年,主要是因為研究生方向是自然語言處理,需要通過Python抓取數據并進行分析,所以就選擇了它。那些年Python的資料很少,也沒這么火熱,但也一直堅持著,具體建議如下:
先把環境安裝,開始編寫第一個Python代碼,別再去等明天了
學習過程中切勿看視頻(書籍),喝著奶茶,就是一天,一定要動手敲代碼啊
通常先了解Python基礎語法,推薦MOOC北理工嵩天老師的視頻和runoob語法,當然B站和CSDN上也有很多免費資料,大家可以去選擇
– https://www.icourse163.org/course/BIT-268001
– https://www.runoob.com/python/python-intro.html
基礎語法大致掌握后可以嘗試學習Python網絡爬蟲,因為不論是數據分析、機器學習、滲透測試等,都會涉及到爬蟲技術,只有擁有自己的語料,才能處理更多問題。 爬蟲方面不用太深入,掌握兩門技術即可
Urllib、Requests、BeautifulSoup、XPath、Selenium、Scrapy、分布式爬蟲
接下來學習Python可視化分析(詞云)、微信操作、郵箱發送等功能,這些知識能有效提高你的編程興趣
人工智能方向:包括機器學習(回歸 | 聚類 | 分類)、深度學習(TensorFlow | Keras | Pytorch)學習,建議結合實際科研或項目進行深入研究
圖像識別方向:包括圖像處理、OpenCV、模式識別、機器學習、深度學習、目標檢測學習,也建議結合實際科研或項目進行深入研究
其他方向學習:Web網站開發、網絡安全、自動化測試、應用程序編寫
學習路上沒有捷徑,只有堅持,但你卻能通過Python不斷提升你的學習興趣,做一些喜歡的事,喜歡上這門語言。最后給出當年大三學習Python時激勵自己的話:
If not now, when? If not me, who?
如果不是為了自己奮斗,又是為誰;如果不是現在奮斗,什么時候開始呢?
二.Python簡介及安裝入門
1.Python簡介
Python是荷蘭人Guido van Rossum在1989年開發的一種腳本新解釋語言,它是一種面向對象的解釋型計算機程序設計語言。Python是純粹的自由軟件,其語法簡潔清晰,特色之一是強制使用空白符(White Space)作為語句縮進。由于Python具有豐富和強大的庫,常被昵稱為膠水語言。
Python作為熱門語言,具有以下特點:
語法清晰,代碼友好,易讀性好
應用廣泛,具有大量的第三方庫支持,尤其是機器學習、人工智能相關庫
Python可移植性強,易于操作各種存儲數據的文本文件和數據庫
Python是一門面向對象語言,支持開源思想
能在多種功能、多種平臺上撰寫腳本及快速開發
我們需要的是專注于python本身,而不是被工具使用問題所困擾。君不見,知乎上關于Pycharm和Vscode的使用說明、常見問題的解決方案,多得幾乎超過了討論Python本身
很多學生由于學校電腦的限制,安裝Python官方提供的輕量型工具學習更方便
手工運行代碼,可以更直觀、更深刻地了解腳本的解釋執行過程
手工調試代碼,有助于代碼優化,提高代碼把控能力
可以更好地使用pip安裝和管理第三方模塊
Anaconda Python
PyCharm
Cpython
ActivePython
PyPy
Jython
Spyder
2.安裝流程
如果您選擇Windows系統下編程,則您可以在Python官網Downloads頁面中下載編程軟件,其官網網址為“http://www.python.org”。同時,如果您是在Linux系統下編寫Python代碼,則您可以直接在Linux系統中內置安裝使用Python解釋器。
安裝時不要忘記勾選最下面的兩個復選框,否則會給后續的模塊安裝帶來一些麻煩,推薦使用默認方式安裝。
安裝成功后,需要在“開始”菜單中選中“程序”,找到安裝成功的Python軟件,如圖所示,打開解釋器編寫Python代碼。
打開“Python 3.6(64-bit)”命令行軟件,輸入第一行Python代碼“I love python”,輸出結果如下圖所示。解釋型語言的優勢,就是可以寫一句執行一句,想到哪兒寫到哪兒,不必像編譯型語言那樣得把程序全部寫完,編譯成功后才能運行。我特別喜歡使用python的IDLE,甚至拿它當計算器用。
但是如果你需要編寫大段代碼或自定義函數時,Python命令行肯定不是一個很好的選擇,此時讀者可以點擊“IDLE”,運行Python的集成開發環境(Python Integrated Development Environment,IDLE),你可以用它來創建或打開.py腳本文件,可以編輯、運行和調試,打開如下圖所示。
接著可以點擊“File”中“New File”新建文件,并另存為py文件,如“test01.py”,然后點擊運行“Run Module F5”按鈕,運行Python腳本文件。
所有Python文件將以.py為擴展名。將源代碼寫在test01.py文件中運行。
很多時候,我們用IDLE驗證代碼的寫法是否正確,查看模塊是否安裝成功以及版本號。IDLE支持tab鍵自動補齊,經常用這個功能查看某個對象的方法和屬性。小技巧:
tab鍵自動補齊
光標移動到執行過的語句上敲擊回車,可以重復這個命令
下劃線(_)可以獲取最后一次執行結果
三.基礎語法
前面已經成功安裝了Python軟件,接下來我們開始講解Python的基礎語法,包括縮進與注釋、變量與常量、輸入與輸出、賦值與表達式等。
1.縮進與注釋
縮進
不同于其他語言,在Python中通過縮進來標明代碼的層次關系。1個縮進等于4個空格,它是Python語言中標明程序框架的唯一手段。
在Python中,同一個語句塊中每條語句都是縮進的,并且縮進量相同,當回退或已經閉合語句塊時,需要回退至上一層的縮進量,表示當前塊結束。下面是C語言和Python語法的對比,其中C語言用大括號來區分層次關系,Python通過縮進來區分。
縮進的空白數量是可變的,但是所有代碼塊語句必須包含相同的縮進空白數量,這個必須嚴格執行。
Python引號
Python 可以使用引號( ’ )、雙引號( " )、三引號( ‘’’ 或 “”" ) 來表示字符串,引號的開始與結束必須是相同類型的。其中三引號可以由多行組成,編寫多行文本的快捷語法,常用于文檔字符串,在文件的特定地點,被當做注釋。
word = 'eastmount' sentence = "娜璋AI安全之家" paragraph = """這是一個段落。 包含了多個語句"""
注釋
注釋是用于說明代碼信息的,注釋代碼是不執行的。Python注釋主要包括兩種:
行注釋:采用#開頭進行單行注釋,如“#定義一個變量”。
#!/usr/bin/python # -*- coding: UTF-8 -*- # 文件名:test01.py # 第一個注釋 print ("Hello World!") # 第二個注釋
塊注釋:多行說明的注釋采用’’'或"""開頭和結尾,比如使用Python集成開發環境Spyder新建文件時,通常有一段注釋說明。
""" Created on Sat Sep 16 10:34:31 2017 @author: yxz """
多行語句
Python語句中一般以新行作為語句的結束符。但是我們可以使用斜杠( \)將一行的語句分為多行顯示,如下所示:
total = item_one + \ item_two + \ item_three
語句中包含 [], {} 或 () 括號就不需要使用多行連接符。如下實例:
days = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday']
2.變量與常量
變量
變量是程序中值可以發生改變的元素,是內存中命名的存儲位置,變量代表或引用某值的名字,比如希望用N代表3,name代表“hello”等。其命名規則如下:
變量名是由大小寫字符、數字和下劃線(_)組合而成的。
變量名的第一個字符必須是字母或下劃線(_)。
Python中的變量是區分大小寫的,比如“TEST”和“test”是兩個變量。
在Python中對變量進行賦值時,使用單引號和雙引號是一樣的效果。
注意,Python中已經被使用的一些關鍵詞不能用于聲明變量,關鍵詞表如下:
['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 'try', 'while', 'with', 'yield']
==不同于C/C++/Java等語言,Python中的變量不需要聲明,就可以直接使用賦值運算符對其進行賦值操作,根據所賦的值來決定其數據類型,下圖為未聲明輸出其類型。==
常量
常量是指程序中值不發生改變的元素,一旦初始化后就不能對其修改的固定值,它是內存中用來保存固定值的單元。由于某種原因,Python并未提供如C/C++/Java一樣的const修飾符,換言之,python并沒有定義常量的關鍵字。但是Python可以使用對象的方法來創建常量,比如通過const.py文件,將const類注冊到sys.modules全局字典中
3.輸入與輸出
輸出
輸出使用print()函數實現,包括輸出字符信息或變量,在Python2中,輸出包括兩種格式:print a或print(a),表示輸出變量a的值。但Python3不再支持空格輸出,如果您之前使用的是Python2,我們需要注意這些區別。
如果需要輸出多個變量,則使用采用逗號連接,如print(a,b,c)。簡單示例如下圖所示,print()函數可以輸出各種類型的變量。
print(a,b,c)
同時,Python支持格式化輸出數據,需要調用format()函數實現,其輸出格式為:print(format(val,format_modifier)),其中參數val表示值、format_modifier表示格式字,示例如下圖所示。
print(format(val,format_modifier))
其中“6.2f”表示輸出6位數值的浮點數,小數點后精確到兩位,輸出值的最后一位采用四舍五入方式計算,最終輸出的結果為“12.35”。“.2%”表示輸出百分數,保留兩位有效數字,其輸出結果為“34.56%”。如果想輸出整數直接使用“.0f”即可。
輸入
Python輸入主要包括input()和raw_input()兩個函數。
input()
input()函數從控制臺獲取用戶輸入的值,格式為:<變量>=input(<提示性文字>)。獲取的輸入結果為用戶輸入的字符串或值,并保存在變量中。輸入字符串和整數實例如下,其中type()函數用于查找變量的類型。
>>> str1 = input("input:") input:"I am a teacher" >>> print(str1) I am a teacher >>> age = input("input:") input:25 >>> print(age,type(age)) 25
raw_input()
raw_input()函數是另一個輸入操作,并返回string字符串。輸入以換行符結束,通過help(raw_input)可以查找幫助,常見格式為:s = raw_input([prompt]),參數[prompt]可選,用于提示用戶輸入。示例代碼如下,第一段代碼輸入“hello world”,第二段代碼輸入“25”。
>>> str1 = raw_input("input:") input:hello world >>> print(str1) hello world >>> age = raw_input("input:") input:25 >>> print(age,type(age)) 25
==注意,raw_input是2.x版本的輸入函數,在新版本環境下會報錯,該函數未定義。在3.x版本中應該用input()代替raw_input()。==
4.賦值與表達式
賦值
Python中的賦值語句是使用等號(=)給變量直接賦值,如“a=10”。如果需要同時給多個變量進行賦值,表達式如下:
<變量1>,<變量2>,…,<變量n> = <表達式1>,<表達式2>,…,<表達式n>
它先運算右側N個表達式,然后同時將表達式結果賦給左側變量。舉例如下:
>>> a,b,c = 10,20,(10+20)/2 >>> print(a,b,c) 10 20 15.0 >>>
表達式
表達式是程序中產生或計算新數據值的一行代碼,賦值表達式如a=10,通常由變量、常量或操作符號產生表達式。定義表達式注意一下幾點:
使用變量之前必須對其賦值,使用賦值表達式對其賦值。
表達式也需要遵循句首縮進規律,且不能改變其空格數量。
表達式中可以適量增加空格,使程序可讀性更高,但空格不能分割變量的命名方式,比如“a = b + c”,在運算符之間適當增加空格。
四.數據類型
1.數字類型
Python常見的數字類型包括整數類型、浮點數類型、復數類型。
整數類型:對應的數學中的整數,其返回類型為int型,如10、25等;long為長整型,也可以代表八進制和十六進制。
浮點數類型:帶有小數點的數字,返回類型為float型,如3.14、2.1e2等。
復數類型:Python復數分為兩部分,形如a + bj,其中a為實部,b為虛部,返回類型為complex,例如-12.3 + 8j。復數可以通過.real獲取實部數據,.imag獲取虛部數據。
>>> z = -12.3 + 8j >>> print(z, type(z)) (-12.3+8j)
注意:Python中數字類型是可以相互轉換的,其中浮點數調用int()函數轉換為整數,如int(3.14)返回結果3,整數調用float()轉換為小數,浮點數調用complex()函數轉換為復數。
2.字符串類型
字符串類型在Python中是指需要用單引號或雙引號括起來的一個字符或字符串。該類型調用type(‘Python’)返回的結果是str類型。一般記為:
s=“a1a2···an”(n>=0)
字符串表示一個字符的序列,其最左端表示字符串的起始位置,下標為0,然后依次遞增。字符串對應的編號稱為“索引”,比如str1=‘Python’,則str1[0]獲取第一個字符,即“P”字母,并且字符串提供了一些操作和函數共用戶使用,比如len(str1)計算字符串長度,其返回結果為6。
counter = 100 #賦值整型變量 miles = 1000.0 #浮點型 name = "Eastmount" #字符串
python的字串列表有兩種取值順序:
從左到右索引默認0開始的,最大范圍是字符串長度少1
從右到左索引默認-1開始的,最大范圍是字符串開頭
如果你要實現從字符串中獲取一段子字符串的話,可以使用 [頭下標:尾下標] 來截取相應的字符串,其中下標是從0開始算起,可以是正數或負數,下標可以為空表示取到頭或尾。[頭下標:尾下標] 獲取的子字符串包含頭下標的字符,但不包含尾下標的字符。比如:
>>> s = 'abcdef' >>> s[1:5] 'bcde'
3.列表類型
列表是Python中非常重要的一個數據類型,它是在中括號([ ])中用逗號分隔的元素集合,列表中的元素可以通過索引進行單個訪問,并且每個元素之間是有序的。例如:
>>> list1 = [1, 2, 3, 4, 5] >>> print(list1) [1, 2, 3, 4, 5] >>> print(list1[0]) 1 >>> print(type(list1))
列表可以完成大多數集合類的數據結構實現。它支持字符、數字、字符串甚至可以包含列表(即嵌套)。列表用 [ ] 標識,是Python最通用的復合數據類型。
列表中值的切割也可以用到變量 [頭下標:尾下標] ,就可以截取相應的列表,從左到右索引默認0開始,從右到左索引默認-1開始,下標可以為空表示取到頭或尾。(下圖參考runoob網站,推薦大家去學習)
列表中的每個元素可以定義不同的數據類型,如list1 = [1, 1.3, ‘teacher’]。其操作方法和字符串類似,如列表采用加號(+)拼接、采用乘號(*)重復顯示、也可以切片獲取列表中的子元素,示例如下:
>>> list1 = [1, 2, 3, 4, 5] >>> list2 = [6, 7, 8] >>> print(list1+list2) [1, 2, 3, 4, 5, 6, 7, 8] >>> print(list2*3) [6, 7, 8, 6, 7, 8, 6, 7, 8] >>> print(list1[2:4]) [3, 4] >>>
列表中的常見方法如下表所示,假設存在列表list1 = [4, 2, 1, 5, 3]。
4.元組類型
元組是和列表類似的一種數據類型,它采用小括號定義一個或多個元素的集合,其返回類型為tuple。示例如下:
>>> t1 = (12, 34, 'Python') >>> print(t1) (12, 34, 'Python') >>> print(type(t1))
注意:可以定義空的元組,如t2=(),元組可以通過索引訪問,比如上述代碼t1[2]訪問第3個元素,即“Python”。當元組定義后就不能進行更改,也不能刪除,這不同于列表,由于元組的不可變特性,它的代碼更加安全。
以下是元組無效的,因為元組是不允許更新的,而列表是允許更新的。錯誤提示:TypeError: ‘tuple’ object does not support item assignment,在編程構成中出錯或BUG是非常正常的,莫慌,解決掉它。
# -*- coding: UTF-8 -*- tuple = ( 'runoob', 786 , 2.23, 'john', 70.2 ) list = [ 'runoob', 786 , 2.23, 'john', 70.2 ] tuple[2] = 1000 # 元組中是非法應用 list[2] = 1000 # 列表中是合法應用
5.字典類型
字典(dictionary)是除列表以外python之中最靈活的內置數據結構類型。列表是有序的對象集合,字典是無序的對象集合。兩者之間的區別在于:字典當中的元素是通過鍵來存取的,而不是通過偏移存取。
字典是針對非序列集合而提供的,字典用"{ }"標識,由鍵值對(< Key > < Value >)組成,字典是鍵值對的集合,其類型為dict。鍵是字典的索引,一個鍵對應著一個值,通過鍵值可查找字典中的信息,這個過程叫做映射。
示例如下,通過鍵值對可以獲取“4”對應的“Guiyang”。
>>> dic = {"1":"Beijing","2":"Shanghai","3":"Chengdu","4":"Guiyang"} >>> print(dic) {'1': 'Beijing', '3': 'Chengdu', '2': 'Shanghai', '4': 'Guiyang'} >>> print(dic["4"]) Guiyang
字典與列表主要存在幾個區別:
列表中的元素是順序排列的,字典中的數據是無序排列的。
它們的映射方式不同,列表通過地址映射到值,字典通過鍵值對映射到值。
列表只能通過數字下標或索引訪問,字典可以用各種對象類型作為鍵訪問。
字典鍵值對靈活應用非常重要,尤其是網絡爬蟲Json格式解析,后面我們實際案例中會用到。下面給出一段簡單代碼,重點是keys()和values()用法。
dict = {} dict['one'] = "This is one" dict[2] = "This is two" tinydict = {'name': 'runoob','code':6734, 'dept': 'sales'} print(dict['one']) #輸出鍵為one的值 print(dict[2]) #輸出鍵為2的值 print(tinydict) #輸出完整字典 print(tinydict.keys()) #輸出所有鍵 print(tinydict.values()) #輸出所有值
輸出結果如下圖所示:
五.字符串操作
字符串是指有序的字符序列集合,用單引號、雙引號、三重(單雙均可)引號引起來,其中使用三重引號括起來的字符串變量可以用來定義換行的字符串。比如:
str1 = 'hello world' str2 = "hello world" str3 = """hello world"""
字符串支持格式化輸出,需要引入操作符百分號(%)實現,在百分號的左側放置一個格式化字符串,右側放置期望的格式化值,也可是元組和字典。例如:
>>> print("Hi!My Name is %s,I am %d years old and %f pounds heavy."%("YXZ", 26, 55.5)) Hi!My Name is YXZ,I am 26 years old and 55.500000 pounds heavy. >>>
依次輸出字符串(%s)、整數(%d)、浮點數(%s)三個值。同時字符串支持各種各樣的操作,尤其是處理文本內容時,需要使用這些方法及函數,下面講解常用函數。
基礎操作
字符串的基本操作包括求長度、拼接、重復操作、索引、切片等等。假設str1字符串為“hello”,str2字符串為“world”,則len(str1)計算字符串str1長度為5;str1+str2拼接后的結果為“helloworld”;str1*3字符串重復結果為“hellohellohello”。
字符串切片定義為s[i:j:step],其中step表示切片的方向,默認起點從0開始,終點不寫切到最后。例如:
str1 = 'abcdefghijklmn' print(str1[3:6]) # def
輸出結果為“def”,從第3個值開始獲取,第6個值為終點且不獲取,即str1[0]=‘a’,str1[3]=‘d’,str1[4]=‘e’,str1[5]=‘f’。同樣,如果增加step參數且為負數,表示從反向切片。正方向第一個a索引下標值為0,最后一個n索引下標值為-1,結果為“nmlk”。
str1 = 'abcdefghijklmn' print(str1[-1:-5:-1]) # nmlk
find()函數
用法:從字符串中查找子字符串,返回值為子串所在位置的最左端索引。如果沒有找到則返回-1,擴展的rfind()方法表示從右往左方向查找,常用于正則表達式爬取數據。
示例:獲取字符串“def”的位置,位于第3個位置(從0開始計數)。
str1 = 'abcdefghijklmn' num = str1.find('def') print num # 3
split()函數
用法:字符串分割函數,將字符串分割成序列,返回分割后的字符串序列。如果不提供分割符,程序將會把所有空格作為分隔符。
示例:默認按照空格分割字符串,也可以設置如“+”分割字符串,該方法在字符串分割、IP提取、URL后綴提取常用。
strip()函數
用法:該函數用于去除開頭和結尾的空格字符(不包含字符串內部的空格),同時S.strip([chars])可去除指定字符。擴展的函數lstrip()去除字符串開始(最左邊)的所有空格,rstrip()去除字符串尾部(最右邊)的所有空格。
示例:去除字符串前后兩端的空格。
>>> str1 = " I am a teacher " >>> print(str1.strip()) I am a teacher >>>
join()函數
用法:通過某個字符拼接序列中的字符串元素,隊列中元素必須是字符串,返回一個拼接好的字符串函數,可以認為join()函數是split()函數的逆方法。
示例:采用空格(’ ')拼接字符串[‘I’,‘am’,‘a’,‘teacher’],代碼及輸出結果如下。
>>> num = ['I','am','a','teacher'] >>> sep = ' ' >>> str1 = sep.join(num) >>> print str1 I am a teacher >>>
六.總結
貴州縱美路迢迢,
未付勞心此一遭。
收得破書三四本,
也堪將去教爾曹。
再次感謝您的關注,第一次在華為云社區分享知識,初來乍到,還請多多指教。
遺憾,讓我們懂得完美。
逝去,讓我們不斷前行。
她夜色中的身姿是那么的美。
(By:娜璋之家 Eastmount 2021-05-30 夜于武漢)
參考文獻如下:
[3] 許老師博客:https://blog.csdn.net/xufive/article/details/102993570
[4] https://www.runoob.com/python
Python
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。