面向Python,物件導向(基礎)

發燒級發表於2018-12-07

1.計算機組成

計算機由硬體系統與軟體系統組成。

計算機硬體系統包含:

  • 運算器:CPU內計算的硬體
  • 控制器:CPU內用於控制部件工作
  • 儲存器(記憶體儲器(記憶體條)/外儲存器(U盤))
  • 輸入裝置:滑鼠,鍵盤等
  • 輸出裝置:螢幕等

計算機軟體系統包含:

  • 系統軟體:Windows、Linux、Unix等
  • 應用軟體:QQ、Word等

2.Python語音

Python語言是一種物件導向的解釋型計算機程式設計語言。

Python語言創始人為吉多•範羅蘇姆(Guido van Rossum)

面向Python,物件導向(基礎)

Python語言的特點

優點:

簡單、易學、免費、開源、高層語言、可移植性、解釋性、物件導向、可擴充性、豐富的庫、規範的程式碼等。

缺點:

執行速度慢、目前國內市場小、中文資料匱乏、構架選擇太多等。

基礎語法

1. 註釋

1.1 單行註釋

語法格式: #[空格]說明性文字資訊

新增快捷鍵: Ctrl+/

取消快捷鍵: Ctrl+/

面向Python,物件導向(基礎)

1.2 多行註釋

語法格式: """說明性文字資訊"""

快捷鍵:<無>

面向Python,物件導向(基礎)

1.3 工作日誌說明

語法格式: # TODO 說明文字

快捷鍵:<無>

面向Python,物件導向(基礎)

1.4 註釋的使用場景

  • 新增說明性的文字
  • 除錯程式,將制定程式碼行的功能取消,使其在程式碼中不生效
  • 記錄工作日誌,方便資訊查詢

2. pycharm中提示性資訊

  • 語法錯誤:文字底部紅色波浪線
  • 語法不符合規範:文字底部灰色波浪線
  • 單詞拼寫提示:文字底部綠色波浪線

3. 算數運算子

3.1 算數運算子

符號 作用 說明
+ 計算兩個數的和
- 計算兩個數的差
* 計算兩個數的乘積
/ 計算兩個數的商
// 整除 兩個整數相除後,取結果的整數部分
% 取餘 兩個整數相除後,取結果的餘數部分
** 乘方 計算a的b次方

3.2 算術優先順序

  • 乘方 > 乘、除、整除、取餘 > 加、減
  • 相同等級的運算順序為從左到右
  • 可以使用括號改變運算順序

4. 關鍵字

4.1 概念

關鍵字是python中已佔用,具有特殊含義的符號

4.2 關鍵字表

and as assert break
class continue def del
elif esle except finally
for from global if
import in is lambda
nonlocal not or pass
raise return try while
with yield False None
True

5. 識別符號

5.1 概念

識別符號是指用來標識某個實體的符號

5.2 識別符號規範

1.只能由數字,字母,_(下劃線)組成
2.不能以數字開頭
3.不能是關鍵字
4.區分大小寫
複製程式碼

5.3 命名約束

  • 下劃線分割法(推薦):first_name
  • 駝峰命名法:首字母大寫,或每個單詞首字母大寫

6.變數

6.1 變數概念

變數用於描述計算機中的資料儲存空間

6.2 變數作用

在計算機記憶體中儲存資料

6.3 變數語法格式

定義變數: 變數名 = 值 使用變數: 變數名

6.4 特殊使用格式

a = b = 1 相當於 b = 1 , a = 1

7. 變數的型別

7.1 變數型別

名稱 中文名稱 作用
int 整型 表示所有整數
float 浮點型 表示所有的小數
bool 布林型 表示邏輯值
str 字串 表示字串資訊

7.2 變數型別獲取

使用type(資料)即可獲取資料對應的型別

7.3 注意事項

變數的型別在變數使用過程中隨時發生改變,以最後一次執行=操作的結果為準

8. 賦值運算子

8.1賦值運算子

符號 作用 格式
= 賦值 a=b,將b的值給a
+= 加後賦值 a+=b,將a+b的值給a
-= 減後賦值 a-=b,將a-b的值給a
*= 乘後賦值 a*=b,將a*b的值給a
/= 除後賦值 a/=b,將a/b的值給a
//= 整除後賦值 a//=b,將a//b的值給a
%= 取餘後賦值 a%=b,將a%b的值給a
**= 次方後賦值 a**=b,將a**b的值給a

