微吼云上線多路互動直播服務 加速多場景互動直播落地
987
2025-03-31
本系列博客,由 “發量迷人的喬喻” 授權發布。被系列博客來自 78 技術人社群的一次大冒險,沒錯,喬喻輸了,它就要寫。
要簡單,要通俗,要高雅,要有用,要有趣的介紹清楚 Python。
要能寫購 250K 字。
前言
寫作的起點就很意外,在 78 技術人社群吹牛,輸了!他們讓我寫 Python 系列博客,還要寫購 250K 字,就是 25W 字呀,一篇博客 1W 字,還要 25 篇,才能寫完,而且還要簡單,要通俗,要高雅,要有用,要有趣。
要講 Python,要在 1 個月內學會 Python,要能用 1 個月學到的技術,追到前臺“大”姐……
不給錢,還催更,沒辦法,只能寫。好在這幫家伙沒有說代碼不算字數,寫代碼,別說 25W 字了,25W 行我都能給你寫出來。
Python 簡介
任何程序員都應該學習 Python,因為它在某些場景太 TM 好用了。
Python 是一門編程語言,很普通,但是很有趣,它能以極簡的腳本,實現很多讓人頭疼的功能。
例如給 HR 姐姐,整理個表格。
例如給女朋友寫個聊天機器人。
例如監控暗戀對象的朋友圈。
例如給運營姐姐寫自動化腳本
……
總之,這是一門能讓你能脫單的語言,我想從來沒有人這樣去定義 Python 吧。
什么,你是女生?那學完之后給男朋友改 BUG,在技術上壓制他,當你給他搞定一個 BUG 之后,家里永遠你說了算。
Python 環境安裝與開發工具選擇
版本選擇與下載
Python 有個官網,在某度搜索 Python,一般第一個就是,里面可以看到各種資料,不過大概率初期,你也看不懂。
Python 環境的安裝要注意跟你的電腦操作系統有關系,如果你是 Windows7,那么選擇 Python3.6,Python3.7,Python3.8 都可以,如果你是 Windows10,選擇 Python3.9,以及 Python3.10 都可以。
別問具體哪個版本,初學階段,哪個版本對你都一樣,原則上越低的版本越好,為啥?因為當你遇到 BUG 時,網上的資料多,新版本老程序員們用得到,你碰到奇怪的 BUG,找不到資料。
別問 Python2.X 版本用不用學,從你看到這篇文章的時候,就不用學了。
別問用 Linux、Centos、Ubuntu 行不行,有 Windows 就夠了。啥?你用的是 Mac,當然行呀,不過我沒有 Mac,所以 Mac 相關內容就不講解了。
Python 軟件的下載,雖說官網也可以,但是華為開源鏡像站提供的速度真的感人,版本還好找,網址在這里:https://repo.huaweicloud.com/python/,下載還是從這里下載吧,我保證這個網址能進你的夾。
找一個你覺得還順眼的版本,點進去,里面就長成下述這個樣子。
這里面就有點學問了,有英語基礎也不一定能下載正確,這就是有編程經驗和沒編程經驗的區別所在了。
上圖包含各個平臺可用的 Python 軟件,在下載之前,你要先確定電腦的位數,現在的電腦一般是 64 位的,所以選擇 python-3.8.9-amd64.exe 下載即可,你可能會問,其余的都是啥?重要嗎,很重要,用學嗎?算了吧,你學了不太容易記住。
Python 安裝
下載文件之后,是一個 exe 程序,雙擊即可安裝,選擇默認安裝就行。
這里我拿 Python3.7 安裝界面截圖演示,你是不是又要問,為啥選擇這個版本?我能說是因為我桌面上,不知道為啥正好有這個版本么。
你又要問,如果和你選擇的版本不一致怎么辦?沒啥問題,還是那個問題,目前階段安裝上環境才是重點,版本之間的差異化咱現在用不到。
是不是又產生疑問了,你現在不管想到什么都很重要,但是不用考慮,安裝上環境,能跑才是王道。
點擊之后,期待它不報錯就行,報錯就去搜索引擎問或者去社群問,如果你的電腦是 windows 10 及以上版本,大概率是沒啥錯誤的。
接下來,在你電腦上找到開始菜單,在里面翻找 Python,例如我下圖出現的樣子。
好,接下來我們用 Python3.6 演示(是不是在心里罵我了,騙子,你剛剛不是安裝的 Python3.7 嗎?你過來呀~)
好,看到了剛才的圖片,啥也不用點擊,關閉菜單,回到桌面,當做什么都沒有發生。
身為一個程序員,直接用鼠標點擊,沒感覺,按快捷鍵才刺激。
按下鍵盤上的 Ctrl+R,喚醒 運行 窗口,輸出 cmd,喚出控制臺,只有黑色才能喚醒我們的編程意識。
在上述窗口中,輸入 python,然后進入 Python 交互模式。
在接下來輸入 "hello world",效果如下,好了,到現在為止,你的 Python 環境已經配置的差不多了。
這里唯一要注意的就是 hello world ,前后都有個雙引號,而且是英文模式下輸入的,要不你試試中文雙引號?
繼續輸入 exit(),注意英文的括號,退出 Python 環境。
為了后續編碼方便,需要在當前窗口,繼續輸入 pip -V,大寫的 V,然后出現如下所示內容,表示 pip 安裝成功,這個叫做包擴展工具,核心作用就是借別人的代碼來使使。
Anaconda 安裝
其實安裝了 Python 之后,就可以寫代碼了,用電腦上自帶的記事本就可以,但是記事本寫起來很不方便,所以就出現了集成開發環境,Anaconda 就是其中的佼佼者,安裝這家伙之后,能大幅度提高學習 Python 的效率,所以你需要下載并安裝一個。
在搜索引擎搜索 Anaconda ,找清華大學的鏡像站點,從這里面下載速度快。
打開對應站點之后,選擇最新版本的軟件下載即可。
由于我們下載了最新版本的 Anaconda ,所以安裝過程中會默認安裝一個 Python3.9,驚喜不?我們又使用最新一個新版本的 Python 環境了。(注意 Windows7 無法使用該版本)
安裝完畢,在開始菜單找到對應程序,運行之后出現如下界面,一切成功。
后續學習過程中,主要圍繞 jupyter 操作,所以點擊該圖標下面的 Launch 嘗試首次運行,該程序將打開你的默認瀏覽器,并打開你的文檔 目錄,該目錄可修改
肯定有人不喜歡代碼文件放在 C 盤,所以有修改的需求,改法也非常簡單,在 你的文檔(C:\Users\Administrator) 里面找到 \.jupyter 文件夾,里面有下圖所示文件。
用記事本或者安裝一個 notepad++ 打開該文件,定位到 393 行上下,修改為下述格式,保存,退出。
c.NotebookApp.notebook_dir = 'F:/78tech'
注意在 F 盤需要新建一個文件夾,此時在運行 jupyter 就可以打開該目錄了。
如果發現找不到上述文件,也不要慌,打開 Anaconda Powershell Prompt,然后執行 jupyter notebook --generate-config 生成這個配置文件就好了。
初識 Python
在右側找到 New 按鈕,下拉出現 Python3 ,點擊即可創建新文件,里面就可以編寫 Python 代碼了。
關于 jupyter 的使用,可以通過搜索引擎,也可以直接跟著本系列博客,一點點的學習。
在文本框輸入 print("hello world"),然后點擊運行,你的第一段 Python 代碼就編寫完畢啦。
其實上述代碼已經包含了很多編程知識,僅僅一行,就包括了不下 5 個 Python 知識點,這些都將在后續展開進行說明。
一切從字符串開始
先來學習第一個知識點,Python 字符串,字符串是一個編程名詞,翻譯過來就是字符組成的串(跟沒說一樣)
在 Python 中,用引號來表示字符串,例如 雙引號 ",單引號 ',還有一個奇葩的三引號 """,對應的三單引號 '''。
所以下述代碼都是在 聲明 一個字符串。
name = "橡皮擦" name = '橡皮擦' name = """橡皮擦""" name = '''橡皮擦'''
此時你應該嘗試輸入一下上述代碼,找找編程的感覺,寫了幾行之后,你如果能得到如下幾個結論,證明水平還不錯。
引號都是成對出現的,前面一個后面一個
單引號對應單引號,雙引號對應雙引號,三引號對應三引號
這些引號都是在英文模式下輸入的,不能用中文的引號
字符串會伴隨我們的整個編程生涯,幾乎每段代碼都會碰到,因此咱們將其放在一開始就進行講解。
拿上述代碼中的一個例子進行講解,name = "橡皮擦",其中 name 叫做變量,可變的量,也是編程名詞,= 在這里表示的是賦值操作,代碼閱讀跟古文一樣,從右往左讀,所以 name = "橡皮擦" 表示,將字符串 橡皮擦 賦值 給 變量 name。
編程不好理解的地方就在這里,你會接觸到很多編程世界的名詞,這就是編程語言。
如果上面的三個名詞感覺掌握的差不多了,那大概率你會產生如下幾個問題,別著急,咱們慢慢解釋。
啥是變量?
賦值是個啥意思?
= 不是數學里面的等于嗎?
有這幾個疑問,你就要上道了,入門編程最難的就是這些新概念了。
啥是變量
變量其實在初一你就接觸了,例如一元一次方程,聲明一個 x。
x + 1 = 2 求 x 等于多少
上面的 x 就是變量,擴展到編程中,也是類似的含義,可變的量,用來存儲某些值的量,在某個地方能表示特定值的量,這些都是變量的概念(不用去咬文嚼字的非要死磕書本概念,先理解)。
賦值是啥意思?
賦值是一個動作,是一個命令,是告訴計算機把這個東西,給綁定到那個東西(那個變量上),你看這樣是不是就理解了賦值的涵義呢?
= 為啥不是等于了
這問到點子上了,這個符號在 Python 里面叫做賦值符,兩個 =,即 == 表示等于,別問為什么,寫代碼的時候,別寫錯了就行。
Python 中的字符串
到目前位置,你只接觸到了 Python 字符串概念,那你來看一下 '1' 是字符串嗎?答案肯定是,因為 1 被單引號包裹起來了。
既然字符串是一個字符的串,那你就可以把它當成糖葫蘆串,你可以對糖葫蘆做什么,就能對字符串做什么,例如吃第一個,吃最后一個,吃中間的 2 個,在頭上插入一個山楂,在尾部插入一個山楂,數數山楂的數量……
這些對應到 Python 字符串中,就是各種編程語法,編程概念,咱們一起翻譯翻譯。
我有一個字符串(糖葫蘆),我要吃第一個
tang_hu_lu = "都說冰糖葫蘆兒酸" # 聲明字符串 print(tang_hu_lu) # 打印輸出字符串 print(tang_hu_lu[0]) # 打印字符串的第一個字符
注意代碼都是在 jupyter 中進行編寫,然后點擊運行實現效果,運行的快捷鍵是 shift+enter
又是一段代碼,里面又涉及了很多編程概念,例如 tang_hu_lu 你已經知道它是一個變量了,但是 Python 變量是有命名規范的,例如 1_a 就是錯誤的,命名規范是啥呢?建議去搜搜,只有一個原則需要告訴你,就是命名盡量有含義,哪怕你用拼音。
# 表示注釋,相當于備注的意思,寫在 # 后面的內容不會被 Python 軟件 執行。
tang_hu_lu[0] 這里就有趣了,在變量名稱后面跟了一個中括號[],并且在里面寫了一個數字 0,它表示取這個串里面的第一個字符,在編程語言中,報數一般從 0 開始,也就是 0 表示第一位,是不是又有疑問了,為啥這么安排?
知道二進制不?二進制用 0,1 表示,所以從 0 開始數。
取第一個字符咱們已經會了,那最后一個呢
tang_hu_lu = "都說冰糖葫蘆兒酸" # 聲明字符串 print(tang_hu_lu) # 打印輸出字符串 print(tang_hu_lu[-1]) # 打印字符串的最后一個字符 print(tang_hu_lu[7]) # 打印字符串的最后一個字符
上述代碼就實現了,注意中括號里面的數字 [-1] 就是倒著數最后一個,當然你可以順著數,數到 7 就是第八個山楂了,這里嘗試把 7 修改成 8 ,看一下會報什么錯誤吧。
到這里就不得不拋出一個新的名詞了,索引,剛才中括號中的數字就是 索引值,看到沒,又是一個新概念,沒辦法,這就是編程。
字符串的第一個和最后一個你都能獲取到了,吃中間的怎么辦
tang_hu_lu = "都說冰糖葫蘆兒酸" # 聲明字符串 print(tang_hu_lu) # 打印輸出字符串 print(tang_hu_lu[2:4]) # 輸出冰糖 print(tang_hu_lu[3:5]) # 輸出糖葫
注意中括號擴展了,變成了 2 個數字,中間還有一個英文的冒號,此時一定要對比著原字符串進行學習。
- 都說冰糖葫蘆兒酸 - 0 1 2 3 4 5 6 7
看好各個的位置
[2:4] 輸出冰糖,分別對應索引 2,索引 3 位置的字符;
[3:5] 輸出糖葫,分別對應索引 3,索引 4 位置的字符;
那 [0:6] 你知道輸出什么了嗎?能說出來,恭喜你,Python 字符串切片你已經掌握 90%了,想不到吧,又是一個新概念,切片,多么形象!
字符串擴展方法
字符串除了切片用法以外,還可以使用一個新的概念,叫做 對象的方法,在 Python 中有一個說法,叫做萬物皆對象(對象的概念我們在后文展開學習,現在知道這么回事即可),例如現在有一個字符串,內容是 "都說冰糖葫蘆兒酸"。
先看代碼
my_str = "都說冰糖葫蘆兒酸" a = my_str.find("糖") print(a) # 輸出內容為 3
上述代碼中,在字符串變量 my_str 的后面增加一段代碼 .find("糖"),其中 .find() 就是一個字符串對象的方法,它的用途你順著剛才的代碼在細琢磨,就能知道,是查找 "糖" 這個小字符串在大字符串中的索引值。
同理,還有哪些需要掌握的字符串對象方法呢?
my_str = "AaBbCcDd" new_my_str = my_str.title() print(new_my_str) # Aabbccdd
.title() 方法表示將字符串首字母大寫
my_str = "AaBbCcDd" new_my_str = my_str.upper() print(new_my_str) # AABBCCDD
.upper() 方法表示將字符串全部大寫,全部小寫是 .lower()
字符串去除左右兩端的空格。
my_str = " AaBbCcDd " new_my_str = my_str.strip() print(new_my_str)
除了這些,字符串對象的方法還有很多,但是不需要記憶,你需要去搜索一些相關的博客進行閱讀,搜索關鍵字為 Python 字符串方法,然后看上幾篇博客,最終得到,“哦~字符串對象有這些方法,可以大小寫轉換,可以去除空格,可以檢索字符串,可以統計字符出現次數,還能判斷字符串中字符內容……”
內置函數
學到這里,還有一個概念要接觸一下,內置函數,現在的需求如下所示,我們需要統計有多少個糖葫蘆,即字符串有多少個字符,先看代碼,如下所示:
my_str = " AaBbCcDd " len_my_str = len(my_str) print(len_my_str) # 統計到了 10個
上述代碼中的 len() 就是一個 Python 內置函數,它表示統計長度,注意看內置函數和剛才學到的方法之間的差異,len() 函數,前面并沒有對象去調用它,調用 其實也是一個編程概念,就是那個 . 符號。
統計過程,你也會注意到 " AaBbCcDd " 算上空格,恰好是 10 個 字符,所以得出空格也是字符,這個基本認知。
后續我們還會學習更多的內置函數,接下來在學習 2 個,這兩個有助于提高編程效率。
第一個是 help(),該函數用來查看編程對象的幫助手冊,例如下述代碼
my_str = " AaBbCcDd " help(my_str )
不過該代碼無法在 jupyter 中運行,會得到如下結果
這里可以直接輸入 help(),進入手冊模式,在進行查詢即可。
在文本框輸入 str,就可以獲取到幫助手冊中的相關內容,也就是獲取到了字符串對象的相關方法。
第 3 個要學習的內置函數是 dir(),使用該函數可以直接把對象支持的方法全部輸出。
my_str = " AaBbCcDd " print(dir(my_str))
在 jupyter 的使用過程中,如果出現了 In [*],表示命令沒有執行完畢,需要點擊菜單欄的 Kernel,然后重啟服務。
字符串格式化
在 Python 中,字符串格式化有三種方式,分別為 % 占位符格式化,format() 方法格式化,以及 f-string,重點學習的是第二種和第三種方式進行格式化,例如下述代碼:
my_str = "小愛同學,今天天氣" answer_str = "今天的天氣是: {}".format("晴") print(answer_str)
第二個字符串中出現了一個大括號 {},然后通過 format() 函數對其進行了填充,同理,大括號可以出現多個,也可以有名稱,例如下述代碼:
# 多個大括號,format() 方法中需要多個值進行填充 my_str = "小愛同學,今天天氣" answer_str = "今天上午的天氣是: {},下午的天氣是:{}".format("晴","多云") print(answer_str) # 大括號中有占位符 my_str = "小愛同學,今天天氣" answer_str = "今天上午的天氣是: {shangwu},下午的天氣是:{xiawu}".format(shangwu="晴",xiawu="多云") print(answer_str)
在使用占位符的時候注意下,前后要一致,否則會出錯的。
上述代碼其實用到了函數相關支持,這些隨著我們的學習,都將逐步展開,當下最有效的學習方式,就是臨摹一遍代碼啦。
總結
第一天的學習到這里就可以了,重點內容在 Python 環境安裝,Anaconda 安裝,以及 Python 字符串相關內容,掌握了 Python 字符串之后,后續的學習就簡單了一點點,相信已經加入 78 技術人 的你能做到。
課后題
編程只學概念是完全不夠了,重要的是把這些概念融合起來,解決實際的問題,那看過來,下面的問題,你可以解決掉了嗎?
在讀取某些數據的時候,發現讀入進來的字符串左右都有空格,例如 " a short text ",需要去除掉。
進行文本輸出的時候,需要將用戶的姓名,年齡輸出到模板中的固定位置,例如 張三,28 輸出格式為 讀取到張三,年齡為28。
登錄模塊有驗證碼,顯式的時候有大小寫,但是不要求用戶輸入的時候按照大小寫輸入,即展示 aAbB,但用戶輸入 aabb 也能通過驗證。
讀取一段文本,發現其中 "的" 寫錯了,需要修改為 "得",使用字符串對象方法實現(本文未講解該函數,需依靠搜索引擎實現)。
支持博主時間
今天是持續寫作的第
277
/ 365 天。
可以
關注
我,
我、
評論
我、
我啦。
Python 網絡
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。