
全文很長細細品讀!
文章目錄
- 課程框架
- 一、python環境配置及入門
- 1.配置
- 2.入門
- 第一個程式
- 基本資料型別
- 基本運算子
- 起名法則
- 資料型別間相互轉換
- 組合資料型別
- list
- 元組 tuple
- 可變物件 不可變物件
- 字典dict
- 集合 set
- if陳述句
- 回圈陳述句
- break continue pass
- 二、python編程基礎
- 1.字串進階
- 字串索引、切片
- 字串常用函式
- list進階
- list索引、切片
- list常用函式
- 串列生成式
- 生成器
- 練習 斐波那契數列
- 例外處理
- Python函式基礎
- 定義一個函式并使用
- 引數傳遞
- 位置引數
- 預設引數
- 可變引數
- 關鍵字引數
- 命名關鍵字引數
- 引數的組合
- lambda匿名函式
- 高階函式
- sorted
- 模塊
- 大作業一
- 面向物件
- 大作業二
- 大作業三
- 大作業四
- 總結
課程框架
一句話!一篇文章學會Python
一、python環境配置及入門
1.配置
方法一 直接安裝python本體(不推薦) 下載地址: https://www.python.org/downloads/ 方法二 Anaconda(強烈推薦!) 下載地址 https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/ 方法三: 百度AI Studio(強烈推薦!) 訪問地址 https://aistudio.baidu.com/ 為了方便管理,后續作業在百度AI Studio上完成,為了和教學版本一致,本地環境最好下載python3.7版本(anaconda:2019年7月版本,注意下載anaconda3)這軟體安裝都不再多說了,相信大家都穩得一筆了!
2.入門
全文以anaconda作為演示,如果你不想用這個,其他二者是完全一樣的,

因為入門,打開這個即可,其他環境都不需要管,
第一個程式
看看大概有個了解即可,不必深究,等文章看完一遍再看第二遍,你一定會豁然開朗

基本資料型別
整數:int
浮點數:也就是小數float
字串:
字串是以單引號'或雙引號"括起來的任意文本
'this is a string'
"yes"
'爸爸說:"今天我做飯"'
"爸爸說:\"今天我做飯\""
len('hello world!')

布林值:True False

空值:None
空值是Python里一個特殊的值,用None表示,None不能理解為0,因為0是有意義的,而None是一個特殊的空值
基本運算子

變數賦值:(學過其他語言一筆帶過即可,沒學過一定要一個一個試試)

起名法則
簡單地理解,識別符號就是一個名字,就好像我們每個人都有屬于自己的名字,它的主要作用就是作為變數、函式、類、模塊以及其他物件的名稱
Python 中識別符號的命名不是隨意的,而是要遵守一定的命令規則,比如說:
識別符號是由字符(A~Z 和 a~z)、下劃線和數字組成,但第一個字符不能是數字, 識別符號不能和 Python 中的保留字相同, Python中的識別符號中,不能包含空格、@、% 以及 $ 等特殊字符, 在 Python 中,識別符號中的字母是嚴格區分大小寫的
簡單來說,你別護理呼哨的就行了,符號啥的你不用就完事了
資料型別間相互轉換

組合資料型別
list
list是一種有序的集合,可以隨時添加和洗掉其中的元素,

元組 tuple
另一種有序串列叫元組:tuple,tuple和list非常類似,但是tuple一旦初始化就不能修改

可變物件 不可變物件
可變物件:list dict set
不可變物件:tuple string int float bool
字典dict
Python內置了字典:dict的支持,dict全稱dictionary,在其他語言中也稱為map,使用鍵-值(key-value)存盤,具有極快的查找速度,

集合 set
set和dict類似,也是一組key的集合,但不存盤value,由于key不能重復,所以,在set中,沒有重復的key,

if陳述句

此外注意,新手必犯的錯誤!!! 編程語言中==才是判斷是否等于,一個=是賦值,