8.2 注意事項

  • 基本賦值運算=操作,左側只能是變數,右側可以是任意資料或變數
  • 特殊賦值運算的左側只能是變數,右側可以是變數,也可以是數字

9. 字串運算

9.1 字串連線運算

字串之間可以使用+運算子完成多個字串之間的拼接操作

面向Python,物件導向(基礎)

9.2 字串反覆連線運算

字串可以使用*運算子完成單個字串的連續拼接操作

面向Python,物件導向(基礎)

9.3 注意事項

字串連線運算+不能在字串型別與其他型別間進行操作

案例:計算圓的面積

"""
案例:計算圓面積
圓面積 = 圓周率 × 半徑的平方
分析:
半徑需要設定變數        r
圓周率需要設定變數      pi
計算結果圓的面積需要設定變數  area
"""
# r表示半徑
r = 3.5
# pi表示圓周率
pi = 3.14
# area表示面積
area = pi * r ** 2

print(area)

複製程式碼

10. 標準輸入輸出

10.1 輸入

10.1.1 語法格式

格式一: input()

格式二: input(“提示資訊”)

10.1.2 輸入資料的接收

格式一:變數 = input()

格式二:變數 = input(“提示資訊”)

10.1.3 注意事項

控制檯執行到input()操作後,會將程式掛起,等待使用者輸入資料,在使用者未完成資料輸入之前,程式不向下執行,一旦控制檯接收到使用者輸入的資料後,繼續向下執行

10.2 輸出

10.2.1 語法格式

格式一:直接輸出變數 print(變數)

格式二:輸出包含單個佔位符字串的資訊 print(“包含1個佔位符的格式化字串” % 變數 )

格式三:輸出包含多個佔位符字串的資訊 print(“包含多個佔位符的格式化字串” % (變數1,變數2,…) )

10.2.2 輸出佔位符

面向Python,物件導向(基礎)

10.3 資料型別轉換

10.3.1 輸入資料的型別

input函式接收的資料預設為字串型別

10.3.2 轉換函式

通過轉換函式實現接收其他型別的資料

1.接收整數:字串→整型資料: int(“整數格式的字串”)

2.接收小數:字串→浮點型資料:float(“小數格式的字串”)

10.3.3 注意事項

1.字串型別資料可以轉換成其他型別資料,但是資料必須是可轉換的。 例如:“123”可以轉化成123 例如:“23x”不可以轉化

2.整型(int)資料可以轉換成浮點型(float)資料,在原始整型資料後面補.0 例如:123可以轉化成123.0

  1. 浮點型(float)資料無法轉換成整型(int)資料,無論原始資料是不是整數 例如:123.0不可以轉化成123

案例:計算圓面積(輸入輸出版)

"""
完成“輸入輸出”版計算圓面積程式
需求:
    1.圓的半徑需要通過鍵盤錄入,半徑值必須相容小數
    2.輸出格式:半徑為10的圓形面積為314。
分析:
    1.input 最終型別要使用float
    2."半徑為%.2f的圓形面積為%.4f。"
"""
# 定義圓周率
pai = 3.14
# 從鍵盤錄入半徑值
r = float(input("請輸入您要計算的圓的半徑值(最多2位小數):"))
# 計算圓的面積
area = pai * r ** 2
#格式化輸出
print("半徑為%.2f的圓形面積為%.4f。" % (r , area))
複製程式碼

11. 分支語句

11.1 比較運算子

比較運算是發生在兩個同型別資料間的一種操作,比較運算是使用固定的比對規則對兩個資料進行比對,如果比較運算式子成立得到結果True,如果不成立,得到結果False

11.1.1 常用的比較運算子

符號 說明
= = 判斷兩個運算元的值是否相等,成立為True
!= 判斷兩個運算元的值是否不相等,成立為True
> 判斷左運算元是否大於右運算元,成立為True
< 判斷左運算元是否小於右運算元,成立為True
>= 判斷左運算元是否大於等於右運算元,成立為True
<= 判斷左運算元是否小於等於右運算元,成立為True

11.1.2 字元進行比較運算的排序規則

0..數字..9 < A..大寫字母..Z < a..小寫字母..z

11.1.3 字串比較運算規則

1.對兩個字串中對應位置每個字元逐一比對

2.排序較小的整體字串值小

3.如果比較結果相等,比較下一個字母

4.直到比對到最後一個字母

5.若比對的一方沒有字元,則整體字串值小

