版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第1章python語(yǔ)言概述目錄contentsPython編程語(yǔ)言簡(jiǎn)介與發(fā)展歷程Python開(kāi)發(fā)環(huán)境Python擴(kuò)展庫(kù)Python編程語(yǔ)言簡(jiǎn)介與發(fā)展歷程Python語(yǔ)言簡(jiǎn)介Python的歷史Python的特性Python的版本應(yīng)用實(shí)例與案例分析Python的未來(lái)展望
-Python由其他語(yǔ)言發(fā)展而來(lái),如ABC、Modula-3、C、C++、SmallTalk、Unixshell等
-Python的成功代表了它借鑒的所有語(yǔ)言的成功
-對(duì)于一門語(yǔ)言好與不好的評(píng)判,受制于外部因素如平臺(tái)、硬件、時(shí)代等Python語(yǔ)言簡(jiǎn)介一段ABC程序:統(tǒng)計(jì)文本中出現(xiàn)的單詞總數(shù)HOWTORETURNwordsdocument: PUT{}INcollectionFORlineINdocument:FORwordINsplitline:IFwordnot.incollection:INSERTwordINcollectionRETURNcollectionPython的使用率呈線性增長(zhǎng)
-Python的創(chuàng)始人為荷蘭數(shù)學(xué)和計(jì)算機(jī)科學(xué)研究學(xué)會(huì)的吉多·范羅蘇姆
-1989年,吉多決心開(kāi)發(fā)一個(gè)新的腳本解釋程序,作為ABC語(yǔ)言的一種繼承,即Python-1991年,第一款Python編譯器誕生,具備類、函數(shù)、異常處理等核心功能
-Python的發(fā)展歷程包括社區(qū)建設(shè)、版本更新、應(yīng)用拓展等Python的歷史
-簡(jiǎn)單易學(xué):Python代表簡(jiǎn)單主義思想,易于入門,使人們能夠?qū)W⒂诮鉀Q問(wèn)題
-免費(fèi)開(kāi)源:Python是自由/開(kāi)放源碼軟件,允許自由發(fā)布、閱讀源代碼、修改、創(chuàng)造新軟件
-高層語(yǔ)言:Python編寫(xiě)程序時(shí)無(wú)需考慮底層細(xì)節(jié),具有良好的可讀性和易用性
-可移植性:Python可以被移植到多個(gè)平臺(tái)上,包括Linux、Windows、Mac等
-面向?qū)ο螅篜ython同時(shí)支持面向過(guò)程和面向?qū)ο缶幊?,?jiǎn)單且強(qiáng)大
Python的特性
-可擴(kuò)展性:Python支持與C/C++混合編程,可以調(diào)用C/C++庫(kù)
-膠水語(yǔ)言:Python常用作膠水語(yǔ)言,將不同語(yǔ)言編寫(xiě)的程序粘合在一起
-豐富的庫(kù):Python標(biāo)準(zhǔn)庫(kù)包含大量功能模塊,滿足各種需求
-解釋性:Python代碼無(wú)需編譯成二進(jìn)制代碼,具有良好的可移植性和易用性
-規(guī)范性:Python采用強(qiáng)制縮進(jìn)的方式,使代碼具有較好的可讀性
-交互式命令行:Python可以單步直譯運(yùn)行,方便調(diào)試與學(xué)習(xí)Python的特性
-Python2于2000年發(fā)布,穩(wěn)定版本是Python2.7,已于2020年停止維護(hù)
-Python3于2008年發(fā)布,解決了早期版本的一些不足之處,但與Python2不完全向后兼容-Python3的發(fā)展歷程及版本更新Python的版本Python2與Python3部分區(qū)別區(qū)別Python2Python3代碼規(guī)范源碼不規(guī)范,重復(fù)代碼很多源碼精簡(jiǎn),美觀、優(yōu)雅字符串編碼格式默認(rèn)采用ASCII編碼默認(rèn)采用Unicode編碼模塊導(dǎo)入默認(rèn)是相對(duì)導(dǎo)入,自己創(chuàng)建模塊時(shí),必須要有__init__.py的文件無(wú)要求縮進(jìn)同時(shí)允許Tab和Space在代碼中共存使用更加嚴(yán)格的縮進(jìn),Tab和Space共存會(huì)導(dǎo)致報(bào)錯(cuò)源文件編碼格式默認(rèn)采用ASCII,因此使用中文時(shí)要在源文件開(kāi)頭加上一行注釋:#--coding:utf-8--默認(rèn)采用utf-8輸出使用print關(guān)鍵字進(jìn)行輸出:print'Hello'使用print()函數(shù)進(jìn)行輸出:print('Hello')輸入使用raw_input()函數(shù):name=raw_input('請(qǐng)輸入名字:')使用input()函數(shù):name=input('請(qǐng)輸入名字:')格式化字符串方式用%占位符:'Hello,%s'%("World")用format()函數(shù):'Hello,{}'.format("World")數(shù)據(jù)類型有整型int、長(zhǎng)整型long只有整型int布爾類型True、False是兩個(gè)變量,可以更改True、False變成兩個(gè)關(guān)鍵字,不能進(jìn)行修改-Python在GUI程序開(kāi)發(fā)中的應(yīng)用,如PyQt、PySide、WxPython等
-Python在Web程序開(kāi)發(fā)中的應(yīng)用,如Django、Flask等框架
-Python在網(wǎng)絡(luò)爬蟲(chóng)中的應(yīng)用,如Scrapy框架
-Python在服務(wù)器軟件開(kāi)發(fā)中的應(yīng)用,如Twisted框架
-Python在圖形處理和文本處理中的應(yīng)用,如PIL、Tkinter等
-Python在數(shù)據(jù)庫(kù)編程和數(shù)據(jù)科學(xué)中的應(yīng)用,如NumPy、Pandas、Scikit-Learn等應(yīng)用實(shí)例
-Python在未來(lái)的發(fā)展方向與趨勢(shì),如機(jī)器學(xué)習(xí)、人工智能、物聯(lián)網(wǎng)等領(lǐng)域的發(fā)展
-Python的社區(qū)與生態(tài)系統(tǒng),以及開(kāi)源項(xiàng)目的貢獻(xiàn)與合作Python的未來(lái)展望Python開(kāi)發(fā)環(huán)境Python解釋器Python開(kāi)發(fā)環(huán)境的安裝與配置運(yùn)行Python程序Python作為一種解釋型語(yǔ)言,源代碼經(jīng)過(guò)編譯生成字節(jié)碼,然后由Python虛擬機(jī)(PVM)執(zhí)行,最終在終端輸出結(jié)果。Python解釋器種類(5種):CPython/IPython/PyPy/JPython/IronPythonPython解釋器IPython基于CPython的交互式解釋器,提供了更多交互功能。CPython官方版本的Python解釋器,由C語(yǔ)言開(kāi)發(fā)是最廣泛使用的解釋器。PyPy針對(duì)執(zhí)行速度進(jìn)行優(yōu)化,采用JIT技術(shù)動(dòng)態(tài)編譯Python代碼。IronPython運(yùn)行在微軟.Net平臺(tái)上的Python解釋器可以將Python代碼編譯成.Net字節(jié)碼。JPython在Java平臺(tái)上運(yùn)行的Python解釋器可以將Python代碼編譯成Java字節(jié)碼Python解釋器下載Python解釋器從Python官方網(wǎng)站下載適用于個(gè)人電腦系統(tǒng)的Python版本/downloads/對(duì)于64還是32位版本的選擇,用戶可以通過(guò)此電腦→右鍵→屬性進(jìn)行查看圖示中用紅圈標(biāo)注出的installer是可執(zhí)行的安裝版本,下載到本地后可以直接安裝,操作與安裝應(yīng)用軟件相同,推薦使用此類安裝版本,它能自動(dòng)配置環(huán)境變量。Python開(kāi)發(fā)環(huán)境的安裝與配置安裝Python解釋器(以Python3.10.6為例)運(yùn)行安裝程序,選擇自定義安裝并添加到系統(tǒng)環(huán)境變量。Python開(kāi)發(fā)環(huán)境的安裝與配置安裝Python解釋器(以Python3.10.6為例)按照默認(rèn)的勾選項(xiàng),然后更改路徑,點(diǎn)擊Install按鈕安裝即可按<win+R>鍵打開(kāi)運(yùn)行框,輸入cmd,進(jìn)入控制界面進(jìn)入命令行,輸入py后,按<Enter>鍵,出現(xiàn)如右圖界面表示成功安裝Python開(kāi)發(fā)環(huán)境的安裝與配置通過(guò)命令行輸入`py`進(jìn)入交互模式或運(yùn)行Python文件。命令行調(diào)用解釋器打開(kāi)Python自帶的IDLE編輯器,編寫(xiě)代碼并保存為.py文件,然后運(yùn)行.py文件以查看結(jié)果。使用IDLE編輯Python代碼簡(jiǎn)單的運(yùn)行運(yùn)行Python程序Python擴(kuò)展庫(kù)安裝Python擴(kuò)展庫(kù)擴(kuò)展庫(kù)中對(duì)象的導(dǎo)入JupyterNotebook使用pip安裝pip是Python的包管理器,可以通過(guò)命令行使用pip來(lái)安裝擴(kuò)展庫(kù)。例如,要安裝NumPy庫(kù),可以運(yùn)行`py-mpipinstallnumpy`命令。通過(guò)conda安裝conda是一個(gè)開(kāi)源的包管理系統(tǒng),它可以方便地安裝和管理多個(gè)擴(kuò)展庫(kù)。例如,要安裝Pandas庫(kù),可以運(yùn)行`condainstallpandas`命令。從源碼安裝如果需要從源碼安裝擴(kuò)展庫(kù),可以先下載源碼包,然后解壓并運(yùn)行`setup.py`腳本進(jìn)行安裝。例如,要安裝Matplotlib庫(kù),可以先下載Matplotlib的源碼包,然后解壓并運(yùn)行`pythonsetup.pyinstall`命令進(jìn)行安裝。安裝Python擴(kuò)展庫(kù)使用pip安裝在控制界面鍵入:py-mpipinstallSomePackage(第三方庫(kù)名稱),可利用pip安裝第三方庫(kù)在控制界面鍵入:py-mpipinstall--upgradeSomePackage,可更新第三方庫(kù)版本下載超時(shí)失敗的兩種解決辦法:(1)延長(zhǎng)pip的下載等待時(shí)間在控制界面鍵入:py-mpip--default-timeout=100installSomePackage(2)使用鏡像地址提高網(wǎng)速例如,清華大學(xué)鏡像地址是/simple在控制界面鍵入:py-mpipinstall-i/simpleSomePackage例如,使用鏡像升級(jí)pip版本,在控制界面鍵入:py-mpipinstall-i/simplepip-U安裝Python擴(kuò)展庫(kù)使用pip安裝pip是Python的包管理器,可以通過(guò)命令行使用pip來(lái)安裝擴(kuò)展庫(kù)。例如,要安裝NumPy庫(kù),可以運(yùn)行`py-mpipinstallnumpy`命令。通過(guò)conda安裝conda是一個(gè)開(kāi)源的包管理系統(tǒng),它可以方便地安裝和管理多個(gè)擴(kuò)展庫(kù)。例如,要安裝Pandas庫(kù),可以運(yùn)行`condainstallpandas`命令。從源碼安裝如果需要從源碼安裝擴(kuò)展庫(kù),可以先下載源碼包,然后解壓并運(yùn)行`setup.py`腳本進(jìn)行安裝。例如,要安裝Matplotlib庫(kù),可以先下載Matplotlib的源碼包,然后解壓并運(yùn)行`pythonsetup.pyinstall`命令進(jìn)行安裝。擴(kuò)展庫(kù)中對(duì)象的導(dǎo)入JupyterNotebook(此前被稱為IPythonNotebook)是一個(gè)交互式筆記本,它的本質(zhì)是一個(gè)Web應(yīng)用程序,使用IPython解釋器。它便于創(chuàng)建和共享程序文檔,支持實(shí)時(shí)代碼、數(shù)學(xué)方程、可視化和標(biāo)記,經(jīng)常被用作處理數(shù)據(jù)清理和轉(zhuǎn)換、數(shù)值模擬、統(tǒng)計(jì)建模、機(jī)器學(xué)習(xí)、深度學(xué)習(xí)等。JupyterNotebook安裝JupyterNotebook利用pip進(jìn)行安裝:按<win+R>鍵,輸入cmd,打開(kāi)控制界面。鍵入py-mpipinstalljupyter安裝完成后,先配置JupyterNotebook目錄路徑,再啟動(dòng)JupyterNotebook,否則默認(rèn)打開(kāi)和保存JupyterNotebook文件目錄在C盤。在控制界面,輸入jupyternotebook–generate-config,生成默認(rèn)配置文件到C:\Users\Administrator\.jupyter\jupyter_notebook_config.py找到默認(rèn)配置文件的目錄,很多配置文件都是生成到這個(gè)目錄中打開(kāi)jupyter_notebook_config.py文件,搜索c.NotebookApp.notebook_dir(大概在261行位置)在該行中刪去#號(hào),把引號(hào)中的值更改為要存放JupyterNotebook文件的目錄路徑。以后JupyterNotebook創(chuàng)建的文件都會(huì)被保存到該目錄路徑中JupyterNotebook啟動(dòng)
JupyterNotebook進(jìn)入控制界面,輸入jupyternotebook后按<Enter>鍵。此時(shí),默認(rèn)瀏覽器就會(huì)打開(kāi)JupyterNotebook快速使用Notebook在當(dāng)前界面的右側(cè)選項(xiàng)中,單擊新建→Python3,可以新建文件(.ipynb)在單元格內(nèi)完成代碼編輯后,單擊運(yùn)行(或快捷鍵<Ctrl+Enter>)實(shí)現(xiàn)代碼運(yùn)行并在結(jié)果運(yùn)行區(qū)反饋結(jié)果當(dāng)前單元格側(cè)邊顯示為綠色時(shí),表示此時(shí)單元格處于命令模式,按<Enter>鍵切換為編輯模式;當(dāng)前單元格側(cè)邊顯示為藍(lán)色時(shí),表示此時(shí)單元格處于編輯模式,按<Esc>鍵切換為命令模式。編輯模式允許用戶將代碼或文本輸入到一個(gè)單元格中,命令模式將鍵盤與筆記本級(jí)命令綁定在一起,并通過(guò)一個(gè)灰色的單元格邊界顯示JupyterNotebookJupyterNotebook快捷鍵命令模式編輯模式按鍵功能按鍵功能<F>查找并且替換<Tab>代碼完成或縮進(jìn)<Ctrl+Shift+F>打開(kāi)命令配置<Shift+Tab>工具提示<Ctrl+Shift+P>打開(kāi)命令配置<Ctrl+]>縮進(jìn)<Enter>進(jìn)入編輯模式<Ctrl+[>取消縮進(jìn)<P>打開(kāi)命令配置<Ctrl+A>全選<Shift+Enter>運(yùn)行代碼塊,選擇下面代碼塊<Ctrl+Z>撤銷<Ctrl+Enter>運(yùn)行選中的代碼塊<Ctrl+/>評(píng)論<Alt+Enter>運(yùn)行代碼塊并且插入下面<Ctrl+D>刪除整行<Y>把代碼塊變成代碼<Ctrl+U>撤銷選擇<M>把代碼塊變成標(biāo)簽<Insert>切換重寫(xiě)標(biāo)志<R>清除代碼塊格式<Ctrl+Home>跳到單元格起始處<1>把代碼塊變成heading1<Ctrl+Up>跳到單元格起始處<2>把代碼塊變成heading2<Ctrl+End>跳到單元格最后<3>把代碼塊變成heading3<Ctrl+Down>跳到單元格最后<4>把代碼塊變成heading4<Ctrl+Left>跳到單詞左邊<5>把代碼塊變成heading5<Ctrl+Right>跳到單詞右邊<6>把代碼塊變成heading6<Ctrl+Backspace>刪除前面的單詞<K>選擇上面的代碼塊<Ctrl+Delete>刪除后面的單詞<上>選擇上面的代碼塊<Ctrl+Y>重做<下>選擇下面的代碼塊<Alt+U>重新選擇<J>選擇下面的代碼塊<Ctrl+M>進(jìn)入命令行模式<Shift+K>擴(kuò)展上面選擇的代碼塊<Ctrl+Shift+F>打開(kāi)命令配置<Shift+上>擴(kuò)展上面選擇的代碼塊<Ctrl+Shift+P>打開(kāi)命令配置<Shift+下>擴(kuò)展下面選擇的代碼塊<Esc>進(jìn)入命令行模式<Shift+J>擴(kuò)展下面選擇的代碼塊<Shift+Enter>運(yùn)行代碼塊,選擇下面代碼塊<A>在上面插入代碼塊<Ctrl+Enter>運(yùn)行選中的代碼塊<B>在下面插入代碼塊<Alt+Enter>運(yùn)行代碼塊并且插入下面<X>剪切選擇的代碼塊<Ctrl+Shift+Minus>在鼠標(biāo)出分割代碼塊<C>復(fù)制選擇的代碼塊<Ctrl+S>保存并檢查<Shift+V>粘貼到上面<Down>光標(biāo)下移<V>粘貼到下面<Up>光標(biāo)上移<Z>撤銷刪除
<D>刪除選中單元格
<Shift+M>合并選中單元格,如果只有一個(gè)單元格被選中
<Ctrl+S>保存并檢查
<S>保存并檢查
<L>切換行號(hào)
<O>選擇單元格的輸出
<Shift+O>切換選定單元的輸出滾動(dòng)
<H>顯示快捷鍵
<I>中斷服務(wù)
<0>(數(shù)字0)重啟服務(wù)(帶窗口)
<Ctrl+V>從系統(tǒng)剪切板粘貼
<Esc>關(guān)閉頁(yè)面
<Q>關(guān)閉頁(yè)面
<Shift+L>在所有單元格中切換行號(hào),并保持設(shè)置
<Shift+Space>向上滾動(dòng)
<Space>向下滾動(dòng)
THANKS.第2章Python語(yǔ)言基礎(chǔ)Python語(yǔ)法規(guī)則Python數(shù)據(jù)類型賦值語(yǔ)句輸入與輸出運(yùn)算符與表達(dá)式實(shí)驗(yàn):溫度轉(zhuǎn)換器contents目錄Python語(yǔ)法規(guī)則語(yǔ)句縮進(jìn)注釋標(biāo)識(shí)符空白的重要性01在Python中,空白(包括空格和換行符)是語(yǔ)法的重要組成部分,用于分隔語(yǔ)句和表達(dá)邏輯結(jié)構(gòu)??s進(jìn)決定邏輯行的層次結(jié)構(gòu)02Python使用縮進(jìn)(通常是四個(gè)空格或一個(gè)制表符)來(lái)表示邏輯行的層次結(jié)構(gòu)。這種縮進(jìn)方式被稱為“PEP8”風(fēng)格,是Python社區(qū)中廣泛接受的一種編碼風(fēng)格??s進(jìn)規(guī)則03Python中的縮進(jìn)規(guī)則比較簡(jiǎn)單,主要是保持邏輯行的一致性和清晰性。每個(gè)邏輯行都應(yīng)該有一個(gè)一致的縮進(jìn)量,以表明它在代碼塊中的位置。語(yǔ)句縮進(jìn)同一層次的語(yǔ)句必須有相同的縮進(jìn)在同一代碼塊中,所有同一層次的語(yǔ)句都應(yīng)該具有相同的縮進(jìn)量。這有助于表明它們屬于同一個(gè)邏輯塊。Tab符和空格不能混用在Python中,Tab符和空格不能混用。如果在一個(gè)文件或代碼塊中同時(shí)使用Tab符和空格來(lái)表示縮進(jìn),會(huì)導(dǎo)致語(yǔ)法錯(cuò)誤。物理行與邏輯行的概念在Python中,物理行是指源代碼中的一行,而邏輯行則是指一個(gè)完整的語(yǔ)句或表達(dá)式。有時(shí)候,一個(gè)物理行可能包含多個(gè)邏輯行,特別是在使用括號(hào)或引號(hào)時(shí)。語(yǔ)句縮進(jìn)#本段代碼有3個(gè)物理行a=1b=2c=3#變量d雖書(shū)寫(xiě)為多行,但是解釋器只作為一個(gè)語(yǔ)句處理,即一個(gè)邏輯行d=[[1,2,3],[4,5,6],[7,8,9]]作用及重要性注釋是源代碼中的重要組成部分,用于解釋代碼的功能、用途和實(shí)現(xiàn)方式等。通過(guò)注釋,開(kāi)發(fā)者可以更好地理解和維護(hù)代碼,同時(shí)也方便其他人閱讀和理解代碼。單行注釋在Python中,單行注釋使用#符號(hào)??梢栽?后面添加任何文本,這些文本將被視為注釋內(nèi)容。多行注釋多行注釋可以使用'''或者"""來(lái)表示。這些符號(hào)可以包裹多行文本,使其中的任何內(nèi)容都被視為注釋。注釋#這是一個(gè)注釋print("Hello,World!")'''這是多行注釋,用三個(gè)單引號(hào)這是多行注釋,用三個(gè)單引號(hào)這是多行注釋,用三個(gè)單引號(hào)'''print("Hello,World!")定義與含義標(biāo)識(shí)符用于標(biāo)識(shí)變量、函數(shù)、類、模塊等對(duì)象。在Python中,標(biāo)識(shí)符是字母、數(shù)字和下劃線組成的字符串,必須以字母或下劃線開(kāi)頭。在Python3.X版本中,中文也可以作為標(biāo)識(shí)符的組成部分。命名規(guī)則標(biāo)識(shí)符必須小寫(xiě),因?yàn)镻ython區(qū)分大小寫(xiě)。不能包含空格或特殊字符。不能使用Python的內(nèi)置標(biāo)識(shí)符作為自定義標(biāo)識(shí)符。關(guān)鍵字使用Python中的關(guān)鍵字如if、else、for等有特殊意義,不能作為普通標(biāo)識(shí)符。偽關(guān)鍵字如class、def等也被保留,不能作為普通標(biāo)識(shí)符。在使用標(biāo)識(shí)符時(shí),需避免使用這些關(guān)鍵字。標(biāo)識(shí)符標(biāo)識(shí)符FalsebreakfornotNoneclassfromorTruecontinueglobalpass__peg_parser__defifraiseanddelimportreturnaselifintryassertelseiswhileasyncexceptlambdawithawaitfinallynonlocalyieldPython數(shù)據(jù)類型數(shù)值類型字符串類型布爾類型在Python中,變量不需要提前聲明,可以直接賦值。例如,`a=5`聲明了一個(gè)名為`a`的變量,并賦值為`5`。數(shù)據(jù)類型是計(jì)算機(jī)中用于表示不同類型的數(shù)據(jù)的標(biāo)識(shí)。Python中常見(jiàn)的數(shù)據(jù)類型包括數(shù)值類型、字符串類型、布爾類型等。變量與數(shù)據(jù)類型簡(jiǎn)介數(shù)據(jù)類型的概念和分類變量聲明和賦值整數(shù)型數(shù)據(jù)是不帶小數(shù)點(diǎn)的數(shù)字,例如`-123`、`0`、`123`等。Python中整數(shù)型的取值范圍非常大,可以表示很大的整數(shù)。整數(shù)型(int)浮點(diǎn)數(shù)型數(shù)據(jù)是小數(shù)點(diǎn)后有數(shù)字的數(shù)值,例如`3.14`、`-2.718`等。在Python中,浮點(diǎn)數(shù)型的精度較高,可以表示較為精確的數(shù)值。浮點(diǎn)數(shù)型(float)復(fù)數(shù)型數(shù)據(jù)是由實(shí)部和虛部組成的數(shù),例如`3+4j`、`-2-3j`等。在Python中,復(fù)數(shù)型數(shù)據(jù)可以用于表示復(fù)數(shù)的運(yùn)算和轉(zhuǎn)換。復(fù)數(shù)型(complex)數(shù)值類型整數(shù)型int進(jìn)制前導(dǎo)符示例十進(jìn)制轉(zhuǎn)轉(zhuǎn)十進(jìn)制二進(jìn)制0b或0B0b10bin(2)int('101010',2)八進(jìn)制0o或0O0o10oct(8)int('367',8)十六進(jìn)制0x或0X0x10hex(16)int('FFF',16)整數(shù)型十進(jìn)制轉(zhuǎn)換可對(duì)整數(shù)執(zhí)行+(加)、-(減)、*(乘)、/(除)運(yùn)算Python3允許使用_(下劃線)作為數(shù)字(包括整數(shù)和小數(shù))的分隔符。通常每隔三個(gè)數(shù)字添加一個(gè)下劃線>>>2+35>>>3-21>>>2*36>>>3/21.5>>>a=1_301_547>>>b=384_000_000>>>print("a:",a)a:1301547>>>print("b:",b)b:384000000浮點(diǎn)數(shù)型float除了通??吹降氖M(jìn)制形式的浮點(diǎn)數(shù),也有指數(shù)形式:aEn或aen。a為尾數(shù)部分,是一個(gè)十進(jìn)制數(shù);n為指數(shù)部分,是一個(gè)十進(jìn)制整數(shù);E或e是固定的字符,用于分割尾數(shù)部分和指數(shù)部分。整個(gè)表達(dá)式等價(jià)于a×10^n。>>>0.003*0.10.00030000000000000003>>>2.1E5210000.0>>>14E314000.0只要寫(xiě)成指數(shù)形式就是浮點(diǎn)數(shù),即使其最終值狀似整數(shù)。由于浮點(diǎn)數(shù)和整數(shù)在計(jì)算機(jī)內(nèi)部存儲(chǔ)的方式不同,導(dǎo)致整數(shù)運(yùn)算永遠(yuǎn)是精確的,然而浮點(diǎn)數(shù)的運(yùn)算則可能會(huì)有四舍五入的誤差。復(fù)數(shù)型complex該數(shù)值類型與數(shù)學(xué)中的復(fù)數(shù)概念一致,由實(shí)部和虛部組成,虛部用j表示。在Python語(yǔ)言中,復(fù)數(shù)可以看為二元有序?qū)崝?shù)對(duì)(a,b),表示為:a+bj。例如:2+3j用a=complex(2,3)表示。需要注意,當(dāng)b為1時(shí),1不能省略。使用real方法可以獲取該復(fù)數(shù)的實(shí)部,使用imag方法可以獲取該復(fù)數(shù)的虛部。>>>a=complex(2,3)>>>a.real2.0>>>a.imag3.0字符串類型字符串就是一系列字符。在Python中,用引號(hào)括起的任意文本都是字符串類型數(shù)據(jù)str其聲明有三種方式,分別是:?jiǎn)我?hào)'abc'、雙引號(hào)''hello''和三引號(hào)'''hello'‘’。字符串在使用時(shí),引號(hào)必須成對(duì)出現(xiàn);如果字符串中包含了單引號(hào)或雙引號(hào),則可以使用另一種引號(hào)進(jìn)行表示。'Itoldmyfriend,"Pythonismyfavoritelanguage!"'"OneofPython'sstrengthsisitsdiverseandsupportivecommunity."書(shū)寫(xiě)長(zhǎng)字符串時(shí),用3個(gè)引號(hào)(單引號(hào)或雙引號(hào))括起來(lái)的字符串可以包含多行字符串。'''Thisisatestformultiplelinesoftext.'''在用單引號(hào)括起的字符串中,如果包含撇號(hào),就將導(dǎo)致錯(cuò)誤。因?yàn)镻ython將第一個(gè)單引號(hào)和撇號(hào)之間的內(nèi)容視為一個(gè)字符串,進(jìn)而將余下的文本視為Python代碼,從而引發(fā)錯(cuò)誤重新開(kāi)始很多時(shí)候,程序員在編程過(guò)程中只是遺漏了某種簡(jiǎn)單部分,例如for語(yǔ)句末尾的冒號(hào),再試一次可能就會(huì)有所幫助適當(dāng)放松長(zhǎng)時(shí)間從事一個(gè)任務(wù)時(shí),容易讓人陷入單一思維而想不出其他解決方案。通過(guò)休息擺脫當(dāng)前的思維方式,有助于從不同的角度看問(wèn)題在線搜索大部分編程過(guò)程中遇到的問(wèn)題已經(jīng)有前人面臨并解決,甚至在網(wǎng)絡(luò)上已分享了相關(guān)經(jīng)驗(yàn)。良好的搜索技能和具體的關(guān)鍵字有助于找到現(xiàn)有的資源,供以解決當(dāng)前面臨的問(wèn)題。搜索時(shí)請(qǐng)完整搜索錯(cuò)誤消息受困于非常棘手的錯(cuò)誤時(shí)字符串類型1. 轉(zhuǎn)義字符在編程中,空白泛指任何非打印字符,如空格、制表符和換行符。像這種情況,當(dāng)需要在字符中使用特殊字符時(shí),就需要用到轉(zhuǎn)義字符。在Python里用\(反斜杠)轉(zhuǎn)義字符。轉(zhuǎn)義字符描述\(行尾)續(xù)行符,實(shí)現(xiàn)用多行表示一個(gè)字符串\\反斜杠符號(hào)\'單引號(hào)\"雙引號(hào)\a發(fā)出系統(tǒng)響鈴聲\b退格,把光標(biāo)前移,覆蓋刪除前一個(gè)\0空字符一個(gè)\n換行,一般用于末尾,實(shí)現(xiàn)多行字符串的顯示效果\v縱向制表符,使用率較低,print會(huì)打印出一個(gè)男性符號(hào)\t橫向制表符,可以認(rèn)為是一個(gè)間隔符\r回車,并把當(dāng)前字符串之前的所有字符刪掉\f換頁(yè),使用率較低,print會(huì)打印出一個(gè)女性符號(hào)info_n="myname\nisNeo"print("n:",info_n)info_t="myname\tisNeo"print("t:",info_t)info_v="myname\visNeo"print("v:",info_v) #在Terminal終端執(zhí)行,才能出現(xiàn)對(duì)應(yīng)效果info_a="myname\aisNeo"print("a:",info_a) #在Terminal終端執(zhí)行,才能出現(xiàn)對(duì)應(yīng)效果info_b="mynameisNeo\b"print("b:",info_b)info_r="mynameisNeo\r"print("r:",info_r,'--')info_f="mynameisNeo\f"print("f:",info_f) #在Terminal終端執(zhí)行,才能出現(xiàn)對(duì)應(yīng)效果print('Mynameis\'Neo\'')print("Mynameis\"Neo\"")
輸出:n:mynameisNeot:mynameisNeov:mynameisNeoa:mynameisNeob:mynameisNe--mynameisNeof:mynameisNeo□Mynameis'Neo'Mynameis"Neo"字符串類型2. 字符串前綴在一個(gè)字符串前加一個(gè)字符r,表示該字符串是非轉(zhuǎn)義的原始字符串在一個(gè)字符串前加一個(gè)字符u,表示對(duì)字符串進(jìn)行Unicode編碼在一個(gè)字符串前加一個(gè)字符f,表示格式化操作>>>r=r'c:\a.txt'>>>r'c:\\a.txt'3. 內(nèi)置函數(shù)str()使用內(nèi)置函數(shù)str(),可以把非字符串型的數(shù)據(jù)轉(zhuǎn)換成字符串型請(qǐng)注意,當(dāng)shell顯示字符串的值時(shí),它將字符序列放在單引號(hào)中這樣讓用戶知道該值實(shí)際上是文本而不是數(shù)字(或其他數(shù)據(jù)類型)>>>a=23>>>b=str(a)>>>b'23'4. Unicode碼Unicode把所有語(yǔ)言都統(tǒng)一到一套編碼里,防止亂碼問(wèn)題的出現(xiàn),因此Unicode也叫萬(wàn)國(guó)碼。在Python3版本中,字符串是以Unicode編碼的,也就是說(shuō),Python的字符串支持多語(yǔ)言。布爾類型對(duì)與錯(cuò)、0和1、正與反,都是傳統(tǒng)意義上的布爾類型。但在Python語(yǔ)言中,布爾類型只有兩個(gè)值,True(真)和False(假)。True和False是Python中的關(guān)鍵字,當(dāng)作為Python代碼輸入時(shí),一定要注意首字母要大寫(xiě),不能是其它花式變型,否則解釋器會(huì)報(bào)錯(cuò)。值得一提的是,布爾類型可以當(dāng)作整數(shù)來(lái)對(duì)待,即True相當(dāng)于整數(shù)值1,F(xiàn)alse相當(dāng)于整數(shù)值0。使用內(nèi)置函數(shù)bool(),可以根據(jù)傳入?yún)?shù)的邏輯值創(chuàng)建一個(gè)新的布爾值。所有計(jì)算結(jié)果,或者調(diào)用返回值是True或者False的過(guò)程都可以稱為布爾運(yùn)算,例如比較運(yùn)算。布爾值通常用來(lái)判斷條件是否成立,是以Python布爾類型用于邏輯運(yùn)算。賦值語(yǔ)句常量與變量的定義常量表示不變化的值,常用全大寫(xiě)字母表示;變量則表示可以變化的值,無(wú)特定表示方式。變量名的重要性與命名規(guī)則變量名用于標(biāo)識(shí)變量,并在程序中引用。命名應(yīng)遵循規(guī)則,如包含字母、數(shù)字、下劃線,避免數(shù)字開(kāi)頭和空格,同時(shí)保持描述性。常量與變量賦值語(yǔ)句的基本結(jié)構(gòu)<variable>=<value>賦值語(yǔ)句的基本結(jié)構(gòu)是使用等號(hào)`=`將一個(gè)值賦給一個(gè)變量。左值、賦值運(yùn)算符和右值的含義左側(cè)的變量是一個(gè)標(biāo)識(shí)符,該語(yǔ)句讓變量指向右側(cè)的值。賦值的語(yǔ)義是右側(cè)的值與左側(cè)命名的變量相關(guān)聯(lián)。其中,左值必須是變量;右值可以是變量、值或結(jié)果為值的任何表達(dá)式。賦值語(yǔ)句的用途和示例賦值語(yǔ)句主要用于給變量賦值,并在程序中進(jìn)行數(shù)據(jù)交換和計(jì)算。name="Eric"age=74x=3.9*x*(1-x)賦值語(yǔ)句有兩個(gè)用途:一是定義新的變量;二是讓已定義的變量指向特定值。010203賦值語(yǔ)句基礎(chǔ)同時(shí)給多個(gè)變量賦值的方法Python中可以使用一行代碼同時(shí)給多個(gè)變量賦值。其形式如下:<var1>,<var2>,...,<varn>=<expr1>,<expr2>,...,<exprn>>>>a,b='abc',[1,2,3]>>>print('a=',a)a=abc>>>print('b=',b)b=[1,2,3]序列拆解和元素對(duì)應(yīng)關(guān)系除了同時(shí)賦值外,Python還允許將序列中的元素逐個(gè)賦值給多個(gè)變量#字符串序列>>>a,b,c='efg'>>>print('a=',a)a=e>>>print('b=',bb=f>>>print('c=',c)c=g#列表序列>>>a,b,c=[1,2,3]>>>print('a=',a)a=1>>>print('b=',b)b=2>>>print('c=',c)c=3利用*收集多余元素的方法當(dāng)序列中的元素個(gè)數(shù)多于需要賦值的變量個(gè)數(shù)時(shí),可以使用星號(hào)`*`來(lái)收集多余的元素#*放后>>>a,*b='abc'>>>print('a=',a)a=a>>>print('b=',b)b=['b','c']#*放前>>>*a,b='abc'>>>print('a=',a)a=['a','b']>>>print('b=',b)b=c多變量賦值命名錯(cuò)誤當(dāng)標(biāo)識(shí)符引用錯(cuò)誤時(shí),Python解釋器會(huì)報(bào)錯(cuò),提供Traceback。Traceback是一條記錄,指出了解釋器嘗試運(yùn)行代碼時(shí),在什么地方陷入了困境。此處創(chuàng)建了一個(gè)名為message的變量,但是再次引用時(shí),寫(xiě)成了mesage。解釋器列出了這行代碼,旨在幫助快速找出錯(cuò)誤。在這里,解釋器發(fā)現(xiàn)了一個(gè)名稱錯(cuò)誤,并指出打印的變量mesage未定義,Python無(wú)法識(shí)別提供的變量名。名稱錯(cuò)誤通常意味著兩種情況,一是使用變量前忘記為其賦值,二是輸入變量名時(shí)拼寫(xiě)不正確。Python解釋器不會(huì)對(duì)代碼作拼寫(xiě)檢查,但要求變量名的拼寫(xiě)一致。因此,創(chuàng)建變量名和編寫(xiě)代碼時(shí),無(wú)需考慮英語(yǔ)中的拼寫(xiě)和語(yǔ)法規(guī)則。輸入與輸出輸入函數(shù)input()輸出函數(shù)print()數(shù)據(jù)的格式化輸出input()函數(shù)用于獲取用戶的輸入,其基本語(yǔ)法為<variable>=input(<prompt>)其中prompt是可選參數(shù),用于提示用戶輸入。目的與基本語(yǔ)法input()函數(shù)默認(rèn)獲取的是文本輸入,用戶輸入的內(nèi)容會(huì)以字符串的形式返回。獲取文本輸入如果用戶輸入的是數(shù)字,`input()`函數(shù)會(huì)將其轉(zhuǎn)換為字符串類型并返回;如果需要讀取用戶鍵入的數(shù)字,使用語(yǔ)法如下:<variable>=eval(input(<prompt>))外嵌的函數(shù)eval()將用戶鍵入的文本被求值為一個(gè)表達(dá)式,以產(chǎn)生存儲(chǔ)到變量中的值獲取數(shù)字輸入輸入函數(shù)`input()`>>>name=input("Enteryourname:")Enteryourname:Eric>>>name"Eric">>>age=input("Enteryourage:")Enteryourage:27>>>age"27">>>age=eval(input("Enteryourage:"))Enteryourage:27
>>>print(age,type(age))27<class'int'>
>>>age=eval(input("Enteryourage:"))Enteryourage:25.5
>>>print(age,type(age))25.5<class'float'>
>>>ans=eval(input("Enteranexpression:"))Enteranexpression:3+2*4
>>>print(ans)11
用單個(gè)input從用戶那里獲取多個(gè)數(shù)值,這對(duì)于利用單個(gè)提示獲取多個(gè)輸入值很有作用如果想要一次性獲得的不只是純數(shù)字,而是原始文本,可以使用split()函數(shù)。該函數(shù)的語(yǔ)法如下:str.split(str="",num=string.count(str))split是一個(gè)內(nèi)置函數(shù),用來(lái)對(duì)字符串進(jìn)行分割,也包括即時(shí)通過(guò)input獲取的字符串。分割后的字符串以列表形式返回,再通過(guò)同時(shí)賦值語(yǔ)句賦值給各個(gè)變量split()不帶參數(shù),默認(rèn)以空格為分割符,對(duì)鍵入的字符串進(jìn)行分割。當(dāng)split帶參數(shù)時(shí),則以該參數(shù)進(jìn)行分割。同時(shí)賦值輸入函數(shù)`input()`>>>score1,score2=eval(input("Entertwoscoresseparatedbyacomma:"))Entertwoscoresseparatedbyacomma:10,5
>>>average=(score1+score2)/2>>>print("Theaverageofthescoresis:",average)Theaverageofthescoresis:7.5
>>>a,b=input("請(qǐng)輸入多個(gè)值:").split()請(qǐng)輸入多個(gè)值:Eric28
>>>print('a=',a)a=Eric
>>>print('b=',b)b=28
>>>a,b=input("請(qǐng)輸入多個(gè)值:").split(',')請(qǐng)輸入多個(gè)值:Eric,27
>>>print('a=',a)a=Eric
>>>print('b=',b)b=27
控制間隔符`sep`可以通過(guò)`sep`參數(shù)來(lái)控制多個(gè)對(duì)象之間的分隔符,例如`print('Hello','world',sep='-')`會(huì)輸出兩個(gè)字符串'-Hello-world-'??刂平Y(jié)尾符`end`可以通過(guò)`end`參數(shù)來(lái)控制輸出結(jié)束后的結(jié)尾符,例如`print('Helloworld',end='!')`會(huì)輸出字符串'Helloworld!'。輸出字符串print()函數(shù)也可以輸出字符串類型的數(shù)據(jù),例如print('Helloworld')會(huì)輸出字符串'Helloworld'。輸出函數(shù)`print()`基本語(yǔ)法形式print(*objects,sep='',end='\n',file=sys.stdout)對(duì)象之間要用逗號(hào)分隔。對(duì)象可以是相同的數(shù)據(jù)類型,也可以是不同的數(shù)據(jù)類型字符串間可以不使用逗號(hào)字符串間添加逗號(hào)分隔符,輸出的字符串會(huì)有空格間隔數(shù)值類型可以使用print直接輸出一次輸出多個(gè)對(duì)象一行中直接輸出字符串輸出函數(shù)`print()`>>>print(1) 1>>>str1='helloguys'>>>print("輸出:",str1,'Nicetomeetyou!')輸出:helloguysNicetomeetyou!>>>a=2>>>b='cats'>>>print('Ihave',a,b)Ihave2cats>>>print('Hello''World') HelloWorld>>>print('Hello','World','!')HelloWorld!010203使用占位符`%`在Python中,`%`占位符用于數(shù)據(jù)的格式化輸出。例如,`print('Hello%s'%'world')`會(huì)輸出'Helloworld'。`%s`表示字符串類型的數(shù)據(jù),對(duì)于其他類型的數(shù)據(jù),如整數(shù)使用`%d`,浮點(diǎn)數(shù)使用`%f`。str.format()方法除了`%`占位符,還可以使用`str.format()`方法。例如,`'Hello{name}'.format(name='world')`會(huì)輸出'Helloworld'。在`str.format()`中,大括號(hào)`{}`表示要格式化的數(shù)據(jù),括號(hào)內(nèi)指定變量值。f-string格式化輸出Python3.6及以上版本支持f-string。它是一種在字符串字面值中嵌入表達(dá)式的格式化機(jī)制。例如,`f'Hello{name}'`會(huì)將變量`name`的值插入到字符串中,得到'Helloworld'這樣的輸出。數(shù)據(jù)的格式化輸出使用占位符`%`使用語(yǔ)法如下:"%[(name)][flags][width][.precison]type"%待格式化數(shù)據(jù)符號(hào)說(shuō)明+
右對(duì)齊,正數(shù)加正號(hào),負(fù)數(shù)加負(fù)號(hào)-左對(duì)齊,正數(shù)無(wú)符號(hào),負(fù)數(shù)加負(fù)號(hào)空格右對(duì)齊(默認(rèn)的對(duì)齊方式),正數(shù)前加空格,負(fù)數(shù)前加負(fù)號(hào)0(數(shù)字)右對(duì)齊,以0填充,正數(shù)無(wú)符號(hào),負(fù)數(shù)加負(fù)號(hào),并將符號(hào)放置在0最左側(cè)占位符%中的參數(shù)flags符號(hào)說(shuō)明sstring,字符串;ddecimalinteger,十進(jìn)制數(shù);iinteger,用法同%d;uunsignedinteger,無(wú)符號(hào)十進(jìn)制數(shù);ffloat,浮點(diǎn)數(shù)(默認(rèn)保留小數(shù)點(diǎn)后6位);FFloat,浮點(diǎn)數(shù)(默認(rèn)保留小數(shù)點(diǎn)后6位);eexponent,將數(shù)字表示為科學(xué)計(jì)數(shù)法(小寫(xiě)e,默認(rèn)保留小數(shù)點(diǎn)后6位);EExponent,將數(shù)字表示為科學(xué)計(jì)數(shù)法(大寫(xiě)E,默認(rèn)保留小數(shù)點(diǎn)后6位);%%轉(zhuǎn)義%,輸出百分號(hào)。占位符%中的參數(shù)type使用占位符`%`使用語(yǔ)法如下:"%[(name)][flags][width][.precison]type"%待格式化數(shù)據(jù)不指定參數(shù)name時(shí),帶有轉(zhuǎn)換說(shuō)明符的字符串(如%s)與需要轉(zhuǎn)換的值必須按照位置一一對(duì)應(yīng)。指定參數(shù)name時(shí),需要使用字典指明鍵值對(duì)。#單個(gè)數(shù)據(jù)>>>print("|Mynameis%s"%"Lily|")|MynameisLily|
#多個(gè)數(shù)據(jù):使用元組>>>print("|Mynameis%s,I’m%dyearsold。|"%("Lily",18))|MynameisLily,I’m18yearsold。|
#單個(gè)數(shù)據(jù)>>>print("|Mynameis%(name)s|"%{"name":"Lily"})|MynameisLily|
#多個(gè)數(shù)據(jù)>>>print("|Mynameis%(name)s,I’m%(age)dyearsold.|"%{"name":"Lily","age":18})|MynameisLily,I’m18yearsold.|
使用占位符`%`使用語(yǔ)法如下:"%[(name)][flags][width][.precison]type"%待格式化數(shù)據(jù)參數(shù)flags和width的使用方式根據(jù)變量數(shù)據(jù)類型略有區(qū)別。例如(此處設(shè)置width=10)#字符串print("|%+10s|"%"Lily") #字符串右對(duì)齊print("|%-10s|"%"Lily") #字符串左對(duì)齊print("|%10s|"%"Lily") #字符串右對(duì)齊print("|%010s|"%"Lily") #字符串右對(duì)齊
輸出:|Lily||Lily||Lily||Lily|
#正整數(shù)
print("|%+10d|"%26) #正整數(shù)右對(duì)齊,正數(shù)加正號(hào)print("|%-10d|"%26) #正整數(shù)左對(duì)齊,正數(shù)無(wú)符號(hào)print("|%10d|"%26) #正整數(shù)右對(duì)齊,正數(shù)前加空格print("|%010d|"%26) #正整數(shù)右對(duì)齊,正數(shù)無(wú)符號(hào),以0填充
輸出:|+26||26||26||0000000026|
#負(fù)整數(shù)print("|%+10d|"%-26) #負(fù)整數(shù)右對(duì)齊,負(fù)數(shù)加負(fù)號(hào)print("|%-10d|"%-26) #負(fù)整數(shù)左對(duì)齊,負(fù)數(shù)加負(fù)號(hào)print("|%10d|"%-26) #負(fù)整數(shù)右對(duì)齊,負(fù)數(shù)加負(fù)號(hào)print("|%010d|"%-26) #負(fù)整數(shù)右對(duì)齊,負(fù)數(shù)加負(fù)號(hào),符號(hào)和數(shù)字之前填充0
輸出:|-26||-26||-26||-000000026|使用占位符`%`使用語(yǔ)法如下:"%[(name)][flags][width][.precison]type"%待格式化數(shù)據(jù)參數(shù)flags和width的使用方式根據(jù)變量數(shù)據(jù)類型略有區(qū)別。例如(此處設(shè)置width=10)#正浮點(diǎn)數(shù)#如未指定浮點(diǎn)數(shù)精度,默認(rèn)保留6位小數(shù),其余均用空格填充(如指定0則用0填充)#若width小于浮點(diǎn)數(shù)的數(shù)位,則width無(wú)效。print("|%+10f|"%2.2) #正浮點(diǎn)數(shù)加正號(hào)右對(duì)齊,小數(shù)部分以0填充print("|%-10f|"%2.2) #正浮點(diǎn)數(shù)左對(duì)齊,小數(shù)點(diǎn)后為空格print("|%10f|"%2.2) #正浮點(diǎn)數(shù)右對(duì)齊,浮點(diǎn)數(shù)前為空格print("|%010f|"%2.2) #正浮點(diǎn)數(shù)右對(duì)齊,小數(shù)點(diǎn)前以0填充輸出:|+2.200000||2.200000||2.200000||002.200000|使用占位符`%`使用語(yǔ)法如下:"%[(name)][flags][width][.precison]type"%待格式化數(shù)據(jù)參數(shù)flags和width的使用方式根據(jù)變量數(shù)據(jù)類型略有區(qū)別。例如(此處設(shè)置width=10)#負(fù)浮點(diǎn)數(shù)print("|%+10f|"%-2.2) #負(fù)浮點(diǎn)數(shù)加負(fù)號(hào)右對(duì)齊,小數(shù)部分以0填充print("|%-10f|"%-2.2) #負(fù)浮點(diǎn)數(shù)加負(fù)號(hào)左對(duì)齊,小數(shù)點(diǎn)后為空格print("|%10f|"%-2.2) #負(fù)浮點(diǎn)數(shù)加負(fù)號(hào)右對(duì)齊,其余用空格填充print("|%010f|"%-2.2) #負(fù)浮點(diǎn)數(shù)加負(fù)號(hào)右對(duì)齊,其余用0填充,注意符號(hào)在最左側(cè)輸出:|-2.200000||-2.200000||-2.200000||-02.200000|使用占位符`%`使用語(yǔ)法如下:"%[(name)][flags][width][.precison]type"%待格式化數(shù)據(jù)參數(shù)precision的使用方式根據(jù)變量數(shù)據(jù)類型略有區(qū)別。#如果待格式化數(shù)據(jù)為字符串則表示字符串截取>>>print("|%.2s|"%"python")|py|#對(duì)于浮點(diǎn)類型數(shù)據(jù),保留小數(shù)點(diǎn)后.precision數(shù)字#注意:以上例舉數(shù)存在“四舍六入五雙”的情況>>>print("|%(num).2f|"%{"num":0.145})|0.14|>>>print("|%(num).2f|"%{"num":1.145})|1.15|>>>print("|%(num).2f|"%{"num":2.145})|2.15|>>>print("|%(num).2f|"%{"num":3.145})|3.15|#科學(xué)計(jì)數(shù)>>>print("|%.3f用科學(xué)計(jì)數(shù)法表示寫(xiě)作%.2E|"%(40.125,40.125))|40.125用科學(xué)計(jì)數(shù)法表示寫(xiě)作4.01E+01|使用占位符`%`#s:字符串>>>print("|Mynameis%s"%"Lily|")|MynameisLily|#d,i,u:十進(jìn)制數(shù)字>>>print("|十進(jìn)制數(shù):%d|"%26)|十進(jìn)制數(shù):26|>>>print("|十進(jìn)制數(shù):%i|"%26)|十進(jìn)制數(shù):26|>>>print("|十進(jìn)制數(shù):%u|"%26)|十進(jìn)制數(shù):26|#f:浮點(diǎn)數(shù)(默認(rèn)保留6位小數(shù))>>>print("|這是一個(gè)浮點(diǎn)數(shù)%f|"%2.26)|這是一個(gè)浮點(diǎn)數(shù)2.260000|#e,E:科學(xué)計(jì)數(shù)>>>print("|%f用科學(xué)計(jì)數(shù)法表示寫(xiě)作%e|"%(0.145,0.145))|0.145000用科學(xué)計(jì)數(shù)法表示寫(xiě)作1.450000e-01|>>>print("|%.3f用科學(xué)計(jì)數(shù)法表示寫(xiě)作%.2E|"%(0.145,0.145))|0.145用科學(xué)計(jì)數(shù)法表示寫(xiě)作1.45E-01|#%%:轉(zhuǎn)義%#如果有待格式化數(shù)據(jù)需要輸出百分號(hào)(%),需要使用%%進(jìn)行轉(zhuǎn)義>>>print("|I'm%d%%sure.|"%100)|I'm100%sure.|str.format(1)可以設(shè)置格式化參數(shù)的順序。例如:
#按照位置一一對(duì)應(yīng)>>>print('{}asked{}todosomething'.format('Lucy','Lily'))LucyaskedLilytodosomething
>>>print('{}asked{}todosomething'.format('Lily','Lucy'))LilyaskedLucytodosomething
#format()函數(shù)支持多個(gè)占位符,可以為占位符指定的被轉(zhuǎn)換數(shù)據(jù)的索引>>>print('{0}{1}{1}{0}'.format('a','b'))abba
str.format(2)可以設(shè)置名字。#直接設(shè)置名字進(jìn)行調(diào)用>>>print('HappyBirthday{age},{name}!'.format(age=30,name='Mary'))HappyBirthday30,Mary!#通過(guò)字典設(shè)置參數(shù)>>>site={"name":"Mary","age":30}>>>print("祝:{name},{age}歲生日快樂(lè)!".format(**site))祝:Mary,30歲生日快樂(lè)!#通過(guò)列表索引設(shè)置參數(shù)>>>my_list=['Mary',30]>>>print("祝:{0[0]},{0[1]}歲生日快樂(lè)!".format(my_list))#"0"是必須的祝:Mary,30歲生日快樂(lè)!str.format(3)兼容性強(qiáng)、適配性強(qiáng)。>>>importnumpyasnp>>>A1=np.array([[1,2,3,4,5],[6,7,8,9,10],[11,12,13,14,15]],dtype='int8')>>>print('矩陣A1的行數(shù)和列數(shù)分別為(%d,%d)'%(A1.shape[0],A1.shape[1]))\\\矩陣A1的行數(shù)和列數(shù)分別為(3,5)>>>print('矩陣A1的行數(shù)和列數(shù)分別為{}'.format(A1.shape))矩陣A1的行數(shù)和列數(shù)分別為(3,5)str.format(4)可以指定填充、對(duì)齊和寬度,以及精度和進(jìn)制。#{<索引>:<填充字符><對(duì)齊方式><寬度.精度><格式>}#^,<,>分別表示居中、左對(duì)齊、右對(duì)齊,后面的數(shù)字表示寬度。#:后填充的字符只能是一個(gè)字符,不指定則默認(rèn)用空格填充>>>print('{0:*>8}'.format(10))#右對(duì)齊,共8個(gè)字符******10>>>print('{0:*<8}'.format(10))#左對(duì)齊,共8個(gè)字符10******>>>print('{0:*^8}'.format(10))#居中對(duì)齊,共8個(gè)字符***10***>>>print('{0:.2f}'.format(2/3))#值取兩位小數(shù)0.67str.formatformat中的數(shù)字格式數(shù)字格式輸出描述3.1415926{:.2f}3.14保留小數(shù)點(diǎn)后兩位3.1415926{:.+2f}+3.14帶符號(hào)保留小數(shù)點(diǎn)后兩位-1{:+.2f}-1.00帶符號(hào)保留小數(shù)點(diǎn)后兩位3.1415926{:.0f}3不帶小數(shù)5{:0>2d}05數(shù)字補(bǔ)零(填充左邊,寬度為2)5{:x<4d}5xxx數(shù)字補(bǔ)x(填充右邊,寬度為4)1000000{:,}1,000,000以逗號(hào)分隔的數(shù)字格式0.333{:.2%}33.30%百分比格式f-stringf-string即格式化字符串(formattingstring),它是str.format()的一個(gè)變種,其語(yǔ)法形式殊途同歸。使用語(yǔ)法如下:f"{}{}{}"。即通過(guò)f或F開(kāi)頭的字符串,使用符號(hào){}完成格式化輸出??偨Y(jié)來(lái)說(shuō),Python字符串格式化的語(yǔ)法較多。%格式化可以滿足大多常用的功能,但是不方便處理一些精密化或復(fù)雜的格式化需求,所以推薦使用str.format()或f-string格式化處理字符串。f-string是str.format()的一個(gè)分支,在一些特定情況下使用可以極大程度減少代碼量,使代碼更加清晰易懂,可以有選擇性的使用f-string。>>>name="Eric">>>age=74>>>print(f"Hello,{name}.Youare{age}.")Hello,Eric.Youare74.運(yùn)算符與表達(dá)式算術(shù)運(yùn)算符關(guān)系運(yùn)算符邏輯運(yùn)算符運(yùn)算符的優(yōu)先級(jí)和結(jié)合性03乘號(hào)`*`用于乘法運(yùn)算或字符串重復(fù)。01加號(hào)`+`用于加法運(yùn)算或字符串拼接。當(dāng)整數(shù)型和浮點(diǎn)數(shù)型相加時(shí),求和結(jié)果也是浮點(diǎn)數(shù)型。+用于字符串時(shí),能夠?qū)ψ址M(jìn)行拼接。02減號(hào)`-`用于減法運(yùn)算或求負(fù)數(shù)。運(yùn)算符與表達(dá)式算術(shù)運(yùn)算符>>>a=1>>>b=1.0>>>print('a+b=',a+b)a+b=2.0>>>n=45>>>m=-n>>>x=-83.5>>>y=-x>>>print(m,"-",y,'=',m-y)-45-83.5=-128.503乘號(hào)`*`用于乘法運(yùn)算或字符串重復(fù)。01加號(hào)`+`用于加法運(yùn)算或字符串拼接。02減號(hào)`-`-可以用作減法運(yùn)算,也可以用作求負(fù)運(yùn)算,即正數(shù)變負(fù)數(shù)、負(fù)數(shù)變正數(shù)。運(yùn)算符與表達(dá)式算術(shù)運(yùn)算符>>>n=45>>>m=-n>>>x=-83.5>>>y=-x>>>print(m,"-",y,'=',m-y)-45-83.5=-128.503乘號(hào)`*`用于乘法運(yùn)算或字符串重復(fù)。01加號(hào)`+`用于加法運(yùn)算或字符串拼接。02減號(hào)`-`用于減法運(yùn)算或求負(fù)數(shù)。運(yùn)算符與表達(dá)式算術(shù)運(yùn)算符>>>a=4*25>>>b=12.5*2>>>print(a,",",b)100,25.0>>>str="hello!">>>print(str*4)hello!hello!hello!hello!06次方**用于次方運(yùn)算。04除號(hào)/和///表示普通除法,結(jié)果總是浮點(diǎn)數(shù)。//表示整數(shù)除法,結(jié)果取整。除數(shù)始終不能為0,否則會(huì)導(dǎo)致除數(shù)為零錯(cuò)誤05求余%求得兩個(gè)數(shù)相除的余數(shù),包括整數(shù)和小數(shù)。%兩邊的數(shù)字都是整數(shù)時(shí),求余的結(jié)果也是整數(shù)只要有一方數(shù)字是小數(shù),求余的結(jié)果就是小數(shù)求余結(jié)果的正負(fù)由第二個(gè)數(shù)字決定運(yùn)算符與表達(dá)式算術(shù)運(yùn)算符#整數(shù)不能除盡>>>print("23/5=",23/5)23/5=4.6>>>print("23//5=",23//5)23//5=4>>>print("23.0//5=",23.0//5)23.0//5=4.0#整數(shù)能除盡>>>print("25/5=",25/5)25/5=5.0>>>print("25//5=",25//5)25//5=5>>>print("25.0//5=",25.0//5)25.0//5=5.0#小數(shù)除法>>>print("12.4/3.5=",12.4/3.5)12.4/3.5=3.542857142857143>>>print("12.4//3.5=",12.4//3.5)12.4//3.5=3.006次方**用于次方運(yùn)算。04除號(hào)/和///表示普通除法,結(jié)果總是浮點(diǎn)數(shù)。//表示整數(shù)除法,結(jié)果取整。除數(shù)始終不能為0,否則會(huì)導(dǎo)致除數(shù)為零錯(cuò)誤05求余%求得兩個(gè)數(shù)相除的余數(shù),包括整數(shù)和小數(shù)。%兩邊的數(shù)字都是整數(shù)時(shí),求余的結(jié)果也是整數(shù)只要有一方數(shù)字是小數(shù),求余的結(jié)果就是小數(shù)求余結(jié)果的正負(fù)由第二個(gè)數(shù)字決定運(yùn)算符與表達(dá)式算術(shù)運(yùn)算符#整數(shù)求余>>>print("15%6=",15%6)15%6=3>>>print("-15%6=",-15%6)-15%6=3>>>print("15%-6=",15%-6)15%-6=-3>>>print("-15%-6=",-15%-6)-15%-6=-3#小數(shù)求余>>>print("7.7%2.2=",7.7%2.2)7.7%2.2=1.0999999999999996>>>print("-7.7%2.2=",-7.7%2.2)-7.7%2.2=1.1000000000000005>>>print("7.7%-2.2=",7.7%-2.2)7.7%-2.2=-1.1000000000000005>>>print("-7.7%-2.2=",-7.7%-2.2)-7.7%-2.2=-1.0999999999999996#整數(shù)和小數(shù)運(yùn)算>>>print("23.5%6=",23.5%6)23.5%6=5.5>>>print("23%6.5=",23%6.5)23%6.5=3.5>>>print("23.5%-6=",23.5%-6)23.5%-6=-0.5>>>print("-23%6.5=",-23%6.5)-23%6.5=3.0>>>print("-23%-6.5=",-23%-6.5)-23%-6.5=-3.506次方**用于次方運(yùn)算
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 制作冰淇淋課件
- 第七講 調(diào)用五官感受寫(xiě)一寫(xiě)(看圖寫(xiě)話教學(xué))-一年級(jí)語(yǔ)文上冊(cè)(統(tǒng)編版·2024秋)
- 2024年黑龍江省龍東地區(qū)中考數(shù)學(xué)真題卷及答案解析
- 幼兒園小班音樂(lè)《狐貍和石頭》教案
- 西京學(xué)院《影像信息學(xué)與使用》2021-2022學(xué)年第一學(xué)期期末試卷
- 西京學(xué)院《繼電保護(hù)裝置》2022-2023學(xué)年期末試卷
- 西京學(xué)院《兒科護(hù)理學(xué)》2023-2024學(xué)年第一學(xué)期期末試卷
- 西華師范大學(xué)《中國(guó)畫(huà)基礎(chǔ)》2022-2023學(xué)年第一學(xué)期期末試卷
- 西華師范大學(xué)《新聞修辭學(xué)》2021-2022學(xué)年第一學(xué)期期末試卷
- 西華師范大學(xué)《體育課程與教學(xué)論》2022-2023學(xué)年第一學(xué)期期末試卷
- 2024年房地產(chǎn)開(kāi)發(fā)建筑承包合同
- 酒店客房清潔衛(wèi)生培訓(xùn)制度
- 選修課-足球教案
- 充電樁運(yùn)維合同(2篇)
- 美團(tuán) 課程設(shè)計(jì)
- 骨質(zhì)疏松的分級(jí)診療及醫(yī)聯(lián)體的建設(shè)方案
- 2024年貴州黔東南州直事業(yè)單位遴選工作人員42人歷年高頻難、易錯(cuò)點(diǎn)500題模擬試題附帶答案詳解
- 2024年后勤保障管理制度范本(三篇)
- 公務(wù)員2022年國(guó)考《申論》真題(副省級(jí))及參考答案
- 走進(jìn)《格林童話》讀書(shū)交流課
- 2024年武漢城投集團(tuán)公開(kāi)招聘【151人】高頻難、易錯(cuò)點(diǎn)500題模擬試題附帶答案詳解
評(píng)論
0/150
提交評(píng)論