回圈陳述句

復雜一點的用法

break continue pass
如果希望在中間離開回圈,也就是 f or 回圈結束重復之前,或者 while 回圈找到結束條件之 前,有兩種?式來做到:
- 使? break 陳述句來完全終?回圈,
- 使? continue 陳述句直接跳到回圈的下?次迭代,



二、python編程基礎
1.字串進階
字串索引、切片


小應用

字串常用函式
count 計數功能
顯示自定字符在字串當中的個數

find 查找功能
回傳從左第一個指定字符的索引,找不到回傳-1
index 查找
回傳從左第一個指定字符的索引,找不到報錯


split 字串的拆分

字串的替換

字串標準化
默認去除兩邊的空格、換行符之類的,去除內容可以指定

字串的變形

字串的格式化輸出 ☆

list進階
list索引、切片

list常用函式
添加新的元素

count 計數 和 index查找

洗掉元素

串列生成式

生成器
通過串列生成式,我們可以直接創建一個串列,但是,受到記憶體限制,串列容量肯定是有限的,而且,創建一個包含100萬個元素的串列,不僅占用很大的存盤空間,如果我們僅僅需要訪問前面幾個元素,那后面絕大多數元素占用的空間都白白浪費了,
(大白話:不會直接運行完)

練習 斐波那契數列

例外處理

Python函式基礎
定義:
函式是組織好的,可重復使用的,用來實作單一,或相關聯功能的代碼段,
函式能提高應用的模塊性,和代碼的重復利用率,你已經知道Python提供了許多內建函式,比如print(),但你也可以自己創建函式,這被叫做用戶自定義函式,
函式代碼塊以 def 關鍵詞開頭,后接函式識別符號名稱和圓括號(),
任何傳入引數和自變數必須放在圓括號中間,圓括號之間可以用于定義引數,
函式的第一行陳述句可以選擇性地使用檔案字串—用于存放函式說明,
函式內容以冒號起始,并且縮進,
return [運算式] 結束函式,選擇性地回傳一個值給呼叫方,不帶運算式的return相當于回傳 None,
定義一個函式并使用
這個函式用來列印名字并return了dict的值


引數傳遞
位置引數
位置引數是最簡單的一種函式呼叫的方式,位置引數須以正確的順序傳入函式、數量必須和宣告時的一樣,

預設引數
呼叫函式時,預設引數的值如果沒有傳入,則被認為是默認值,

可變引數
顧名思義,可變引數就是傳入的引數個數是可變的,可以是1個、2個到任意個,還可以是0個,

關鍵字引數
關鍵字引數允許你傳入0個或任意個含引數名的引數,這些引數在自動組裝為一個dict,

命名關鍵字引數
如果要限制關鍵字引數的名字,就可以用命名關鍵字引數

引數的組合
在Python中定義函式,可以用必選引數、默認引數、可變引數、關鍵字引數和命名關鍵字引數,這5種引數都可以組合使用,但是請注意,引數定義的順序必須是:必選引數、默認引數、可變引數、命名關鍵字引數和關鍵字引數,

lambda匿名函式
python 使用 lambda 來創建匿名函式,
lambda 只是一個運算式,函式體比 def 簡單很多,
lambda 的主體是一個運算式,而不是一個代碼塊,僅僅能在 lambda 運算式中封裝有限的邏輯進去,
lambda 函式擁有自己的命名空間,且不能訪問自有引數串列之外或全域命名空間里的引數,
雖然 lambda 函式看起來只能寫一行,卻不等同于 C 或 C++ 的行內函式,后者的目的是呼叫小函式時不占用堆疊記憶體從而增加運行效率,
我的理解(就給lambda當成特殊符號 ,看見他就是函式的內容要開始寫了,冒號前是輸入的引數,冒號后是輸出的東西,這一個整塊就是 一個函式,包括lambda字母)如下,是不是很清楚了