11.2 關係運算子

11.2.1 關係運算

關係運算是發生在兩個布林型資料間的一種操作,關係運算是根據固定規則對兩個布林值進行運算,最終結果是布林值

11.2.2 常見的關係運算子

and:表示兩個布林值之間的並且關係,例如 True and False

or:表示兩個布林值之間的或者關係,例如 True or False

not:表示一個布林值的反向對立關係,例如 not False

11.2.3 真值表

and True False
True True False
False False False

邏輯與:同真則真

or True False
True True True
False True False

邏輯或:同假則假

True False
not False True

邏輯非:非真即假,非假即真

11.2.4 注意事項

1.數字可以作為關係運算的資料進行運算,0表示False,非0表示True

2.數字與布林值混用出現在關係運算中時,任意運算元可以決定整個式子值的,最終結果即為該運算元(參看真值表)

例如:True and 0	→ 0 
例如:0 and True	→ 0
例如:4 or False	→ 4
例如:False or 4	→ 4
複製程式碼

3.數字與布林值混用出現在關係運算中時,如果兩個運算元都無法單獨決定整個式子值的(參看真值表),最終結果即為後面的運算元

例如:True and 10	→ 10 
例如:10 and True	→ True
例如:False or 0	→ 0
例如:0 or False	→ False
複製程式碼

11.3 分支語句

11.3.1 概念

分支語句: 計算機三種基礎語句(順序、分支、迴圈)之一,用於描述“如果滿足什麼條件,就怎麼樣,否則就怎麼樣”的語法。

11.3.2 語法格式

格式一: if 條件: 條件成立執行的程式碼

格式二: if 條件: 條件成立執行的程式碼 else: 條件不成立執行的程式碼

面向Python,物件導向(基礎)
格式三: if 條件1:

	    條件1成立執行的程式碼
複製程式碼

elif 條件2:

    	條件2成立執行的程式碼
複製程式碼

elif 條件3:

    	條件3成立執行的程式碼
複製程式碼

else:

        條件都不成立執行的程式碼
複製程式碼
score = 73
if score == 100:
    print("買自行車")
elif score >= 95 and score < 100:
    print("去遊樂場玩")
elif score >= 90 and score < 95:
    print("買大玩具")
elif score >= 80 and score < 90:
    print("不獎不罰")
else:
    print("小心屁屁")
print("結束")
複製程式碼

11.3.3 執行流程

1.if語句執行流程

面向Python,物件導向(基礎)
2.if..else..語句執行流程

面向Python,物件導向(基礎)
3.if..elif..else..語句執行流程

面向Python,物件導向(基礎)

11.3.4 分支巢狀

分支巢狀即分支語句的執行程式碼中包含全新的分支語句結構

11.4 程式碼書寫規範(瞭解)

11.4.1 超長行處理方案

方案一:換行處使用\

方案二:對整體新增(),()中隨意換行

案例:減肥計劃

"""
案例:減肥計劃
要求:輸入星期數,顯示今天的減肥活動
   週一:跑步       週二:游泳     週三:健身房
   週四:動感單車   週五:拳擊     週六:爬山
   週日:好好吃一頓
"""
# 分析
# 1.鍵盤輸入一個數字,表示今天是星期幾。int str?都可以
# 2.分7種情況,選擇if..elif..else語法結構,寫6個條件,最後一個用else
# 3.每種情況中按照要求列印即可

week = int(input("請輸入今天星期幾:"))
if week == 1:
    print("跑步")
elif week == 2:
    print("游泳")
elif week == 3:
    print("健身房")
elif week == 4:
    print("動感單車")
elif week == 5:
    print("拳擊")
elif week == 6:
    print("爬山")
else:
    print("大吃一頓")
複製程式碼

案例:外賣結算

"""
案例:外賣結算
要求:滿30減10塊,滿50減20,滿100減50,會員折上再8折。
"""
# 分析
# 1.輸入的資料有兩個,1是價格(小數),2是會員資格(布林)
# 2.滿減活動分4種情況,選擇if..elif..else結構
# 3.在每種情況中做一件事,就是價格發生變化
price = float(input("請輸入您的總價:"))
member = input("請輸入您是否是會員(是/否)")
if price >= 100:
    price -= 50
elif price >= 50:
    price -= 20
elif price >= 30:
    price -= 10
if member == "是":
    price *= 0.8
print("您最終需要支付%0.2f元" % price)
複製程式碼

相關文章