數(shù)據(jù)類型)
上一章我們正式開啟 Python 的學(xué)習(xí)分享完整認(rèn)識了 Python 語言特性、應(yīng)用場景掌握了 IPO 編程核心思想、代碼注釋、print 輸出、變量賦值等入門基礎(chǔ)內(nèi)容搭建好了 Python 最基礎(chǔ)的編程思維。本篇繼續(xù)按照順序講解 Python 第二章核心內(nèi)容程序格式框架、續(xù)行符、基礎(chǔ)數(shù)據(jù)類型、類型判斷、保留字與變量賦值規(guī)則同時搭配代碼來鞏固知識點夯實語法根基。一、Python 程序格式框架不同于 C/C、Java 依靠大括號 {} 區(qū)分代碼塊Python 擁有專屬的程序格式框架依靠縮進(jìn)、注釋、續(xù)行符規(guī)范整體代碼結(jié)構(gòu)也是 Python 代碼簡潔、可讀性高的核心原因。其中縮進(jìn)是 Python 界定程序?qū)蛹壍奈ㄒ皇侄我彩亲钊菀讏箦e的地方必須重點掌握上一章結(jié)尾我們說到了代碼的縮進(jìn)部分這章開始我們緊接上章結(jié)尾先對縮進(jìn)以及注釋做一個詳細(xì)的回顧然后開始我們今天的內(nèi)容分享1、代碼縮進(jìn)縮進(jìn)指每一行代碼開頭的空白區(qū)域是 Python 獨有的語法特征核心作用是區(qū)分代碼層級、標(biāo)識代碼所屬、嵌套關(guān)系。和 C/C、Java 使用大括號包裹代碼塊不同Python 沒有大括號層級結(jié)構(gòu)縮進(jìn)是 Python 界定程序框架、區(qū)分代碼塊的唯一手段也是剛開始學(xué)習(xí)過程中最容易出現(xiàn)報錯、最需要重視的語法規(guī)則標(biāo)準(zhǔn)規(guī)范Python 官方規(guī)范中1 個標(biāo)準(zhǔn)縮進(jìn) 4 個空格編寫代碼過程中絕對禁止 Tab 鍵與空格混用混用會直接導(dǎo)致程序解析失敗、程序報錯、層級錯亂建議全程統(tǒng)一使用空格縮進(jìn)保證代碼跨設(shè)備、跨環(huán)境兼容縮進(jìn)使用場景詳解普通順序執(zhí)行的代碼不需要任何縮進(jìn)頂格書寫即可當(dāng)代碼出現(xiàn)分支判斷、循環(huán)遍歷、函數(shù)定義、類定義等結(jié)構(gòu)化邏輯時在 if、while、for、def、class 等保留字完整語句末尾必須添加英文冒號 :冒號代表「開啟一段子代碼塊」緊隨其后的下一行代碼必須縮進(jìn)表示該代碼隸屬于上一級結(jié)構(gòu)簡單總結(jié)口訣冒號開啟代碼塊縮進(jìn)決定從屬歸屬同時 Python 支持多層縮進(jìn)嵌套可實現(xiàn)循環(huán)嵌套、判斷嵌套等復(fù)雜邏輯每一層嵌套都需要嚴(yán)格對齊同一層級縮進(jìn)不能多縮、少縮、錯位縮進(jìn)# 分支語句縮進(jìn)演示 if a in abc: # 縮進(jìn)代碼從屬if語句 print(能找到a) # 循環(huán)語句縮進(jìn)演示 i 0 while i 3: # 縮進(jìn)代碼從屬while循環(huán) print(i) i i 12、代碼注釋注釋是程序中專門用于給開發(fā)者閱讀的輔助說明文字在代碼解析、運行過程中會被 Python 解釋器直接忽略不會參與程序執(zhí)行、不會影響代碼邏輯與運行結(jié)果。規(guī)范添加注釋是專業(yè)開發(fā)的基礎(chǔ)習(xí)慣方便自己復(fù)盤、也方便他人讀懂代碼邏輯適配后期項目維護(hù)、團(tuán)隊協(xié)作開發(fā)Python 支持兩種注釋方式適配不同使用場景單行注釋以 # 開頭僅對當(dāng)前行生效適合簡短備注多行注釋使用 或 包裹多行內(nèi)容適合模塊、代碼整體功能說明# 單行注釋輸出歡迎語句 print(Hello Python) 多行注釋演示 功能練習(xí)注釋語法與代碼格式 作者零基礎(chǔ)學(xué)習(xí)者 3、續(xù)行符Python 語法對單行代碼長度沒有硬性限制我們可以書寫超長單行代碼。但過長的單行代碼可讀性極差、排版雜亂、不利于后期修改調(diào)試。為了優(yōu)化代碼排版結(jié)構(gòu)、提升代碼可讀性Python 提供\反斜杠 續(xù)行符專門用于將單行超長代碼合理拆分為多行書寫排版整潔、邏輯清晰核心易錯注意事項續(xù)行符是嚴(yán)格語法符號續(xù)行符末尾絕對不能存在任何空格、制表符必須緊跟換行否則會直接觸發(fā)語法報錯。續(xù)行僅為排版優(yōu)化拆分后的多行代碼在邏輯上仍然是一整行代碼# 續(xù)行符拆分長字符串 s 春眠不覺曉,\ 處處聞啼鳥.\ 夜來風(fēng)雨聲,\ 花落知多少. print(s)二、Python 基礎(chǔ)數(shù)據(jù)類型在編程中所有數(shù)據(jù)都有對應(yīng)的存儲形態(tài)也就是數(shù)據(jù)類型。Python 的數(shù)據(jù)類型體系結(jié)構(gòu)清晰整體分為基本數(shù)據(jù)類型與組合數(shù)據(jù)類型兩大類。基本數(shù)據(jù)類型是最基礎(chǔ)、最小的數(shù)據(jù)單元包含數(shù)字、字符串、布爾值等組合數(shù)據(jù)類型是由基礎(chǔ)數(shù)據(jù)組合而成包含列表、元組、字典、集合等。本章我們重點吃透數(shù)字類型、字符串類型兩大核心基礎(chǔ)類型所有組合數(shù)據(jù)類型都是基于基礎(chǔ)類型延伸而來1、數(shù)字類型整數(shù)類型int是最基礎(chǔ)的數(shù)值類型代表無小數(shù)點的完整整數(shù)包含正整數(shù)、負(fù)整數(shù)和 0Python 的整數(shù)無位數(shù)限制可以支持超大整數(shù)運算無需考慮溢出問題適配日常計算、算法統(tǒng)計、計數(shù)統(tǒng)計等場景。常見示例10、-5、0、999999浮點數(shù)類型float代表帶小數(shù)點的實數(shù)數(shù)值用于存儲小數(shù)、精度數(shù)值適配測量數(shù)據(jù)、科學(xué)計算、精準(zhǔn)統(tǒng)計等場景。需要注意浮點數(shù)運算存在微小精度誤差是所有編程語言的共性問題。常見示例3.14、0.618、-2.5、9.99復(fù)數(shù)類型complex是 Python 特色數(shù)值類型由實數(shù)部分和虛數(shù)部分組成固定格式為 實數(shù)虛數(shù)jj 代表虛數(shù)單位。復(fù)數(shù)日常業(yè)務(wù)開發(fā)使用較少主要應(yīng)用于數(shù)學(xué)建模、信號處理、科研算法、物理運算等專業(yè)場景。示例32j、1.54j2、字符串類型 str字符串str是 Python 使用頻率最高的數(shù)據(jù)類型專門用于存儲文本信息支持收納數(shù)字、字母、漢字、符號、特殊字符等所有可見字符。Python 對字符串的包容性極強是文本處理、數(shù)據(jù)爬取、信息展示、日志輸出的核心類型嚴(yán)格定義規(guī)范所有字符串內(nèi)容必須用成對的單引號 或 雙引號 包裹兩種引號語法效果完全一致無任何區(qū)別。需要注意引號必須為英文符號禁止使用中文引號否則直接語法報錯# 字符串演示 str1 Python零基礎(chǔ)學(xué)習(xí) str2 123abc print(str1) print(str2)3、類型判斷函數(shù) type()在實際開發(fā)中我們經(jīng)常無法直觀判斷數(shù)據(jù)類型尤其是變量賦值、數(shù)據(jù)接收、接口獲取數(shù)據(jù)時。Python 內(nèi)置專屬的 type() 函數(shù)可以精準(zhǔn)識別任意數(shù)據(jù)、任意變量的真實數(shù)據(jù)類型是調(diào)試、排查類型錯誤、熟悉語法的核心工具適配所有數(shù)據(jù)類型# type類型判斷演示 print(type(10)) # class int 整數(shù)類型 print(type(3.14)) # class float 浮點數(shù)類型 print(type(hello)) # class str 字符串類型 print(type(32j)) # class complex 復(fù)數(shù)類型4、數(shù)據(jù)類型轉(zhuǎn)換不同數(shù)據(jù)類型之間無法直接運算、拼接、對比因此數(shù)據(jù)類型轉(zhuǎn)換是 Python 開發(fā)的高頻操作。Python 內(nèi)置三個核心、高頻的類型轉(zhuǎn)換函數(shù)語法簡單、穩(wěn)定性高覆蓋 99% 的轉(zhuǎn)換場景無需復(fù)雜操作直接調(diào)用即可完成轉(zhuǎn)換。int()強制轉(zhuǎn)換為整數(shù)可將合法數(shù)字字符串、浮點數(shù)轉(zhuǎn)為整型浮點數(shù)轉(zhuǎn)整數(shù)會直接舍去小數(shù)不四舍五入float()強制轉(zhuǎn)換為浮點數(shù)可將整數(shù)、合法數(shù)字字符串轉(zhuǎn)為小數(shù)str()強制轉(zhuǎn)換為字符串所有類型數(shù)據(jù)均可轉(zhuǎn)為文本格式# 數(shù)據(jù)類型轉(zhuǎn)換實操 print(int(3.5)) # 浮點數(shù)轉(zhuǎn)整數(shù)3 print(float(3)) # 整數(shù)轉(zhuǎn)浮點數(shù)3.0 print(int(123)) # 數(shù)字字符串轉(zhuǎn)整數(shù)123 print(str(3.14)) # 數(shù)字轉(zhuǎn)字符串3.14三、Python 語法元素變量、常量與保留字掌握數(shù)據(jù)類型后我們進(jìn)一步細(xì)化變量、常量的定義規(guī)則同時重點掌握 Python 保留字規(guī)避命名報錯問題1、常量與變量常量指程序運行過程中固定不變、無法修改的具體數(shù)值或文本直接手寫在代碼中沒有變量名屬于字面量例如 100、3.14、python變量程序運行中可以隨時修改、覆蓋數(shù)據(jù)的臨時存儲容器核心作用是存儲、傳遞、復(fù)用數(shù)據(jù)。Python 是典型的動態(tài)類型語言無需提前聲明變量類型變量的類型完全由當(dāng)前賦值的數(shù)據(jù)決定賦值什么類型變量就是什么類型支持隨時覆蓋修改# 變量賦值與類型自適應(yīng) a 孫悟空 # 字符串類型 b 6.9 # 浮點數(shù)類型 print(a, type(a)) print(b, type(b))2、變量命名標(biāo)識符完整規(guī)則變量名也稱為標(biāo)識符是編程的基礎(chǔ)命名規(guī)范統(tǒng)一、規(guī)范的命名可以極大提升代碼可讀性與專業(yè)性完整規(guī)范如下合法字符組成變量名可由大小寫字母、數(shù)字、下劃線、漢字組合構(gòu)成日常開發(fā)優(yōu)先使用小寫字母下劃線不推薦漢字命名兼容性更差首字符限制絕對不能以數(shù)字開頭只能以字母、下劃線開頭這是高頻報錯點保留字禁用不能使用 Python 系統(tǒng)保留字作為變量名避免覆蓋系統(tǒng)原生功能大小寫敏感變量名嚴(yán)格區(qū)分大小寫Python、python、PYTHON屬于三個完全獨立的不同變量禁止特殊符號變量名不能包含空格、、#、 等特殊符號命名遵循「見名知意」原則盡量貼合變量用途拒絕隨意亂命名3、Python 保留字關(guān)鍵字保留字也叫關(guān)鍵字是 Python 官方提前定義、占用、賦予固定語法功能的專屬標(biāo)識符是構(gòu)成 Python 語法體系的基礎(chǔ)。保留字擁有特殊作用專門用于實現(xiàn)判斷、循環(huán)、函數(shù)、邏輯運算等語法功能絕對不能自定義為變量名、函數(shù)名。一旦強行使用保留字命名會直接覆蓋系統(tǒng)原生語法導(dǎo)致代碼報錯、程序無法運行Python 3.x 版本總計包含 35 個固定保留字日常高頻使用的有if、for、while、def、class、return、True、False、and、or、not、continue、break 等四、本章總結(jié)本章我們系統(tǒng)、完整學(xué)習(xí)了 Python 第二章全部核心基礎(chǔ)內(nèi)容掌握了以下核心知識點程序格式框架代碼縮進(jìn)Python 使用縮進(jìn)4個空格作為界定代碼層級的唯一手段是區(qū)分代碼塊的核心語法代碼注釋支持單行注釋#和多行注釋 或 用于輔助說明不影響程序執(zhí)行續(xù)行符使用反斜杠\將超長單行代碼拆分為多行書寫提升可讀性注意續(xù)行符后不能有空格基礎(chǔ)數(shù)據(jù)類型數(shù)字類型包括整數(shù)int無位數(shù)限制、浮點數(shù)float帶小數(shù)點有精度誤差和復(fù)數(shù)complex實數(shù)虛數(shù)j字符串類型str用于存儲文本必須用成對的單引號或雙引號包裹類型判斷使用內(nèi)置type()函數(shù)可精準(zhǔn)識別任意數(shù)據(jù)或變量的類型數(shù)據(jù)類型轉(zhuǎn)換掌握int()、float()、str()三個核心轉(zhuǎn)換函數(shù)實現(xiàn)不同類型數(shù)據(jù)間的轉(zhuǎn)換語法元素常量與變量常量是固定不變的字面量變量是存儲數(shù)據(jù)的臨時容器類型由賦值決定動態(tài)類型變量命名規(guī)則由字母、數(shù)字、下劃線、漢字組成首字符不能是數(shù)字區(qū)分大小寫不能使用保留字禁止特殊符號遵循見名知意原則保留字關(guān)鍵字Python 預(yù)定義的 35 個具有特殊語法功能的標(biāo)識符如 if, for, while, def 等不能用作變量名或函數(shù)名