高階函式
就不說了
sorted

模塊
如下圖 time模塊
代碼第二行是讓程式睡眠一秒,第一行和第三行是得到當前的時間
時間是秒為單位,起點是1970.01.01,所以第一行time不是0第三行不是1

安裝/卸載第三方模塊
pip install / uninstall
例如:打開cmd(anacondade啟動選擇第一個打開)

綠色的第一個選項就是了(圖中后兩個為我本人的學習環境,你們可以忽略)

大作業一
統計英語6級試題中所有單詞的詞頻,并回傳一個如下樣式的字典
{‘and’:100,‘abandon’:5}
文本內容自行百度一段英文文章即可,

直接上本人的代碼:

狡辯:沒有用到 re模塊,覺得不用實作也挺簡單的(實際上沒去學re正則運算式hhh)
面向物件
大作業二
通過前面的理解學習,基礎的代碼撰寫一定可以了,下面才是真正的進階
直接 上代碼,自行理解,并非最優代碼,僅供學習參考
1.首先放入資料文本

內容分別為:自行寫個txt放進去就行了
loren,2011-11-3,270,3.59,4.11,3:11,3:23,4-10,3-23,4:10,4.21,4-21
mark,2010-2-4,300,3.59,3.11,3:11,3:23,4-10,4-23,4:10,4.21,4-21
作業要求:讀取 上述文本,并將第三個數字后面的資料處理為3.59一樣的型別數字,輸出最大的三個數,Loren和Mark分別為Rugby物件和OtherAthlete物件,輸出樣例如下:
loren
2011-11-3
270
['3.11', '3.23', '3.59']
mark
2010-2-4
300
['3.11', '3.11', '3.23']
上代碼!!!!



over,就不給你原始碼,氣不氣,自己練去吧!
大作業三
資料如下:
stu1.txt 孫同學,2020-5-21,20,‘男’,77,56,77,76,92,58,-91,84,69,-91
stu2.txt 趙同學,2020-11-3,24,‘女’,65,68,72,95,-81,71,86,91,57,91
stu3.txt 王同學,2021-8-7,25,‘男’,87,78,90,-76,88,47,100,65,69,100
stu4.txt 李同學,2021-8-10,29,‘男’,92,54,85,71,-91,68,77,68,95,95
定義Student類,包括name、dob、age、gender和score屬性,包括top3方法用來回傳學生的最大的3個成績(可重復)、sanitize方法用來將負的分數變為正的分數,負的分數可能是輸入錯誤,宣告stu_list物件組數用于存盤所有的學生物件,最后輸出所有的學生資訊包括姓名、生日、年齡、性別、最高的3個分數,
第一題的輸出結果如下,供參考:

這次不逼逼了,直接上代碼 :

大作業四
資料格式如下:
stu5.txt 特長同學,2020-10-5,20,‘男’,180,87,98,77,76,92,58,-76,84,69,-47
stu6.txt 特長同學,2020-10-6,20,‘女’,230,76,48,82,88,92,58,-91,84,69,-68
定義Spostudent、Artstudent為Student的子類,在子類的屬性里面新增了spe為特長分數,Spostudent包括的top3方法回傳的是最低的3個得分(可重復),Artstudent包括top3方法回傳的是最高的3個得分(可重復),最后使用多型的方式輸出2個特長同學的姓名、生日、年齡、性別、分數、特長分,
第二題的輸出結果如下,供參考:

在作業二的基礎上擴展如下代碼:

over!到此為止,Python 你已經入門!
總結
感謝百度飛槳的這次免費公開課,老師講的都很清晰耐心,本人有其他編程語言的底子,所以聽起來會超級上手,可能撰寫的代碼還是不夠完美,但是足矣完成要求,本篇內容代碼可以加私信本人csdn獲取(不定期查看私信),
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/258736.html
標籤:python
上一篇:OpenMV多色塊識別
