一、Python基礎語法
1、字面量
- 掌握字面量的含義
- 了解常見的字面量類型
- 基于print語句完成各類字面量的輸出
什么是字面量?
字面量:在代碼中,被寫下來的的固定的值,稱之為字面量
常用的值類型
Python中常用的有6種值(數據)的類型
字符串
字符串(string),又稱文本,是由任意數量的字符如中文、英文、各類符號、數字等組成。所以叫做字符的串
Python中,字符串需要用雙引號(")包圍起來。
被引號包圍起來的,都是字符串。
如何在代碼中寫它們
我們目前要學習的這些類型,如何在代碼中表達呢?
總結:
1. 掌握字面量的含義
代碼中,被寫在代碼中的固定的值,稱之為字面量
2. 常見的字面量類型
我們目前了解:整數、浮點數、字符串這三類即可
3. 如何基于print語句完成各類字面量的輸出
print(字面量),如:
print(10),輸出整數10
print(13.14),輸出浮點數13.14
2、注釋
- 了解注釋的作用
- 能夠使用單行注釋和多行注釋
?
注釋的作用
注釋:在程序代碼中對程序代碼進行解釋說明的文字。
作用:注釋不是程序,不能被執行,只是對程序代碼進行解釋說明,讓別人可以看懂程序代碼的作用,能夠
大大增強程序的可讀性。
注釋的分類
單行注釋:以 #開頭,#右邊 的所有文字當作說明,而不是真正要執行的程序,起輔助說明作用
注意,#號和注釋內容一般建議以一個空格隔開
多行注釋: 以 一對三個雙引號 引起來 ( ? ? ? ? ? ? )來解釋說明一段代碼的作用使用方法
注釋實戰
按照如圖所示,對代碼添加
- 單行注釋以及
- 多行注釋
添加完成注釋后,執行程序
驗證注釋是否對程序產生影響
總結:
1. 注釋的作用是?
注釋是代碼中的解釋型語句,用來對代碼內容進行注解
注釋不是代碼,不會被程序執行
2. 單行注釋如何定義?
通過 # 號定義,在#號右側的所有內容均作為注釋
建議在#號和注釋內容之間,間隔一個空格
單行注釋一般用于對一行或一小部分代碼進行解釋?
3. 多行注釋如何定義?
通過一對三個引號來定義("""注釋內容"""),引號內部均是注釋,可以換行
多行注釋一般對:Python文件、類或方法進行解釋
3、變量
- 理解變量的作用及特征
- 掌握變量的定義方式
?
什么是變量
變量:在程序運行時,能儲存計算結果或能表示值的抽象概念。
簡單的說,變量就是在程序運行時,記錄數據用的
變量的特征
變量,從名字中可以看出,表示“量”是可變的。
所以,變量的特征就是,變量存儲的數據,是可以發生改變的。
思考
為什么必須要使用變量?
都是輸出內容,直接輸出不行嗎?
變量的目的是存儲運行過程的數據
存儲的目的是為了:重復使用
總結:
1、變量是什么,有什么作用?
變量就是在程序運行時,記錄數據用的
2. 變量的定義格式是?
變量名 = 變量值
3. 變量的特征是?
?變量的值可以改變
4. print語句如何輸出多份內容?
print(內容1, 內容2, ......, 內容N)
5. Python中如何做減法?
使用符號 - 即可完成減法運算
拓展:加(+)、減(-)、乘(*)、除(/)
4、數據類型:
- 掌握使用type()語句查看數據的類型
- 理解變量無類型而數據有類型的概念
?
在學習字面量的時候,我們了解到:數據是有類型的。
目前在入門階段,我們主要接觸如下三類數據類型:
string、int、float這三個英文單詞,就是類型的標準名稱。
type()語句
那么,問題來了,如何驗證數據的類型呢?
我們可以通過type()語句來得到數據的類型:
語法:
type(被查看類型的數據)
type()語句的使用方式
1. 在print語句中,直接輸出類型信息:
2. 用變量存儲type()的結果(返回值)
?查看的都是<字面量>的類型,能查看變量中存儲的數據類型嗎?
那當然:可以
變量有類型嗎?
我們通過type(變量)可以輸出類型,這是查看變量的類型還是數據的類型?
查看的是:變量存儲的數據的類型。因為,變量無類型,但是它存儲的數據有。
總結:
1. 使用什么語句可以查看數據的類型?
type()
2. 如下代碼,name_type變量可以存儲變量name的類型信息,是因為?
因為type()語句會給出結果(返回值)
3. 變量有沒有類型?
沒有,字符串變量表示變量存儲了字符串而不是表示變量就是字符串
字符串類型的不同定義方式
字符串有3種不同的定義方式:
三引號定義法,表示在一堆三個雙引號的范圍內,均是字符串,如下:
5、數據類型轉換
- 掌握如何在字符串、整數、浮點數之間進行相互轉換
- 了解轉換的注意事項
為什么要轉換類型
數據類型之間,在特定的場景下,是可以相互轉換的,如字符串轉數字、數字轉字符串等
那么,我們為什么要轉換它們呢?
數據類型轉換,將會是我們以后經常使用的功能。
如:
- 從文件中讀取的數字,默認是字符串,我們需要轉換成數字類型
- 后續學習的input()語句,默認結果是字符串,若需要數字也需要轉換
- 將數字轉換成字符串用以寫出到外部系統
- 等等
用途很多,那么讓我們來學習一下如何轉換吧。
常見的轉換語句
?同前面學習的type()語句一樣,這三個語句,都是帶有結果的(返回值),我們可以用print直接輸出,或用變量存儲結果值。
類型轉換注意事項
類型轉換不是萬能的,畢竟強扭的瓜不會甜,我們需要注意:
- 任何類型,都可以通過str(),轉換成字符串
- ?字符串內必須真的是數字,才可以將字符串轉換為數字
總結:
1、字符串、整數、浮點數類型轉換的語句是?
2、任何類型都可以轉換成字符串,對不對?
正確
3. 字符串可以隨意轉換成數字,對不對?
錯誤,字符串內必須只有數字才可以
4. 浮點數轉整數會丟失什么?
丟失精度,也就是小數部分
6、標識符
- 理解什么是標識符
- 掌握標識符的命名規則
- 掌握變量的命名規范
什么是標識符
在Python程序中,我們可以給很多東西起名字,比如:
- 變量的名字
- 方法的名字
- 類的名字,等等
這些名字,我們把它統一的稱之為標識符,用來做內容的標識。
所以,標識符:
是用戶在編程的時候所使用的一系列名字,用于給變量、類、方法等命名。
標識符命名規則
Python中,標識符命名的規則主要有3類:
- 內容限定
- 大小寫敏感
- 不可使用關鍵字
?
標識符命名規則 - 內容限定
標識符命名中,只允許出現:
- 英文
- 中文
- 數字
- 下劃線(_)
這四類元素。
其余任何內容都不被允許。
?
標識符命名規則 - 大小寫敏感
以定義變量為例:
Andy = “安迪1”
andy = “安迪2”
字母a的大寫和小寫,是完全能夠區分的。
標識符命名規則 - 不可使用關鍵字
Python中有一系列單詞,稱之為關鍵字
關鍵字在Python中都有特定用途
我們不可以使用它們作為標識符
變量命名規范
學完了標識符(變量、類、方法)的命名規則后,我們在來學習標識符的命名規范。
- 變量名
- 類名
- 方法名
不同的標識符,有不同的規范。
我們目前只接觸到了:變量。所以,目前學習:變量的命名規范。
- 見名知意
- 下劃線命名法
- 英文字母全小寫
?
變量命名規范 - 見名知意
變量的命名要做到:
明了:盡量做到,看到名字,就知道是什么意思
簡潔:盡量在確保“明了”的前提下,減少名字的長度
?
變量命名規范 - 下劃線命名法
多個單詞組合變量名,要使用下劃線做分隔。
變量命名規范 - 英文字母全小寫
命名變量中的英文字母,應全部小寫:
總結:
1. 什么是標識符?
用戶編寫代碼時,對變量、類、方法等編寫的名字,叫做標識符。
2. 標識符的命名規則?
- 內容限定:(中文、英文、數字、下劃線)
- 大小寫敏感
- 不可使用關鍵字
3. 變量的命名規范?
- 見名知意
- 下劃線命名法
- 英文字母全小寫
?
7、運算符
了解Python中常見算術(數學)運算符、賦值運算符
算術(數學)運算符
算術運算符的演示
加減乘除和求平方,我們在前面已經使用過啦。
現在在帶上:整除以及求余數,一起試一試吧。
賦值運算符?復合賦值運算符
總結:
1、常見的算術(數學)運算符有: 加(+)、減(-)、乘(*)、除(/)、整除(//)、取余(%)、求平方(**)
2、賦值運算符有:
- 標準賦值: =
- 復合賦值:+=、-=、*=、/=、//=、%=、**=?
8、字符串擴展
- 字符串的三種定義方式
- 字符串拼接
- 字符串格式化
- 格式化的精度控制
- 字符串格式化方式2
- 對表達式進行格式化
?
字符串的三種定義方式
字符串在Python中有多種定義形式:
單引號定義法:
雙引號定義法:
三引號定義法:
三引號定義法,和多行注釋的寫法一樣,同樣支持換行操作。
使用變量接收它,它就是字符串
不使用變量接收它,就可以作為多行注釋使用。
字符串的引號嵌套
思考:如果我想要定義的字符串本身,是包含:單引號、雙引號自身呢?如何寫?
- 單引號定義法,可以內含雙引號
- 雙引號定義法,可以內含單引號
- 可以使用轉移字符(\)來將引號解除效用,變成普通字符串
?
總結:
字符串的三種定義方式:
- 單引號方式
- 雙引號方式
- 三引號方式
引號的嵌套
- 可以使用:\來進行轉義
- 單引號內可以寫雙引號或雙引號內可以寫單引號
?
字符串拼接
- 掌握如何拼接字符串
?
如果我們有兩個字符串(文本)字面量,可以將其拼接成一個字符串,通過+號即可完成。
不過一般,單純的2個字符串字面量進行拼接顯得很呆,一般,字面量和變量或變量和變量之間會使用拼接。
既然可以和字符串變量完成拼接,那么,是否可以和其它變量類型如數字類型完成拼接呢?
讓我們試一試。
總結:
1、如何完成字符串拼接?
使用“+”號連接字符串變量或字符串字面量即可
2. 有哪些注意事項?
無法和非字符串類型進行拼接
字符串格式化
- 掌握通過占位的形式拼接字符串(字符串格式化)
?
我們會發現,這個拼接字符串也不好用啊
變量過多,拼接起來實在是太麻煩了
字符串無法和數字或其它類型完成拼接。
我們可以通過如下語法,完成字符串和變量的快速拼接。
其中的,%s?
% ?表示:我要占位
s ? 表示:將變量變成字符串放入占位的地方
所以,綜合起來的意思就是:我先占個位置,等一會有個變量過來,我把它變成字符串放到占位的位置。
那,數字類型呢?可以不可以占位?
那必須可以,我們來嘗試如下代碼:
多個變量占位,變量要用括號括起來,并按照占位的順序填入。
?
數字也能用%s占位嗎?
可以的哦,這里是將數字 轉換成了 字符串哦
也就是數字57,變成了字符串"57"被放入占位的地方
數字類型,也太沒有地位了吧,竟然要被轉成字符串拼接。
有沒有體面一點的方式,讓數字以其原本的面貌拼接進去呢?
安排。
Python中,其實支持非常多的數據類型占位
最常用的是如下三類
?如下代碼,完成字符串、整數、浮點數,三種不同類型變量的占位。
總結:
1、字符串格式化的語法?
"%占位符" % 變量
2. 常用占位符有哪3個?
字符串:%s
整數:%d
浮點數:%f
格式化的精度控制
- 掌握格式化字符串的過程中做數字的精度控制
?如下代碼,完成字符串、整數、浮點數,三種不同類型變量的占位
細心的同學可能會發現:
浮點數19.99,變成了19.990000輸出
這里我們就要講解一下,字符串格式化之“數字精度控制”
我們可以使用輔助符號"m.n"來控制數據的寬度和精度
- m,控制寬度,要求是數字(很少使用),設置的寬度小于數字自身,不生效
- .n,控制小數點精度,要求是數字,會進行小數的四舍五入
示例:
- %5d:表示將整數的寬度控制在5位,如數字11,被設置為5d,就會變成:[空格][空格][空格]11,用三個空格補足寬度。
- %5.2f:表示將寬度控制為5,將小數點精度設置為2,小數點和小數部分也算入寬度計算。如,對11.345設置了%7.2f 后,結果是:[空格][空格]11.35。2個空格補足寬度,小數部分限制2位精度后,四舍五入為 .35
- %.2f:表示不限制寬度,只設置小數點精度為2,如11.345設置%.2f后,結果是11.35
?
體驗一下如下代碼的快樂吧。
總結:
1. 精度控制的語法是:
m.n的形式控制,如%5d、%5.2f、%.2f
m和.n均可省略
2. 如果m比數字本身寬度還小,會發生什么事?
m不生效
3. .n會對小數部分做精度限制,同時:?
會對小數部分做四舍五入
字符串格式化方式2
- 掌握快速字符串格式化的方式
?
目前通過%符號占位已經很方便了,還能進行精度控制。
可是追求效率和優雅的Python,是否有更加優雅的方式解決問題呢?
那當然:有
通過語法:f"內容{變量}"的格式來快速格式化
看如下代碼
這種寫法不做精度控制
也不理會類型
適用于快速格式化字符串
總結:?
1、可以通過
f”{變量} ?{變量}”的方式進行快速格式化
2. 這種方式:
- 不理會類型
- 不做精度控制
適合對精度沒有要求的時候快速使用
對表達式進行格式化
- 了解什么是表達式
- 掌握對表達式進行字符串格式化
剛剛的演示,都是基于變量的。
可是,我想更加優雅些,少寫點代碼,直接對“表達式”進行格式化是否可行呢?
那么,我們先了解一下什么是表達式。
表達式:一條具有明確執行結果的代碼語句
如:
1 + 1、5 * 2,就是表達式,因為有具體的結果,結果是一個數字
又或者,常見的變量定義:
name = “張三” ? ? age = 11 + 11
等號右側的都是表達式呢,因為它們有具體的結果,結果賦值給了等號左側的變量。
那么,對于字符串格式化,能否直接格式化一個表達式呢?
可以,上代碼:
在無需使用變量進行數據存儲的時候,可以直接格式化表達式,簡化代碼哦
總結:
1. 表達式是什么?
表達式就是一個具有明確結果的代碼語句,如 1 + 1、type(“字符串”)、3 * 5等
在變量定義的時候,如 age = 11 + 11,等號右側的就是表達式,也就是有具體的結果,將結果賦值給了等號左側的變量
2. 如何格式化表達式?
f"{表達式}"
"%s\%d\%f" % (表達式、表達式、表達式)
練習:
股價計算小程序
定義如下變量:
- name,公司名
- stock_price,當前股價
- stock_code,股票代碼
- stock_price_daily_growth_factor,股票每日增長系數,浮點數類型,比如1.2
- growth_days,增長天數
計算,經過growth_days天的增長后,股價達到了多少錢
使用字符串格式化進行輸出,如果是浮點數,要求小數點精度2位數。
示例輸出:
紅色框框都是變量,要使用格式化的方式拼接進去
提示,可以使用: 當前股價 * 增長系數 ** 增長天數, 用來計算最終股價哦
如,股價19.99 * 系數1.2 ** 7天 = 71.62778419199998,小數點現在精度2位后結果:71.63
?
二、Python判斷語句
前言
進行邏輯判斷,是生活中常見的行為。同樣,在程序中,進行邏輯判斷也是最為基礎的功能。
為什么學習判斷語句?
判斷在程序中廣泛應用,如果沒有它,這些功能都難以實現。
布爾類型和比較運算符
- 掌握布爾類型用于表示:真和假
- 掌握比較運算符用于計算:真和假
進行判斷,只有2個結果:
- 是
- 否
?
布爾類型
Python中常用的有6種值(數據)的類型
布爾類型的定義
布爾類型的字面量:
True ?表示真(是、肯定)
False 表示假 (否、否定)
定義變量存儲布爾類型數據:
變量名稱 = 布爾類型字面量
布爾類型不僅可以自行定義
同時也可以通過計算的來。
也就是使用比較運算符進行比較運算得到布爾類型的結果。
比較運算符
布爾類型的數據,不僅可以通過定義得到,也可以通過比較運算符進行內容比較得到。
如下代碼:
總結:
1、在Python中,可以表示真假的數據類型是:
布爾類型,字面量True表示真,字面量False表示假
2. 除了可以定義布爾類型外,還可以通過____計算得到布爾類型?
通過<比較運算符>計算得到布爾類型的結果
- == 判斷是否相等,!= 判斷是否不相等
- >判斷是否大于,<判斷是否小于
- >=判斷是否大于等于,<=判斷是否小于等于
?
if語句的基本格式
- 掌握邏輯判斷語句(if)的基本語法格式
- 掌握布爾類型數據,在判斷語句中的作用
?
if判斷語句
?
if語句的注意點
判斷語句的結果,必須是布爾類型True或False
True會執行if內的代碼語句
False則不會執行
總結:?
1、if語句的基本格式:
2. if語句的注意事項:
- 判斷條件的結果一定要是布爾類型
- 不要忘記判斷條件后的: 引號
- 歸屬于if語句的代碼塊,需在前方填充4個空格縮進
if else 語句
- 掌握if else 語句的組合用法
?
if滿足條件會執行相應的代碼語句,如果不滿足呢?
有沒有不滿足的情況下,可供執行的代碼呢?
if else 語句可以實現
if else語句注意點
1. else后,不需要判斷條件
2. 和if的代碼塊一樣,else的代碼塊同樣需要4個空格作為縮進
總結:
1、if else 語句,其中
- if和其代碼塊,條件滿足時執行
- else搭配if的判斷條件,當不滿足的時候執行
2. if else語句的注意事項:
- else不需要判斷條件,當if的條件不滿足時,else執行
- else的代碼塊,同樣要4個空格作為縮進
?
if elif else語句
掌握if elif else語句進行多條件判斷的語法
某些場景下,判斷條件不止一個,可能有多個。
這種需求能用Python實現嗎?
if elif else 語句可以實現
if elif else語句
?if elif else語句 注意點:
elif 語句可以寫多個。
判斷是互斥且有順序的:
- 滿足1(如圖編號)將不會理會2和3
- 滿足2,將不會理會3
- 1、2、3均不滿足,進入else
- else也可以省略不寫,效果等同3個獨立的if判斷
?
?空格縮進同樣不可省略
總結:
1、if elif else語句的作用是?
可以完成多個條件的判斷
2. 使用if elif else的注意點有:
- elif可以寫多個
- 判斷是互斥且有序的,上一個滿足后面的就不會判斷了
- 可以在條件判斷中,直接寫input語句,節省代碼量
判斷語句的嵌套
- 掌握Python判斷語句的終極用法:嵌套使用
有很多場景,不僅僅是多個并列條件,還會有滿足前置條件才會二次判斷的多層判斷需求。
對這種需求,嵌套判斷語句可以實現
許多邏輯的判斷,是嵌套的,多層次的。
對于這種需求,我們可以:自由組合 if elif else,完成特定需求的要求
基礎語法格式如下:
如上圖,第二個if,屬于第一個if內,只有第一個if滿足條件,才會執行第二個if
嵌套的關鍵點,在于:空格縮進
通過空格縮進,來決定語句之間的:層次關系
簡單嵌套:
如圖:???????
判斷有2層
當外層if滿足條件(圖中編號1)時,才會執行內層if判斷(圖中編號2)
當外層if(編號1)不滿足,直接執行外層esle
自由組合嵌套,需求如下:
公司要發禮物,條件是:
1. 必須是大于等于18歲小于30歲的成年人
2. 同時入職時間需滿足大于兩年,或者級別大于3才可領取
???????
如圖:
if elif else 可以自由組合
滿足縮進的要求即可
總結:
- 嵌套判斷語句可以用于多條件、多層次的邏輯判斷
- 嵌套判斷語句可以根據需求,自由組合if elif else來構建多層次判斷
- 嵌套判斷語句,一定要注意空格縮進,Python通過空格縮進來決定層次關系
?