




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
單元一Python環境搭建3安裝Python目錄Python交互模式2Python版本概述與Python安裝文件的下載1IPython3和PyCharm概述4項目實戰5單元小結6Python簡介Python語言是GuidovanRossum1989年底開始研制的,第一個版本發行于1991年,比Java早4年。Python推出不久就迅速得到了各行業人士的青睞,經過20多年的發展,Python已經滲透到計算機科學與技術、統計分析、移動終端開發、科學計算可視化、逆向工程與軟件分析、圖形圖像處理、人工智能、游戲設計與策劃、網站開發、數據爬取與大數據處理、密碼學、系統運縱、音樂處理、計算機輔助教育、醫藥輔助設計、天文信息處理、化學、生物、電子電路設計等幾乎所有的專業和領域,在黑客領域更是多年來一直擁有霸主地位。Python曾連續多月在TIOBE網站編程語言排行榜中穩居第一,可見其受歡迎的程度。2017年12月排名第4,可見其發展之迅速。Python是一種跨平臺、開源、免費的解釋型高級動態編程語言。它支持命令式編程、面向對象編程、函數式編程,包含了完善且易于理解的標準庫,還有非常豐富的第三方開源庫,使你能輕松地完成開發任務。Python也許是你學習的第一種與計算機交流的語言工具,掌握了這個工具,你將體會到計算機并不神秘,它是完全聽人指揮的,是永遠為人服務的一種工具。Python版本Python2.XPython3.X1.Python2.X和Pyrhon3.X不兼容,并且官網已經宣布不再更新python22.初學者建議首選Python3.X下載Python安裝文件(linux環境)12Downloads→Sourcecode→DownloadGzippedsourcetarball3查看下載Python-3.12.1.tgz文件的存放位置下載Python安裝文件(windows環境)12Downloads→Python3.12.1→選擇下載文件存放的文件夾3查看python-3.12.1-amd64.exe3安裝Python目錄Python交互模式2Python版本概述與Python安裝文件的下載1IPython3和PyCharm概述4項目實戰5單元小結6Python-3.12.1的安裝(基本過程)安裝makeinstall編譯make執行腳本配置文件./configure進入解壓目錄cd/usr/local/src/Python-3.12.1/lstar命令解包常用參數:-x:從tar包中把文件提取出來,即解壓;-z:表示tgz包是被gzip壓縮過的,所以解壓時需要用gunzip解壓;-v:顯示詳細信息,即解壓的過程;-fxxx.tgz:指定被處理的文件是xxx.tgz,這個參數必須放最后。tar-xvzfPython-3.12.1.tgz復制安裝文件到/usr/local/src目錄下cp/home/ding/Downloads/Python-3.12.1.tgz/usr/local/src(1)root權限;(2)linux的版本Python-3.12.1的安裝(復雜過程)(1)復制安裝文件到/home目錄下cp/home/ding/Downloads/Python-3.12.1.tgz/usr/local/src(2)解壓tar-xvzfPython-3.12.1.tgz(3)更新Ubuntu20.04.6系統aptupdateaptupgrade(4)安裝開發工具aptinstallbuild-essentialPython-3.12.1的安裝(復雜過程)(5)安裝依賴包aptinstallgccaptinstallperl*tk-devzlib1g-devlibbz2-devlibdbi-devsqliteuuid-devlibffi-devaptinstallbzip2libgdbm-devlibncurses5-devliblzma-devsqlite3aptinstalllibsqlite3-devlibssl-devtcl8.6-devtk8.6-devlibreadline-devPython-3.12.1的安裝(復雜過程)(6)安裝openssl3.1.4設置下載文件存放目錄cd/home/ding/Downloads下載openssl3.1.4安裝文件wget/source/openssl-3.1.4.tar.gz解壓tar-xzvfopenssl-3.1.4.tar.gzcdopenssl-3.1.4配置安裝路徑等./config--prefix=/usr/local/openssl--openssldir=/usr/local/openssl--sharedzlib編譯并安裝opensslmake&&makeinstallPython-3.12.1的安裝(復雜過程)配置openssl的共享庫,使openssl二進制文件從/usr/local/openssl/lib目錄中加載庫文件。創建新的配置文件openssl-3.1.4.conf,如下,并輸入“/usr/local/openssl/lib64”cd/etc/ld.so.conf.d/vimopenssl-3.1.4.conf重載動態連接庫ldconfig-v備份舊的軟連接mv/bin/openssl/bin/openssl.bakmv/usr/include/openssl/usr/include/openssl.bakPython-3.12.1的安裝(復雜過程)創建新的軟連接ln-s/usr/local/openssl/bin/openssl/usr/bin/opensslln-s/usr/local/openssl/include/openssl/usr/include/opensslln-s/usr/local/openssl/bin/openssl/usr/local/bin/opensslln-s/usr/local/openssl/lib64/libcrypto.so.3/lib/libcrypto.so.3ln-s/usr/local/openssl/lib64/libcrypto.so.3/lib/libcrypto.so.6ln-s/usr/local/openssl/lib64/libssl.so.3/usr/lib64/libssl.so.3ln-s/usr/local/openssl/lib64/libcrypto.so.3/usr/lib64/libcrypto.so.3ln-s/usr/local/openssl/lib64/libssl.so/usr/lib64/libssl.soln-s/usr/local/openssl/lib64/libcrypto.so/usr/lib64/libcrypto.so修改目錄權限chmod-R755/usr/local/openssl/配置庫文件搜索路徑echo"/usr/local/openssl/lib64">>/etc/ld.so.conf重新配置動態連接器的緩存,-v輸出詳細信息/sbin/ldconfig-v為openssl創建新的環境文件vim/etc/profile.d/openssl.shPython-3.12.1的安裝(復雜過程)將下面的配置信息復制到openssl.sh文件中,然后保存退出#SetOPENSSL_PATHOPENSSL_PATH="/usr/local/openssl/bin"exportOPENSSL_PATHPATH=$PATH:$OPENSSL_PATHexportPATH賦予openssl.sh文件執行權限chmod+x/etc/profile.d/openssl.sh加載openssl環境后檢查PATHbin目錄source/etc/profile.d/openssl.sh復制lib64為libcd/usr/local/opensslcp-rlib64lib查看openssl的版本opensslversionPython-3.12.1的安裝(復雜過程)(7)配置Python安裝路徑cd/usr/local/src/Python-3.12.1./configure-C--with-openssl=/usr/local/openssl--with-openssl-rpath=auto--prefix=/usr/local/python(8)編譯安裝make&&makealtinstall(9)在/usr/bin路徑下創建Python軟鏈接,指向已安裝的Python3.12ln-s/usr/local/python/bin/python3.12/usr/bin/python(10)在/usr/bin路徑下創建pip軟鏈接,指向已安裝的pip3.12ln-s/usr/local/python/bin/pip3.12/usr/bin/pip(11)測試Python3.12安裝結果pythonF整個安裝過程中,需要有root權限。3安裝Python目錄Python交互模式2Python版本概述與Python安裝文件的下載1IPython3和PyCharm概述4項目實戰5單元小結6Python交互模式啟動Python交互模式:python交互模式的使用:>>>print(“helloworld!”)
helloworld!Python提示符3安裝Python目錄Python交互模式2Python版本概述與Python安裝文件的下載1IPython3和PyCharm概述4項目實戰5單元小結6IPythonIPython是一個基于Python的交互式解釋器,提供了強大的編輯和交互功能。它內置了很多有用的功能和函數,提供了代碼自動補全、自動縮進、高亮顯示、shell命令執行等非常有用的特性,可以在任何操作系統上使用。apt-getinstallipython3pip3installipython安裝要求是root權限或IPython的安裝
IPython啟動iPython:ipythoniPython的使用:In[1]:print(“helloworld!”)
helloworld!iPython提示符PyCharm
PyCharm是由JetBrains公司出品的產品,是一種Python集成開發環境(IntegratedDevelopmentEnvironment,IDE)。IDE是用于提供程序開發環境的應用程序,一般包括代碼編輯器、編譯器、調試器和圖形用戶界面,集成了代碼編寫功能、分析功能、編譯功能、debug功能等功能。PyCharm帶有一整套可以幫助用戶在使用Python進行開發時提高效率的工具,如調試、語法高亮、Project管理、代碼跳轉、智能提示、自動完成、單元測試、版本控制等。此外,該IDE提供了一些高級功能用于支持Django框架下的專業Web開發。NSE腳本引擎搜索pycharm選擇PyCharm社區/教育版輸入郵箱和ubuntu帳號PyCharm的安裝Linux環境的安裝PyCharm的安裝22NSE腳本引擎Windows環境的安裝打開:點擊:DeveloperTools找到:PyCharm點擊:Download選擇:.exe(windows)點擊:SHA-256checksum開始下載1234雙擊:下載的安裝文件pycharm-professional-2024.3.2.exePyCharm的安裝23雙擊:下載的安裝文件pycharm-community-2018.1.4.exe打開PyCharm步驟1:PyCharm的使用24步驟2:選擇NewProjectPyCharm的使用25步驟3:新建項目并進行解釋器的設置PyCharm的使用26步驟4:新建Python文件右擊項目名稱,在快捷菜單選擇New,在子菜單中選擇PythonFile,輸入文件名PyCharm的使用27步驟5:代碼輸入及運行初次運行代碼:右擊編輯窗口,選擇“Runpy文件名”命令;以后直接點擊綠色的三角形即可。PyCharm的使用28運行結果窗口3安裝Python目錄Python交互模式2Python版本概述與Python安裝文件的下載1IPython3和PyCharm概述4項目實戰5單元小結6在Ubuntu20.04.6系統中,通過Python的開發環境的安裝與簡單使用,讀者可掌握Python開發環境的安裝方法,熟悉Python交互模式的使用,了解Python腳本文件的運行方法,為后續實踐訓練的順利開展奠定基礎。項目目標項目內容(1)Python3.12.1安裝文件的下載;(2)Python3.12.1的安裝;(3)Python交互模式的使用;(4)Python腳本文件的創建與運行。項目實戰→Python開發環境的安裝與使用實施步驟(1)在
Ubuntu20.04.6系統虛擬機的終端分別輸入【python】和【python3】命令,觀察輸出的結果,并將過程與輸出結果截圖于表1-1項目實施小結中。(2)在Ubuntu20.04.6系統虛擬機中,使用Firefox瀏覽器登錄Python官網http://www.P下載Python-3.12.1.tgz安裝文件。默認下載到“/home/用戶名/Downloads”目錄中。
(3)在Ubuntu20.04.6虛擬機終端安裝Python3.12.1,依次完成以下操作:
①
更新Ubuntu系統。②
安裝開發工具。③
安裝依賴包。④
安裝openssl3.1.4或以上的版本。⑤
解壓安裝文件:tar–vzxfpython-3.12.1.tgz(注意,在當前操作目錄下執行此命令)。⑥
腳本配置:./configure-C--with-openssl=/usr/local/openssl--with-openssl-rpath=auto--prefix=/usr/local/python(注意openssl的安裝路徑)。
項目實戰→Python開發環境的安裝與使用實施步驟⑦
編譯:make。⑧
安裝:makeinstall或makealtinstall。⑨
建立Python3.12的軟連接:ln-s/usr/local/python/bin/python3.12/usr/bin/python(注意:軟連接對應的是python命令,這樣保留了系統自帶的Python3.8對應的python3命令)。⑩
建立pip3.12的軟連接:ln-s/usr/local/python/bin/pip3.12/usr/bin/pip。
測試安裝結果:
執行python命令,則輸出結果如下圖所示,表示安裝成功;
執行pipinstallnumpy命令(可以在安裝時指定鏡像源)安裝第三方庫numpy,在啟動Python后,importnumpy語句正確運行,表示pip命令可以正常使用,如下圖所示。
項目實戰→Python開發環境的安裝與使用實施步驟
(4)Python交互模式的使用。
(5)腳本文件的創建與執行。
hello.py文件內容項目實戰→Python開發環境的安裝與使用請填寫表1-1,項目實施小結。項目小結實戰項目名稱
小組成員
日期
訓練環境
項目內容與結果步驟內
容1
2
……
小結知識方面知道了XXX,了解了XX能力方面會做XX,能解決XX問題評價自我評價
教師評價
小結人
表1-1項目實施小結思考
:成功安裝Python3.12后是不是很有成就感?請總結一下哪些地方得到了提升。另請查閱資料,了解Python3.8和Python3.12的區別在哪里?項目實戰→Python開發環境的安裝與使用3安裝Python目錄Python交互模式2Python版本概述與Python安裝文件的下載1IPython3和PyCharm概述4項目實戰5單元小結6單元小結1.Python的發展和版本情況。2.Ubuntu20.04.6虛擬環境下Python3.12.1的安裝方法。3.Python交互模式的使用。4.Ubuntu20.04.6虛擬環境下,IPython和PyCharm的安裝與簡單使用。單元二Python編程基礎3數值目錄字符串2變量1列表4元組56運算符目錄字典7Python代碼編寫規范89控制流10項目實戰11單元小結變量→變量與引用變量就是在程序執行過程中其值可變化的量。id()函數返回對象的引用str和”hello”的地址相同變量→標識符標識符是指用來標識某個實體的符號。在Python中,標識符用來標識變量、函數、模塊、文件、類等。標識符的命名規則。在Python3.X中,標識符可以由字母、下畫線、漢字開頭,后跟字母、數字、下畫線、漢字等字符。Python默認的關鍵字不能作為標識符。_doc_、str、姓名、性別、年齡、機電18331、var、stu_1、stu_2等都是合法的標識符,而12__str、%stu、#bin等都是非法的標識符。Python標識符對大小寫敏感,例如case與Case是不一樣的。Python的關鍵字。使用Python的內置函數help()可以查看Python的關鍵字,共35個關鍵字。3變量目錄字符串1數值2列表4元組56運算符目錄字典7Python代碼編寫規范89控制流10項目實戰11單元小結數值→整型(int)Python數值類型包括整型、浮點型、復數型和布爾型。整型(int):整型數據就是平常所見的整數。Python3.x中整型可以表示任意大(小)的整數。>>>x=5433344443>>>print(x)5433344443>>>y=x*x>>>print(y)29521231836278980249>>>z=x**3>>>print(z)160399020948161083133610906307>>>f=-z>>>print(f)-160399020948161083133610906307>>>type(x)<class'int'>>>>type(23)<class'int'>>>>type(f)<class'int'>盡可以想象大(小)的數type()函數返回對象的類型數值→浮點型(float)浮點型(float):浮點型就是平時所用的帶小數的數。>>>f=0.5>>>print(f)0.5>>>type(f)<class'float'>>>>0.5+(-12.97)-12.47>>>1.3455639480389409381.345563948038941>>>-3782.47837847874673536275-3782.478378478747>>>2e-9#表示的是2×10-92e-09浮點型數據的精度是17位數值→復數型(complex)復數型(complex):Python中復數和數學中復數的定義一樣,由實部和虛部構成,如3+4j。
>>>s1=1+3j>>>s2=-4+9j>>>s3=s1+s2>>>s3(-3+12j)>>>s4=s1*s2>>>s4(-32-3j)>>>type(s4)<class‘complex‘>復數輸出時,注意“()”,(-32-3j)數值→布爾型(bool)布爾型(bool):Python中布爾型(bool)的值只有True和False兩個。True在數學運算時表示1,False表示0。
>>>type(True)<class'bool'>>>>type(False)<class'bool'>>>>x=1+True>>>x2>>>y=1+False>>>y12變量目錄數值1字符串3列表4元組56運算符目錄字典7Python代碼編寫規范89控制流10項目實戰11單元小結字符串Python中的字符串就是用單引號“'”、雙引號“"”、3個單引號“'''”和3個雙引號“"""”引起來的字符序列,字符串是一種不可變的有序序列。>>>"Python"'Python'>>>type("Python")<class'str'>>>>str='''ThisisafunctionReturnatuple.'''>>>str'Thisisafunction\nReturnatuple.\n'三引號括起來的字符串,通常用在多行字符串中字符串→轉義字符
轉義字符:是控制字符和特殊含義的字符。轉義字符含義轉義字符含義\n換行\\字符串中“\”號本身\t制表符(Tab)\”字符串中雙引號本身\r回車\ddd3位八進制數對應的ASCII碼字符\’字符串中的單引號本身\xhh2位十六進制數對應的ASCII字符>>>print('Thisisafunction\nReturnatuple.\n')ThisisafunctionReturnatuple.>>>'\123'
#3位八進制數對應的ASCII字符是S'S'>>>'\x2f'
#兩位十六進制數對應的ASCII字符是“/”'/'>>>'asdf\"hjk''asdf"hjk'字符串→字符串運算
在Python中,字符串可使用“+”“*”運算符進行運算,其應用如下:>>>sentence="Python"+"isaprogramminglanguage.">>>print(sentence)Pythonisaprogramminglanguage.>>>str="Python"*3>>>str'PythonPythonPython'#“+”就是連接的意思,“*”用于將字符串重復n次。字符串→字符串操作方法方法功能描述string.capitalize()將字符串中第一個字母大寫string.count(sub[start[,end]])統計字符串中某一子字符串從start位置開始到end位置為止出現的個數string.find(sub[start[,end]])返回某一子字符串的起始位置,無則返回-1string.isalnum()檢測字符串是否僅包含0~9、a~z、A~Zstring.isalpha()檢測字符串中是否只包含a~z、A~Zstring.isdigit()檢測字符串中是否只包含0~9string.islow()檢測字符串是否均為小寫字母string.isspace()檢測字符串中是否均為空白字符string.istitle()檢測字符串中單詞是否均為首字母大寫string.issupper()檢測字符串中是否均為大寫字母string.join(iterable)連接字符串string.lower()將字符串中的字母全部轉換為小寫string.split(sep=None)分割字符串,默認用空格分割string.swapcase()將字符串中的大寫字母轉換為小寫,小寫字母轉換為大寫string.title()將字符串中單詞的首字母大寫string.upper()將字符串中全部字母大寫len(string)返回字符串的長度string.strip([chars])去除字符串首尾的空格、\n、\r、\t,如指定,則去除首尾指定的字符Python提供了很多字符串的操作方法。字符串→字符串操作方法字符串操作方法應用示例>>>str='Iamastudent.'>>>print(str)Iamastudent.>>>list=str.split(sep='') #“sep=''”表示以空格作為分割符,將字符串分割后存放在一個列表中>>>list['I','am','a','student.']>>>str.title() #將字符串中單詞的首字母大寫'IAmAStudent.'>>>lag="Python">>>lag'Python'>>>'G'.join(lag) #用“G”連接字符序列'pGyGtGhGoGn'>>>lag'Python'>>>''.join(list) #用空格將字符序列連接成字符串'Iamastudent.'可以使用dir(object)查看實例對象的屬性和方法,如dir(str)可以查看字符串實例對象的屬性和方法(函數)。>>>dir(str)2變量目錄數值1列表4字符串3元組56運算符目錄字典7Python代碼編寫規范89控制流10項目實戰11單元小結列表→列表的創建與刪除
列表是Python的一種內置數據類型。把所有元素放在一個“[]”內,用“,”進行分隔,同一個列表中的元素可以是不同的類型。列表是一種可變的有序序列類型,可以進行添加、刪除、修改元素等操作。#使用賦值運算符“=”直接將一個列表賦值給一個變量即可創建列表>>>alist=[1,2,3,4]>>>alist[1,2,3,4]>>>print(alist)[1,2,3,4]>>>list_x=[1,'a','Python',9,[1,2,3]]>>>list_x[1,'a','Python',9,[1,2,3]]>>>type(list_x)#列表類型<class'list'>#上述分別創建了alist和list_x兩個列表,alist所有元素都是同一類型,而list_x的元素包含數值、字符串和列表。>>>dellist_x>>>list_xTraceback(mostrecentcalllast):File"<stdin>",line1,in<module>NameError:name'list_x'isnotdefined#del命令的功能是刪除一個實例對象。刪除list_x后,再次訪問list_x時,拋出異常。列表→列表的操作方法通過列表的操作方法可實現對列表元素的添加、刪除、排序等操作。方法功能描述list.append(object)在列表的尾部追加元素list.count(value)返回列表中某元素出現的次數list.extend(iterable)在列表的尾部追加另一個列表list.index(value,[start[,stop]])返回某元素在列表中的位置list.insert(index,object)在列表的某個位置插入一個元素list.pop([index])返回列表中index位置的元素,并刪除該元素,省略index則指列表尾部位置list.remove(value)刪除列表中指定元素,若有多個,則刪除第一個list.reverse()將列表中元素的順序顛倒list.sort(reverse=False)將列表中的元素默認按升序排序列表→列表的操作方法列表操作方法應用示例>>>alist=[1,4,2,2,3,4,4]>>>alist[1,4,2,2,3,4,4]>>>alist.append(2)#在列表尾部追加元素“2”>>>alist[1,4,2,2,3,4,4,2]>>>alist.insert(3,8)#在第3(左邊第一個元素的位置為0)個位置插入元素“8”,>>>alist[1,4,2,8,2,3,4,4,2]>>>alist.pop()2>>>alist[1,4,2,8,2,3,4,4]>>>alist.reverse()>>>alist[4,4,3,2,8,2,4,1]>>>alist.sort()>>>alist[1,2,2,3,4,4,4,8]>>>alist.sort(reverse=True)>>>alist[8,4,4,4,3,2,2,1]>>>alist.count(4)#4出現的次數3“reverse=True”表示降序排列,省略參數或者“reverse=False”表示升序排列。列表→列表的切片切片是Python序列的重要操作之一。適用于列表、元組、字符串、range對象等。可以用切片來截取列表中任何部分獲得一個新的列表,也可進行元素的增刪改。Python中序列的序號(索引)既可以從左向右以0開始依次增加,也可以從右向左以-1開始依次減小。列表元素的訪問與修改>>>alist=[3,4,2,9]>>>print(alist[0])#輸出左邊第0個位置的元素3>>>print(alist(-len(alist))#輸出最左邊的元素3>>>print(alist[3])#輸出左邊第3個位置的元素9>>>print(alist[-1])#輸出最右邊的元素9>>>print(alist[2],alist[-2])#輸出左邊第2個位置的元素22>>>alist[0]=88#修改列表元素的值>>>print(alist[0])88len()是Python的內置函數,用于獲得序列中元素的個數列表→列表的切片>>>alist=[3,4,2,9,12,6,18,-6]>>>alist[:] #取全部元素[3,4,2,9,12,6,18,-6]>>>alist[0:] #取全部元素[3,4,2,9,12,6,18,-6]>>>alist[:-1] #取除最后一個元素外的所有元素,alist[:-1]等價于x[0:-1:1][3,4,2,9,12,6,18]>>>alist[2:5] #取序號是2、3、4的元素,不包含最后一個序號的元素[2,9,12]>>>alist[::2] #從0開始隔一個取一個元素[3,2,12,18]>>>alist[1:5:2] #從1開始,每隔一個取一個元素,直到5為止[4,9]>>>alist[::-1] #從右向左取全部成員[-6,18,6,12,9,2,4,3]>>>alist[5:0:-2] #從右向左隔一個取一個元素,不包含0[6,9,4]#alist[:-1]等價于x[0:-1:1],-1表示最后一個位置列表切片:切片是為了獲得序列某個區間的元素序列。切片操作使用2個冒號分隔三個數字來實現,第一個數字表示切片的開始位置,默認為0,第二個數字表示切片的終止位置(但不包含該位置的元素),默認為列表的長度,第三個數字為切片的步長,默認為1,當省略步長時,可以同時省略后一個冒號。列表→列表的切片>>>alist=[3,4,2,9,12,6,18,-6]>>>alist_x=alist[1:6:2]>>>alist_x[4,9,6]>>>alist[1:6:2]=[28,38,48]#修改元素值>>>alist[3,28,2,38,12,48,18,-6]#修改元素值時要求“=”左右兩側的元素個數相同>>>delalist[3:5]#刪除元素>>>alist[3,28,2,48,18,-6]切片應用:切片可用于獲得子列表,或者修改、刪除列表元素。列表→列表的切片#字符串也可以按切片來進行操作,獲取部分字符>>>str=“Python”>>>str[0]‘P’>>>str[-1]‘n’>>>str[1:5:2]'yt'>>>str[0]=‘r’Traceback(mostrecentcalllast):File"<stdin>",line1,in<module>TypeError:'str'objectdoesnotsupportitemassignment切片應用:切片可用于獲得子列表,或者修改、刪除列表元素。這里拋出了異常,是因為字符串是不可變序列,即不能修改其值,這兒想修改就出現錯誤了2變量目錄數值1元組5字符串3列表46運算符目錄字典7Python代碼編寫規范89控制流10項目實戰11單元小結元組→元組的創建與刪>>>tuple=(1,2,3,'k','Python')>>>tuple(1,2,3,'k','Python')>>>type(tuple)<class'tuple'>>>>tup1=() #創建一個空元組>>>tup1()>>>tup2=(8,) #創建只含一個元素的元組時要注意,元素后要加一個“,”>>>tup2(8,)>>>tup3=(8) #未加“,”,則視為一個括號表達式,所以tup3為8>>>tup38>>>deltup2 #刪除tup2>>>tup2 #刪除后再訪問,則拋出異常Traceback(mostrecentcalllast):File"<stdin>",line1,in<module>NameError:name'tup2'isnotdefined.元組是Python的一個重要內置數據類型。元組用“()”將數據元素括起來,元素之間用“,”進行分隔,一個元組的元素可以是不同類型的。元組是一種不可變的有序序列。元組→元素的訪問>>>tuple[0] #元組中元素的訪問同列表,也是通過序號(索引)和切片進行訪問的1>>>tuple[2],tuple[4](3,'Python')>>>tuple[-1]'Python'>>>tuple[1:5:2](2,'k')元組也可以進行切片操作,規則同列表切片操作。元組→元素的運算>>>tuple=(1,2,3,'k','Python')>>>language=("Java","C#","PHP")>>>merge=tuple+language#連接運算>>>merge(1,2,3,'k','Python','Java','C#','PHP')>>>language*3#重復運算('Java','C#','PHP','Java','C#','PHP','Java','C#','PHP')元組→元素的操作方法>>>merge.index('Java')#所有序列的下標從左到右從0開始依次增加,從右到左從-1開始依次減小5>>>merge.count('C#')1元組只有兩個操作方法,分別是tuple.index(value[,start,stop])和tuple.count(value),定義也和列表相同。2變量目錄數值1字符串3列表4元組5運算符目錄7Python代碼編寫規范89控制流10項目實戰11單元小結字典6字典→字典的創建與訪問>>>dict={}#創建一個空字典>>>adct={'a':1,'b':2,'c':3.4}>>>adct{'a':1,'b':2,'c':3.4}>>>lag={'Python':1,'c':2,'java':3}>>>lag{'Python':1,'c':2,'java':3}>>>adct['a']#通過鍵訪問元素的值1>>>lag['java']3>>>xuesheng={'xm':['ding','wang','li'],'xb':['f','f','m'],'fs':[67,78,87]}>>>xuesheng{'xm':['ding','wang','li'],'xb':['f','f','m'],'fs':[67,78,87]}#字典的鍵可以是一個字符串、數值、邏輯值,字典的值可以是單個的值,也可以是列表、元組等字典是Python的一種內置數據類型,每個元素都以鍵值對的形式存在,用“{}”將所有元素括起來,各元素之間用“,”分隔。字典與字符串、列表和元組主要的不同是,字典是無序的,其元素的訪問是通過“鍵”實現的,而不是通過元素的序號(索引),并且字典中的“鍵”不能重復。字典是Python中最強大的數據類型之一。在Python中,創建實例對象時,通過賦值運算符“=”將一個實例賦給一個變量即可。字典→字典元素的修改字典元素的修改主要有值的修改、元素的增加與刪除操作。①修改值>>>lag['java']=5>>>lag{'Python':1,'c':2,'java':5}增加元素>>>lag["c#"]=4#直接將值賦給一個新的鍵,就添加了一個元素>>>lag{'Python':1,'c':2,'java':5,'c#':4}元素的刪除#del命令可以刪除元素,也可以刪除整個字典>>>dellag['java']>>>lag{'Python':1,'c':2,'c#':4}>>>dellag>>>lagTraceback(mostrecentcalllast):File"<stdin>",line1,in<module>NameError:name'lag'isnotdefined字典→字典的操作方法Python提供了很多字典的操作方法。方法功能描述dict.clear()清空字典dict.copy()復制字典dict.get(k,[default])獲得k(鍵)對應的值,不存在則返回defaultdict.items()獲得由鍵和值組成元組做為元素的列表dict.keys()獲得鍵的迭代器dict.pop(k[,d])刪除k(鍵)對應的”鍵:值”對dict.update(adict)從另一個字典更新字典元素的值,如不存在傳入的元素,則添加此元素dict.values()獲得值的迭代器dict.fromkeys(iter,value)以列表或元組中給定的鍵建立字典,默認值為valuedict.popitem()從字典中刪除任一鍵值對元素,并返回它dict.setdefault(k[,default])若字典中存在鍵為k的元素,則返回其對應的值,否則在字典中建立一個k:default元素字典→字典操作方法部分方法應用示例>>>xuesheng={'name':'ding','age':18,'score':[112,145,80]}>>>xuesheng{'name':'ding','age':18,'score':[112,145,80]}>>>xuesheng.get('addr',"jiangsu")#“addr”鍵不存在,返回默認值“Jiangsu”'jiangsu'>>>xuesheng.popitem()#隨機刪除一個元素(鍵:值對),并返回該元素('score',[112,145,80])>>>xuesheng.setdefault('addr',"shanghai")'shanghai'>>>xuesheng#刪除了’score’:[112,145,80],增加了’addr’:’shanghai’元素{'name':'ding','age':18,'addr':'shanghai'}>>>forkeyinxuesheng.items():#獲得“鍵:值”對的列表 print(key)('name','ding')('age',18)('addr','shanghai')字典→字典應用示例字典可以簡單理解為存儲一個二維表,如下學生表,可以定義一個字典來存儲。>>>xsxx={'xm':['Xu','Wang','Jiang'],'xb':['F','M','F'],'fs':[58,78,83]}>>>xsxx{'xm':['Xu','Wang','Jiang'],'xb':['F','M','F'],'fs':[58,78,83]}2變量目錄數值1字符串3列表4元組5目錄Python代碼編寫規范89控制流10項目實戰11單元小結字典6運算符7運算符→算術運算符運算符是一種“功能”符號,用來進行相應的運算。Python運算符分為算術運算符、位運算符、邏輯運算符、比較(關系)運算符、賦值運算符以及其他運算符。運算符功能描述運算符功能描述+加法運算/除法運算-減法運算//整除運算*乘法運算%取余運算**冪運算(指數運算)#“//”整除運算,是取商的整數部分>>>7//32>>>7.4//51.0#“%”取余運算,是取除法運算后的余數部分>>>8%32如何將153的各位數字取出??運算符→位運算符
運算符功能描述運算符功能描述^異或運算<<
左移運算&與運算>>
右移運算|或運算~按位取反運算位運算都是按位進行的,基于二進制形式進行運算。#邏輯運算都是按位進行的,依據二進制形式進行運算>>>print(3^8,3|8,3&8,8>>1,8<<2,sep=',')11,11,0,4,32#sep=’,’表示多個輸出項之間用“,”進行分隔>>>print(8>>3)#右移,高位補符號位,低位丟棄1>>>-109>2-28#左移,高位丟棄時保留符號位,低位補0>>>print(12<<2)48>>>-12<<13-98304>>>5&64>>>3&40>>>5&64>>>3^56>>>3|57#先按位取反,正數取反為負數#負數再按補碼規則轉換為實際原碼>>>~3-4>>>~-43運算符→邏輯運算符
Python邏輯運算符有and(與)、or(或)、not(非)三個。Python中非0即為真(True),0為假(False)。>>>3and4
#3和4進行“與”運算,結果為真,取后一個值44>>>3or4
#3“或”4的結果為真,取前一個值33>>>not3
#3的反為假(False)False>>>[1,2]and44>>>4and55>>>[]and()#“[]”、“()”、“{}”空值都為假[]#Python還有一個表示什么值都沒有的常量是None運算符→比較運算符
Python比較運算符也稱關系運算符,其意義與數學中的定義相同。比較運算的結果為True或False。>>>3>4False>>>3>=3True>>>4!=4False>>>5>4<3#等價于5>4and4<3False運算符意義運算符意義>
大于>=大于等于<
小于<=小于等于==等于!=不等于運算符→賦值運算符
>>>x=6>>>x+=12>>>x18>>>x%=5#與表達式x=x%5等價>>>x3>>>x**=3#與表達式x=x**3等價>>>x27>>>x//=(-5)#與表達式x=x//(-5)等價>>>x-6運算符
意義運算符
意義=基本的賦值運算*=乘法賦值運算-=減法賦值運算/=除法賦值運算+=加法賦值運算%=取余賦值運算**=冪賦值運算//=整除賦值運算運算符→其它運算符
in和notin:這兩個是成員運算符,用于檢查某個數據對象是否存在于具有多個元素(列表、元組、字典、字符串等)的數據對象之中,運算結果為True或False。>>>3in[1,2,3,4]True>>>6in[1,2,3,4]False>>>8notin[1,2,3,4]True>>>dict={'java':1,'Python':2,'C#':3,'PHP':4}>>>dict{'java':1,'Python':2,'C#':3,'PHP':4}>>>'C#'indictTrue>>>'c#'indict#區分大小寫的False#對于字典,是檢查字典的鍵運算符→其它運算符
is和isnot:是用于兩個實例對象的同一性測試運算符,用于判斷左右變量是否指向同一個實例,運算結果為True或False。>>>x=5>>>y=6>>>xisyFalse>>>xisnotyTrue運算符→優先級
優先級運算符描述1**指數(最高優先級)運算運算2~+-按位取反,一元加號和減號(符號位運算)3*/%//乘,除,取余和整除運算4+-加法,減法運算5>><<右移,左移運算6&位“與”運算7^|位“異或”、“或”運算符8<=<>>=比較(不等)運算9<>==!=比較(等于)運算10=%=/=//=-=+=*=**=賦值運算11isisnot身份運算12innotin成員運算13notorand邏輯運算高到底2變量目錄數值1字符串3列表4元組5目錄運算符79控制流10項目實戰11單元小結字典6Python代碼編寫規范8縮進:Python程序是通過代碼的縮進來體現代碼之間的邏輯關系,即層次結構。Python的代碼塊是從尾部帶“:”的行開始,以及其后所有縮進的行,表示一個代碼塊。同一級別代碼塊的縮進量必須相同。k=0foriin[1,2,3,4,5]:k=k+i
print(k)print(i)ifa>b:
ifa==1:
print(a)
else:
print(a+1)else:
print(b)Python代碼編寫規范屬于for語句,所以向后縮進屬于外層的if語句,所以向后縮進Python代碼編寫規范代碼注釋:是程序中不可缺少的部分,良好的注釋可以使程序的可讀性增強,同樣也方便程序員后期的代碼維護。Python代碼的注釋有兩種形式:單行注釋,以“#”開始,表示本行是注釋行,也就是“#”之后的內容是注釋信息;多行注釋,用三個單引號“’’’”或者是三個雙引號“"""”將注釋的內容括起來。’’’這段程序的功能是:求1~100的和’’’sum=0forkinrange(101):
sum=sum+kprint(sum)這是一個多行注釋Python代碼編寫規范其它規范①一個語句行太長,可以在行尾用“\”來續行;②一般一個import語句只導入一個模塊,盡量避免導入多個模塊;③使用必要的空格和空行來增強代碼的清晰度和可讀性。一般在運算符的兩側、逗號兩側建議增加空格,代碼塊之間增加空行;④Python官網有關于代碼風格的指南PEP8,見/dev/peps/pep-0008/。2變量目錄數值1字符串3列表4元組5目錄運算符78Python代碼編寫規范10項目實戰11單元小結字典6控制流9控制流控制流可控制程序邏輯執行的先后順序。Python有3種控制流結構,分別是順序結構、分支(選擇)結構及循環結構。控制分支(選擇)結構的語句是if…[else…],控制循環結構的語句是while和for語句。控制流→順序結構程序順序結構程序指的是執行順序是按語句的書寫順序進行的。1.IPO模式輸入數據分析、輸出結果分析、處理過程(算法),稱之為IPO程序設計模式,I(Input)輸入、O(Output)輸出、P(Process)處理。【例2-1】已知圓柱體的底半徑r=3.5,高h=6.7,請編程計算圓柱體的體積和表面積。①采用IPO程序設計模式分析如下:I(輸入數據):底半徑r=3.5,高h=6.7,2個輸入數據。O(輸出結果):圓柱體的體積v和表面積s,2個輸出結果。P(處理過程(算法))(1)計算底面積s1=πr2,(2)計算體積v=s1×h,(3)計算底的周長l=2πr,(4)計算表面積s=l×h+2×s1,(5)輸出結果v和s。②根據IPO模式的分析結果,編寫如下程序:#ch2_1.pyimportmath#輸入數據r=3.5h=6.7#中間處理s1=math.pi*r*rv=s1*hl=2*math.pi*rs=l*h+2*s1#輸出結果print("圓柱體的體積=%f,表面積=%f"%(v,s),sep=',')“importmath”語句的功能是導入模塊math后,才能使用π,使用格式為math.pi,即“模塊名.屬性名”控制流→順序結構程序96開始與結束框:用來表示一個過程的開始或結束。”開始”或”結束”寫在符號內。輸入/輸出框:用于數據的輸入和輸出。判定框:用來表示過程中的一項判定或一個分岔點,判定或分岔的條件寫在菱形內,常以問題的形式出現。對該問題的回答決定了判定符號之外引出的路線,每條路線標上相應的回答。處理框:用來表示過程的一個單獨步驟。具體內容寫在框內。
流程線:用來表示步驟在順序中的進展。流程線的箭頭表示一個過程的流程方向。連接框:用來表示流程圖的待續。圈內有一個字母或數字。在相互聯系的流程圖內,連接符號使用同樣的字母或數字,以表示各個過程是如何連接的。2.算法算法就是解決問題的方法或步驟,是程序設計的靈魂。算法的描述方法很多,常見的有自然語言法、偽代碼法、控制流圖法、NS控制流圖法等,例2-1的“P(處理過程(算法))”中的算法就是用自然語言描述的。本節介紹常用的控制流圖,其它描述方法請查閱相關資料。控制流→順序結構程序97例2-1控制流圖開始A計算:l=2πrA輸出體積和表面積結束計算表面積:s=l×h+2×s1輸入數據:r=3.5,h=6.7
計算體積:v=s1×h計算:s1=πr2控制流→順序結構程序98
開始輸出面積結束輸入數據:a,b,c
計算:s=(a+b+c)/2③編寫程序#ch2_2.py#計算三角形的面積importmath#輸入三條邊a=float(input("請輸入三角形的第一條邊:"))b=float(input("請輸入三角形的第二條邊:"))c=float(input("請輸入三角形的第三條邊:"))#計算面積s=(a+b+c)/2area=math.sqrt(s*(s-a)*(s-b)*(s-c))#輸出結果print("三角形的面積是:%f"%area)控制流→順序結構程序99④print()是Python的內建(內置)函數。其功能是輸出信息。常用格式如下:輸出實例對象或表達式列表的值:print(‘23+45=’,23+45)。格式化輸出實例對象或表達式列表的值:print(“本息總額為%.2f”%final),”%”為格式控制符,格式符如下表所示。%m.nf格式中,n表示小數部分的位數,m表示輸出的總寬度,當不夠時,按實際輸出,如print(‘%2.3f’%123.5678),實際輸出結果為”123.568”。控制輸出項分隔符及換行設置,通過參數”sep”和“end”的設置來實現。”sep”是設置輸出項的分隔符,如”sep=‘,’”表示輸出項之間用”,”進行分隔。”end”是用于設置結束符的,每個print()默認是進行換行,如果設置了”end=‘X’”,則不換行,以所設置的符號=‘X’作為結束符。格式符含
義d,i帶符號的十進制整數o不帶符號的八進制u不帶符號的十進制X/x不帶符號的十六進制E/e科學計數法表示的浮點數f/F十進制浮點數G/g如果指數大于4或者小于精度值則和e相同,其它情況和F/f相同C單字符(接受整數或者單字符字符串)r字符串(使用repr轉換任意python對象)s字符串(使用str轉換任意python對象)控制流→順序結構程序100⑤input()是Python內建(內置)函數。其功能是從控制臺獲取(輸入)一個字符串,調用格式為input([提示字符串]),如input('請輸入存款利率:'),執行時,屏幕上先顯示提示字符串”請輸入存款利率:”,再等待用戶輸入。可以用help()函數查看其功能和參數,即:help(print)、help(input)控制流→順序結構程序101⑥Python內建函數函
數
功
能
描
述abs(x)返回x的絕對值或復數的模hasattr(object,name)測試object是否具有name元素input([“提示字符串”])從控制臺獲得輸入字符串isinstance(object,class_or_tuple)測試object是否屬于指定類型的實例,如果有多個類型,需要放入元組中list([x])、tuple([x])、dict([x])把x轉換為列表、元組、字典,或生成空列表、元組、字典map(func,seq)返回以seq序列的元素作為func參數進行計算得到的新序列open(filename[,mode])以指定的模式mode打開文件filename,并返回文件對象print(value,……,sep=’’,end=’\n’,file=sys.stdout,flush=False)基本輸出函數range([start,]end[,step])返回range對象,包含區間[start,end)內以step為步長的整數reversed(seq)將seq序列反轉(逆序)round(x[,小數位數])對x進行四舍五入,保留指定的小數位數,缺省小數位數,則返回整數str(object)將object轉換為字符串sorted(iterable,key=None,reverse=False)對iterable進行排序,key指定排序的規則,reverse指定升序或降序排列zip(sqe1[,seq2[……]])返回以sqe1[,seq2[……]]序列對應元素形成的元組dir([obj])列出對象的所有屬性和方法help([obj])函數或模塊的詳細說明id(obj)獲取對象的內存地址type(obj)返回對象的類型divmod(a,b)把除數和余數運算結果結合起來,返回一個包含商和余數的元組(a//b,a%b)filter(function,iterable)用于過濾序列,過濾掉不符合條件的元素,返回由符合條件元素組成的新列表hex(x)用于將一個整數轉換成16進制,以字符串形式表示bin(x)用于將一個整數轉換成二進制,以字符串形式表示oct(x)用于將一個整數轉換成8進制,以字符串形式表示ord(char)將字符轉換成對應的十進制ASCII碼chr(x)將一個ASCII轉換成對應的字符all(iterable)判斷給定的可迭代參數iterable中的所有元素是否都為TRUE,如果是返回True,否則返回Falseany(iterable)any()函數用于判斷給定的可迭代參數iterable是否全部為False,則返回False,如果有一個為True,則返回TruePython內置函數數量多,功能強大控制流→順序結構程序102類型轉換input()輸入的是一個字符串,可實際上三角形的邊長都是浮點數,因此需要利用類型轉換函數將字符串轉換成需要的類型。
轉換格式為:
“類型符(轉換對象)”
如:
a=float(input("請輸入三角形的第一條邊:"))
將輸入的邊長轉換為float類型,再賦值給a變量。控制流→分支結構程序103生活中經常需要通過決策選擇某種方案。例如,學校有多個食堂,中午選擇去哪個食堂吃飯呢?根據什么來選擇食堂呢?再如購物,有微信、現金、支付寶、銀行卡等多種支付方式,選擇哪種支
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 水上樂園場地租賃合同及水上娛樂服務協議
- 車輛無償借用及駕駛人員行為規范協議
- 餐飲業餐飲廢棄物處理服務合同
- 電商平臺售后服務及消費者權益保護協議
- 全球電商物流損失責任界定及賠償標準合同
- 草場租賃與草原畜牧業合作開發合同
- 廁所隔斷定制化生產與售后服務合同
- 柴油銷售居間服務合同書
- 新能源產業園區場地廠房租賃合同
- 企業年會策劃服務合同細則
- 青年干部座談會演講稿
- 《長沙臭豆腐介紹》課件
- 《陋室銘》歷年中考文言文閱讀試題52篇(含答案與翻譯)(截至2023年)
- 快速精確-細節畢現-Carto3標測策略
- 2024年度護理三基考試題庫及答案(共570題)
- 園林工人交通安全宣講
- 人力資源外包投標方案(技術方案)
- 《GMP基礎培訓》課件
- 《濱海旅游區介紹》課件
- 2024年度中國資管行業ESG投資發展研究報告
- 顯示設備健康護眼技術研究-洞察分析
評論
0/150
提交評論