入門(mén):環(huán)境搭建與變量數(shù)據(jù)類型詳解)
經(jīng)常有人問(wèn)我Python入門(mén)到底難不難我每次的回答都是語(yǔ)法本身不難真正把新手勸退的往往是裝環(huán)境、配編輯器、看報(bào)錯(cuò)這些“外圍雜事”。所以我把“python基礎(chǔ)第一講”定位成一堂特別實(shí)在的課——不畫(huà)大餅、不灌雞湯就帶著你從零開(kāi)始把Python裝好、跑通第一個(gè)程序然后扎扎實(shí)實(shí)理解變量和數(shù)據(jù)類型這兩塊最核心的地基。這一講適合完全沒(méi)碰過(guò)編程的純新手也適合之前學(xué)過(guò)一點(diǎn)但被環(huán)境問(wèn)題卡住的老同學(xué)。我會(huì)把安裝步驟、編輯器配置、常見(jiàn)報(bào)錯(cuò)這些“攔路虎”一個(gè)個(gè)拆開(kāi)講清楚再配幾道經(jīng)典練習(xí)題幫你鞏固。只要你跟著把本講內(nèi)容完整過(guò)一遍后面再去學(xué)Python爬蟲(chóng)、量化交易、數(shù)據(jù)分析這些熱門(mén)方向會(huì)順暢很多。1. 學(xué)習(xí)Python之前先搞清楚這幾點(diǎn)1.1 Python到底能干什么很多人第一次聽(tīng)說(shuō)Python是因?yàn)樗偝霈F(xiàn)在“最值得學(xué)的編程語(yǔ)言”榜單上。Python能做的事情確實(shí)很雜網(wǎng)站后端開(kāi)發(fā)、自動(dòng)化辦公腳本、爬蟲(chóng)采集數(shù)據(jù)、數(shù)據(jù)分析與可視化、人工智能模型訓(xùn)練甚至量化交易策略的回測(cè)和實(shí)盤(pán)都有它的身影。拿網(wǎng)上搜索熱度來(lái)看和Python關(guān)聯(lián)的關(guān)鍵詞五花八門(mén)有人搜“python量化交易策略代碼”有人搜“python爬蟲(chóng)”有人搜“python連接oracle查詢數(shù)據(jù)”還有人搜“python寫(xiě)入excel”。這些方向看似各不相同但底層用的都是同一套基礎(chǔ)語(yǔ)法。換句話說(shuō)你只要把Python基礎(chǔ)打牢這些看似高深的場(chǎng)景本質(zhì)上就是“基礎(chǔ)語(yǔ)法對(duì)應(yīng)第三方庫(kù)”的組合。這也是為什么我建議第一講先把“地基”夯實(shí)。Python最大的優(yōu)勢(shì)不是某個(gè)花哨功能而是兩個(gè)一是語(yǔ)法接近自然語(yǔ)言讀起來(lái)像在寫(xiě)英文句子上手門(mén)檻低二是第三方庫(kù)極其豐富你用別人已經(jīng)造好的輪子幾行代碼就能完成很復(fù)雜的工作。但所有這些優(yōu)勢(shì)的前提是你先把Python環(huán)境裝好、把變量和類型理解清楚否則后面看任何教程都會(huì)一頭霧水。1.2 零基礎(chǔ)學(xué)習(xí)路線怎么規(guī)劃自學(xué)Python最容易犯的錯(cuò)就是盲目買(mǎi)一本幾百頁(yè)的大部頭教材從第一章啃到最后一章啃到第三章就放棄了。我見(jiàn)過(guò)太多人這樣半途而廢問(wèn)題不在智商而在路線設(shè)計(jì)。我給零基礎(chǔ)朋友的推薦路線是環(huán)境搭建 → 基礎(chǔ)語(yǔ)法變量、類型、運(yùn)算符→ 數(shù)據(jù)結(jié)構(gòu)列表、字典、元組→ 流程控制if、for、while→ 函數(shù) → 動(dòng)手做一個(gè)綜合小項(xiàng)目。整個(gè)過(guò)程大概一到兩周每天投入一到兩小時(shí)就夠。這個(gè)路線的好處是始終圍繞“能跑出東西”來(lái)學(xué)每學(xué)一個(gè)概念馬上就有反饋不容易產(chǎn)生“學(xué)了不知道有什么用”的挫敗感。本講就是這條路線里的第一步只講環(huán)境、變量、數(shù)據(jù)類型和基礎(chǔ)數(shù)據(jù)結(jié)構(gòu)。你不要指望第一講就學(xué)會(huì)寫(xiě)爬蟲(chóng)但學(xué)完之后你看到任何Python入門(mén)代碼至少能看懂它是在定義變量、還是在做類型轉(zhuǎn)換、還是在操作列表這就達(dá)到目標(biāo)了。1.3 第一講學(xué)完你應(yīng)該能做什么為了讓學(xué)習(xí)目標(biāo)可衡量我先把第一講的目標(biāo)清單列出來(lái)。學(xué)完之后你應(yīng)該能做到以下幾件事在自己電腦上成功安裝Python并能在命令行里輸入python --version看到版本號(hào)會(huì)用編輯器我這里推薦VSCode創(chuàng)建并運(yùn)行一個(gè).py文件能寫(xiě)出一句帶注釋的print輸出知道它的作用能定義變量并復(fù)述Python動(dòng)態(tài)類型的特點(diǎn)能說(shuō)出整數(shù)、浮點(diǎn)數(shù)、字符串、布爾值這四種基礎(chǔ)類型的區(qū)別并會(huì)用type()驗(yàn)證能在整數(shù)、字符串、浮點(diǎn)數(shù)之間做基本類型轉(zhuǎn)換能對(duì)列表做增刪改查和切片操作能取字典里的值??粗孟裢Χ嗥鋵?shí)都是很基礎(chǔ)的操作。這些內(nèi)容全部掌握之后你就具備了自己往下翻教程的底氣了。下面我們就一步步來(lái)。2. 環(huán)境搭建裝好Python才是真正的第一步2.1 從Python官網(wǎng)下載并完成安裝我在帶新人入門(mén)時(shí)發(fā)現(xiàn)很多人卡在第一步就放棄了所以我把這一步拆到最細(xì)。 Windows系統(tǒng)先去官網(wǎng)下載安裝包。這里有個(gè)關(guān)鍵動(dòng)作很多人就是栽在這里雙擊安裝包后一定要勾選頁(yè)面最下方的Add Python to PATH然后再點(diǎn) Install Now。這個(gè)選項(xiàng)的作用是把Python自動(dòng)寫(xiě)進(jìn)系統(tǒng)環(huán)境變量不勾選的話后面你在命令行輸入python會(huì)提示“不是內(nèi)部或外部命令”。安裝路徑建議保持默認(rèn)或者安裝到一個(gè)你不容易忘記的位置比如C:\Python或D:\Python3。裝完之后按Win R輸入cmd回車打開(kāi)命令行窗口輸入python --version如果出現(xiàn)類似Python 3.11.x的版本號(hào)說(shuō)明安裝成功。如果提示找不到命令大概率就是剛才PATH沒(méi)勾上最簡(jiǎn)單的補(bǔ)救方法是卸載重裝一次這次記得勾選。Linux系統(tǒng)就簡(jiǎn)單很多Ubuntu系用sudo apt update sudo apt install python3 python3-pipCentOS系用sudo yum install python3。macOS可以去官網(wǎng)下載安裝包也可以裝Homebrew后執(zhí)行brew install python3。不管哪種系統(tǒng)裝完后第一件事永遠(yuǎn)是打開(kāi)終端驗(yàn)證版本號(hào)。2.2 環(huán)境變量與pip換源環(huán)境變量聽(tīng)起來(lái)很玄用大白話說(shuō)它就是告訴系統(tǒng)“Python解釋器放在哪個(gè)目錄、一鍵就能調(diào)用”的一張索引表。Windows下安裝時(shí)勾了PATH就自動(dòng)寫(xiě)了這條索引Linux和macOS通過(guò)包管理器安裝時(shí)通常也會(huì)自動(dòng)配置好。建議你安裝后至少跑一次python --version確認(rèn)命令可用再繼續(xù)。接下來(lái)是新手第二個(gè)高頻搜索點(diǎn)“python安裝numpy庫(kù)的方法”“python安裝sklearn庫(kù)”。這兩個(gè)庫(kù)都用pip來(lái)安裝pip是Python官方的包管理工具。命令格式就一句話pip install 包名想裝numpy就執(zhí)行pip install numpy想裝scikit-learn就執(zhí)行pip install scikit-learn。但國(guó)內(nèi)直連官方源經(jīng)常慢得讓人抓狂尤其是下載大一點(diǎn)的庫(kù)時(shí)進(jìn)度條半天不動(dòng)。我的建議是第一時(shí)間換成國(guó)內(nèi)鏡像源。用清華的PyPI鏡像為例在命令行執(zhí)行pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple設(shè)置好之后再裝庫(kù)速度通常能快十倍左右。如果你在公司內(nèi)網(wǎng)有私有源也可以把地址替換成公司的源。注意pip命令是在命令行里執(zhí)行的不是在Python交互環(huán)境里。再?gòu)?qiáng)調(diào)一遍很多新手剛進(jìn)入Python的提示符后輸入pip install xxx會(huì)直接報(bào)語(yǔ)法錯(cuò)誤所以你安裝庫(kù)時(shí)應(yīng)該先退出Python環(huán)境回到系統(tǒng)命令行。2.3 編輯器選型和VSCode配置裝完P(guān)ython之后你還得有一個(gè)寫(xiě)代碼的工具?!坝浭卤緦?xiě)代碼”在理論上可行但對(duì)新手非常不友好因?yàn)闆](méi)有任何提示和反饋一個(gè)括號(hào)寫(xiě)錯(cuò)就要折騰半天。我的推薦是 VSCode輕量、免費(fèi)、生態(tài)龐大也是目前搜索熱度最高的Python編輯器之一。VSCode裝好后按下面幾步配置Python環(huán)境打開(kāi)VSCode左側(cè)擴(kuò)展商店搜索并安裝Python擴(kuò)展發(fā)布者是Microsoft按CtrlShiftP打開(kāi)命令面板輸入Python: Select Interpreter選擇一個(gè)Python解釋器路徑新建文件hello.py右下角狀態(tài)欄應(yīng)該能看到Python版本號(hào)說(shuō)明解釋器已經(jīng)關(guān)聯(lián)安裝Code Runner擴(kuò)展這樣可以直接點(diǎn)右上角的三角箭頭運(yùn)行當(dāng)前文件。配置完成之后你在hello.py里寫(xiě)代碼再點(diǎn)運(yùn)行就能在輸出面板看到結(jié)果。VSCode的代碼補(bǔ)全、語(yǔ)法高亮、錯(cuò)誤提示都能幫你提前暴露低級(jí)問(wèn)題。我也遇到過(guò)同學(xué)用PyCharm那款工具專業(yè)度沒(méi)問(wèn)題但對(duì)純新手來(lái)說(shuō)界面稍重、啟動(dòng)偏慢VSCode起步更舒服。3. 第一個(gè)程序跑通Hello World3.1 三種運(yùn)行方式你都要知道第一個(gè)程序自然是Hello World但你得理解Python代碼有幾種“跑起來(lái)”的方式才不會(huì)后面越學(xué)越亂。第一種是交互式環(huán)境REPL。在命令行輸入python后回車會(huì)出現(xiàn)提示符直接輸入代碼按回車立即執(zhí)行。適合臨時(shí)驗(yàn)證語(yǔ)法、做個(gè)簡(jiǎn)單計(jì)算比如輸入2 3回車馬上得到5。這也是很多教程說(shuō)的“python連接cmd”的玩法本質(zhì)上就是讓Python跑在命令行里。第二種是腳本文件方式。把代碼寫(xiě)進(jìn).py文件然后在命令行執(zhí)行python 文件名.py。這是我們?nèi)粘i_(kāi)發(fā)最常用的方式適合寫(xiě)完整邏輯。比如hello.py里寫(xiě)print(Hello, World)命令行執(zhí)行python hello.py就能看到輸出。第三種是編輯器一鍵運(yùn)行。VSCode配好Code Runner后點(diǎn)按鈕就能運(yùn)行適合快速調(diào)試。三個(gè)方式各有用處我建議新手階段以第二種為主因?yàn)轲B(yǎng)成“代碼寫(xiě)在文件里”的習(xí)慣后面寫(xiě)稍微復(fù)雜一點(diǎn)的項(xiàng)目才不容易亂。3.2 第一課代碼拆解與縮進(jìn)陷阱現(xiàn)在我們?cè)趆ello.py里寫(xiě)第一段有效代碼順便學(xué)會(huì)注釋# 這是我的第一個(gè)Python程序 # 用print函數(shù)在屏幕輸出一段文字 print(Hello, World) print(1 2)第一行的#是注釋符號(hào)它后面的內(nèi)容Python解釋器會(huì)直接忽略不參與執(zhí)行。注釋的作用是給未來(lái)的自己看或者給一起協(xié)作的人看。然后print(...)是Python里最常用的輸出函數(shù)括號(hào)里放什么屏幕就顯示什么。字符串得用英文引號(hào)包起來(lái)注意是英文的單引號(hào)或雙引號(hào)中文引號(hào)會(huì)報(bào)錯(cuò)。這里我必須提醒你縮進(jìn)的問(wèn)題。Python用縮進(jìn)表示代碼層級(jí)不像其他語(yǔ)言用花括號(hào)。同一層級(jí)的代碼縮進(jìn)必須一致通常用四個(gè)空格或一個(gè)Tab鍵。如果你在后續(xù)章節(jié)里寫(xiě)if、for這些結(jié)構(gòu)時(shí)縮進(jìn)不對(duì)就會(huì)碰到IndentationError這是新手能遇到的最常見(jiàn)報(bào)錯(cuò)之一。一個(gè)穩(wěn)妥的習(xí)慣是統(tǒng)一用Tab鍵或統(tǒng)一用四個(gè)空格不要混用。3.3 命令行一閃而過(guò)怎么解決很多新手第一次雙擊運(yùn)行.py文件結(jié)果黑窗口一閃就沒(méi)了根本看不到輸出然后就慌了。其實(shí)這不是代碼錯(cuò)了而是程序跑完窗口自動(dòng)關(guān)掉了。解決方式有兩種。第一種以后都在命令行里手動(dòng)運(yùn)行先打開(kāi)cmd再輸入python 文件路徑這樣窗口不會(huì)自動(dòng)關(guān)閉能看到全部輸出。第二種在代碼末尾加一個(gè)輸入等待語(yǔ)句print(Hello, World) input(按回車鍵退出...)input()會(huì)等待用戶輸入窗口就停在屏幕前了。這是最土但最有效的辦法。不過(guò)等你熟練之后我還是建議回歸第一種方式畢竟實(shí)際開(kāi)發(fā)時(shí)沒(méi)人會(huì)寫(xiě)input()來(lái)“卡住”程序。4. 變量與數(shù)據(jù)類型Python編程的基石4.1 變量到底是怎么一回事如果說(shuō)函數(shù)是Python里的“工具”那變量就是所有工具的“手”。變量說(shuō)白了就是給一個(gè)值貼個(gè)名字之后你用這個(gè)名字就能拿到它背后存的那個(gè)東西。name 小明 age 18 print(name) print(age)這里name和age就是變量是賦值符號(hào)執(zhí)行后Python會(huì)在內(nèi)存里開(kāi)個(gè)“房間”存放數(shù)據(jù)然后把name這個(gè)牌子掛到房間門(mén)口。以后你喊name它就把“小明”捧出來(lái)給你。Python是動(dòng)態(tài)類型語(yǔ)言意思是變量不需要提前聲明類型你給它賦什么值它就成了什么類型。你給age 18它是整數(shù)如果后面寫(xiě)age 十八它就變成字符串了。這種靈活性對(duì)新手非常友好但也要留意如果函數(shù)里對(duì)某個(gè)變量的類型有要求你隨意改變類型就可能引發(fā)TypeError。變量命名有兩條硬規(guī)則一是只能由字母、數(shù)字、下劃線組成且不能以數(shù)字開(kāi)頭所以1name不行name_1可以二是不能和Python關(guān)鍵字重名比如if、for、while這些都不能當(dāng)變量名。習(xí)慣上Python推薦小寫(xiě)字母加下劃線的命名風(fēng)格比如user_name、total_price。4.2 基礎(chǔ)數(shù)據(jù)類型逐個(gè)敲一遍Python里有幾個(gè)最基礎(chǔ)的數(shù)據(jù)類型這一講必須全部掌握。我列個(gè)表格先對(duì)比一下類型名字例子說(shuō)明int整數(shù)18、-3沒(méi)有小數(shù)點(diǎn)的數(shù)字float浮點(diǎn)數(shù)3.14、0.5帶小數(shù)的數(shù)字str字符串hello、你好用引號(hào)包起來(lái)的文本bool布爾值True、False只有兩個(gè)值用于判斷l(xiāng)ist列表[1, 2, 3]有序且可變的一組數(shù)據(jù)tuple元組(1, 2, 3)有序但不可變的一組數(shù)據(jù)dict字典{name: 小明}鍵值對(duì)的集合不確定某個(gè)變量是什么類型時(shí)用內(nèi)置函數(shù)type()一查便知age 18 print(type(age)) # class int pi 3.14 print(type(pi)) # class float name 小明 print(type(name)) # class str字符串這一塊新手一定要上手練兩個(gè)操作拼接和格式化。拼接用比如你好 世界格式化推薦f-string在字符串前加個(gè)f大括號(hào)里直接寫(xiě)變量名name 小明 age 18 print(f我是{name}今年{age}歲)這樣輸出就是“我是小明今年18歲”比用加號(hào)拼接字符串干凈得多。還有個(gè)小細(xì)節(jié)字符串乘數(shù)字會(huì)把字符串重復(fù)N遍比如哈 * 3輸出“哈哈哈”這個(gè)冷知識(shí)偶爾能派上用場(chǎng)。4.3 類型轉(zhuǎn)換讓不同類型的數(shù)據(jù)互相溝通生活里你拿人民幣換美元得看匯率Python里把一種類型變成另一種類型靠的是一組轉(zhuǎn)換函數(shù)int()、float()、str()。它們的用法非常直白num_str 18 num_int int(num_str) # 字符串變成整數(shù)得到18 num_float float(num_str) # 字符串變成小數(shù)得到18.0 back_str str(num_int) # 整數(shù)變成字符串得到18轉(zhuǎn)整數(shù)時(shí)有個(gè)新手必踩的坑int(3.14)??雌饋?lái)合理但實(shí)際會(huì)報(bào)ValueError因?yàn)镻ython的int()只接受看起來(lái)像整數(shù)的字符串比如3、-5。如果你真想得到帶小數(shù)的結(jié)果正確寫(xiě)法是int(float(3.14))先把字符串轉(zhuǎn)成浮點(diǎn)數(shù)再截掉小數(shù)部分變成3。轉(zhuǎn)換的意義在于Python不會(huì)自動(dòng)幫你做“跨類型”的拼接。比如我今年 18 歲直接報(bào)錯(cuò)因?yàn)樽址荒苤苯雍驼麛?shù)相加。正確做法是我今年 str(18) 歲或者直接用前面說(shuō)的f-string更省事。記住一個(gè)原則不同類型的數(shù)據(jù)一起用時(shí)先想清楚需不需要統(tǒng)一類型統(tǒng)一之后再去運(yùn)算。5. 數(shù)據(jù)操作入門(mén)列表、字典與切片5.1 列表和元組購(gòu)物清單與合同列表是Python里最高頻的數(shù)據(jù)結(jié)構(gòu)之一你可以把它理解成一張購(gòu)物清單在上面隨手往尾部加?xùn)|西、往中間插東西、刪掉某個(gè)東西都行。shopping [蘋(píng)果, 牛奶, 面包] shopping.append(雞蛋) # 最后追加 print(shopping) # [蘋(píng)果, 牛奶, 面包, 雞蛋] shopping[1] 酸奶 # 修改索引為1的元素 print(shopping) # [蘋(píng)果, 酸奶, 面包, 雞蛋] shopping.remove(面包) # 刪除指定元素 print(shopping) # [蘋(píng)果, 酸奶, 雞蛋]索引從0開(kāi)始所以shopping[0]是第一項(xiàng)“蘋(píng)果”shopping[1]是第二項(xiàng)。這里的0對(duì)新手是個(gè)容易擰巴的點(diǎn)多練幾次就習(xí)慣了。元組和列表長(zhǎng)得差不多區(qū)別在于元組用圓括號(hào)創(chuàng)建后不能修改。你可以把元組想象成一份雙方簽好的合同條款一旦定下誰(shuí)也不能中途改動(dòng)。這個(gè)特性在某些場(chǎng)景下很有用比如一組坐標(biāo)(x, y)你不希望某個(gè)函數(shù)意外改掉它就會(huì)用元組。5.2 切片操作快速截取數(shù)據(jù)片段熱搜里“python數(shù)組切片”“python數(shù)組切片”出現(xiàn)頻次很高說(shuō)明很多人在這一塊卡過(guò)殼。切片就是從序列里截取一小段寫(xiě)法是[起始:結(jié)束:步長(zhǎng)]左閉右開(kāi)——意思是包含起始位置不包含結(jié)束位置。光說(shuō)抽象看代碼nums [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] print(nums[1:5]) # [1, 2, 3, 4]取索引1到4 print(nums[:3]) # [0, 1, 2]開(kāi)頭到索引2 print(nums[7:]) # [7, 8, 9]索引7到最后 print(nums[::2]) # [0, 2, 4, 6, 8]每隔一個(gè)取一個(gè) print(nums[::-1]) # [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]反轉(zhuǎn)最后一行的[::-1]是我見(jiàn)過(guò)的新手最愛(ài)問(wèn)的寫(xiě)法它本質(zhì)上是“從頭到尾步長(zhǎng)為-1”實(shí)現(xiàn)的效果就是逆序。切片也能用于字符串比如abcdef[1:3]得到bc因?yàn)樽址举|(zhì)也是一種序列。切片的坑主要集中在結(jié)束索引的“不包含”上。比如你想取索引1到5寫(xiě)[1:5]拿到的卻只有1、2、3、4因?yàn)?被排除了。這個(gè)規(guī)則習(xí)慣之后其實(shí)很好用尤其是配合len()求長(zhǎng)度能精確控制截取范圍。5.3 字典與結(jié)構(gòu)化數(shù)據(jù)字典是Python里另一個(gè)高頻數(shù)據(jù)結(jié)構(gòu)它的形態(tài)是鍵值對(duì)用大括號(hào)一個(gè)鍵對(duì)應(yīng)一個(gè)值。你可以把字典想象成手機(jī)的通訊錄聯(lián)系人姓名是“鍵”手機(jī)號(hào)是“值”你想查哪個(gè)手機(jī)號(hào)輸入對(duì)應(yīng)姓名就行。person {name: 小明, age: 18, city: 北京} print(person[name]) # 小明 person[age] 19 # 修改值 person[job] 工程師 # 新增鍵值對(duì) print(person) # {name: 小明, age: 19, city: 北京, job: 工程師}取字典值有兩個(gè)選擇person[name]和person.get(name)。區(qū)別在于如果鍵不存在前者直接報(bào)KeyError后者返回None不會(huì)報(bào)錯(cuò)。在不確定鍵是否存在時(shí)我習(xí)慣用get()更安全。為什么這一講就引入字典因?yàn)楹芏酂衢T(mén)方向都建立在結(jié)構(gòu)化數(shù)據(jù)上。比如數(shù)據(jù)分析時(shí)最常見(jiàn)的DataFrame本質(zhì)上就是把多列字典拼成一張表再比如你從網(wǎng)上下載的JSON格式數(shù)據(jù)解析出來(lái)就是嵌套的字典和列表組合。所以現(xiàn)在把字典搞懂以后學(xué)數(shù)據(jù)分析和爬蟲(chóng)會(huì)少花一半力氣。6. 新手避坑指南與第一講練習(xí)題6.1 常見(jiàn)報(bào)錯(cuò)速查表學(xué)Python的過(guò)程就是一個(gè)不斷和報(bào)錯(cuò)打交道的過(guò)程。我建議新人別怕報(bào)錯(cuò)報(bào)錯(cuò)其實(shí)是程序在給你提示。下面列幾個(gè)入門(mén)階段最常見(jiàn)的錯(cuò)誤遇到時(shí)先對(duì)照排查報(bào)錯(cuò)信息原因解決方法SyntaxError語(yǔ)法錯(cuò)誤比如括號(hào)沒(méi)閉合、用了中文符號(hào)檢查標(biāo)點(diǎn)是否為英文半角NameError名字沒(méi)定義變量名拼錯(cuò)或沒(méi)賦值檢查變量名拼寫(xiě)TypeError類型不匹配比如字符串加整數(shù)用str()、int()轉(zhuǎn)換類型IndexError索引越界訪問(wèn)了不存在的列表位置檢查索引是否超出范圍KeyError字典里沒(méi)有這個(gè)鍵改用get()或者先確認(rèn)鍵存在ModuleNotFoundError沒(méi)有安裝對(duì)應(yīng)的庫(kù)在命令行執(zhí)行pip install 庫(kù)名IndentationError縮進(jìn)錯(cuò)誤統(tǒng)一使用四個(gè)空格或Tab這里特別提一下ModuleNotFoundError。你現(xiàn)在可能還不會(huì)裝很多第三方庫(kù)但“python安裝sklearn庫(kù)”“python安裝numpy庫(kù)”這類問(wèn)題遲早會(huì)碰上。記住口訣裝庫(kù)去命令行不要在Python交互行里面敲pip install。還有個(gè)小技巧VSCode右下角顯示的解釋器路徑?jīng)Q定了你裝庫(kù)之后往哪個(gè)環(huán)境裝如果裝了庫(kù)還是導(dǎo)入失敗檢查一下解釋器是否選錯(cuò)環(huán)境。6.2 三道經(jīng)典入門(mén)練習(xí)題光看不練等于白看。我出三道覆蓋本講核心內(nèi)容的題目大家自己先寫(xiě)寫(xiě)完再對(duì)照答案。第一題輸入長(zhǎng)方體的長(zhǎng)、寬、高計(jì)算體積并打印。這個(gè)題的思路是把三個(gè)整數(shù)用input()接收注意input()返回的是字符串得先用int()轉(zhuǎn)換length int(input(請(qǐng)輸入長(zhǎng))) width int(input(請(qǐng)輸入寬)) height int(input(請(qǐng)輸入高)) volume length * width * height print(f長(zhǎng)方體的體積是{volume})第二題定義一個(gè)變量x 123把它轉(zhuǎn)成整數(shù)后加10再轉(zhuǎn)回字符串后拼接一段說(shuō)明文字x 123 x_int int(x) 10 result 結(jié)果是 str(x_int) print(result) # 結(jié)果是133第三題是網(wǎng)上流傳很廣的“李白打酒”問(wèn)題李白街上走提壺去買(mǎi)酒遇店加一倍見(jiàn)花喝一斗三遇店和花喝光壺中酒。試問(wèn)壺中原有多少酒這題適合用倒推法寫(xiě)程序wine 0 # 最后的酒量是0 # 倒推三次見(jiàn)花前要先加1斗遇店前要減半 for _ in range(3): wine 1 # 這次見(jiàn)花之前壺里多1斗 wine / 2 # 這次遇店之前壺里是加一倍前的一半 print(wine)答案是0.875斗。這個(gè)題很適合鍛煉“從結(jié)果反推過(guò)程”的編程思維后面很多算法題本質(zhì)上也是這種逆向思考。6.3 學(xué)習(xí)節(jié)奏與下一步建議基礎(chǔ)掌握后最忌諱的就是急著寫(xiě)大項(xiàng)目。我見(jiàn)過(guò)太多人剛學(xué)完變量就想去爬網(wǎng)站結(jié)果連報(bào)錯(cuò)都看不懂兩天就放棄了。合理節(jié)奏是把第一講的內(nèi)容用兩到三天消化完每天練一兩道題確保語(yǔ)法、變量、類型、列表、字典、切片都能默寫(xiě)出來(lái)再進(jìn)入第二講。一個(gè)非常管用的建議把Python交互式環(huán)境當(dāng)草稿紙。當(dāng)你對(duì)某行代碼不確定時(shí)直接在里敲一下試試立刻能看到結(jié)果比反復(fù)想“應(yīng)該對(duì)嗎”效率高得多。還有遇到報(bào)錯(cuò)別慌把報(bào)錯(cuò)信息復(fù)制到搜索引擎里大部分問(wèn)題前人早就踩過(guò)坑了。寫(xiě)在最后我?guī)н^(guò)不少朋友入門(mén)Python最大的感受是真正拉開(kāi)學(xué)習(xí)差距的不是智商而是能不能耐心把環(huán)境裝好、能不能老老實(shí)實(shí)敲代碼。裝環(huán)境這關(guān)確實(shí)煩VSCode配置也確實(shí)瑣碎但這些都是“一次性成本”跨過(guò)去之后后面就是一片坦途。最后再分享一個(gè)親身踩過(guò)的小坑我在Windows上第一次用VSCode時(shí)裝了Python擴(kuò)展但忘了選解釋器結(jié)果所有代碼都提示找不到Python折騰了一晚上。后來(lái)才明白VSCode必須顯式關(guān)聯(lián)一個(gè)解釋器環(huán)境。所以配置完成后一定看一眼右下角狀態(tài)欄有沒(méi)有Python版本號(hào)。這種環(huán)境類問(wèn)題占初學(xué)者困難的八成本講把這一套全走通后面碰到報(bào)錯(cuò)你至少能分清問(wèn)題是出在環(huán)境還是出在代碼本身了。