1. 運算符
1.1 算數運算符
- 是完成基本的算術運算使用的符号,用來處理四則運算
In [1]: "-" * 50
Out[1]: '----------------------------------------'
1.2 比較(關系)運算符
1.3 邏輯運算符
a = True
print(a and 'a = T') # a = T
Python把0、空字元串''、None看成False,其他數值和非空字元串都看成True
print('a = T' or 'a = R') # a = T
邏輯運算需要特别注意的是 and 和 or 運算時會發生短路現象 當 and 運算時,左邊如果是False時,and 右邊代碼不再執行了 當 or 運算時,右邊如果是True時,or 右邊代碼不再執行了
1.4 指派運算符
- 在 Python 中,使用 = 可以給變量指派
- 在算術運算時,為了簡化代碼的編寫,Python 還提供了一系列的 與 算術運算符 對應的 指派運算符
- 注意:指派運算符中間不能使用空格
1.5 運算符的優先級
- 以下表格的算數優先級由高到最低順序排列
2. 三種基本結構
- 在程式開發中,一共有三種基本結構,也叫三種流程方式:
- 順序 —— 從上向下,順序執行代碼
- 分支 —— 根據條件判斷,決定執行代碼的 分支
- 循環 —— 讓 特定代碼 重複 執行
2.1 順序結構
代碼從上向下,順序執行代碼
name = '小明'
weight = '90公斤'
sex = '男'
print('姓名是%s,性别是%s,體重是%s' % (name, sex, weight))
2.2 選擇結構
2.2.1 選擇結構的定義
- 選擇結構用于判斷給定的條件,根據判斷的結果判斷某些條件,根據判斷的結果來控制程式的流程
- 如果 條件滿足,才能做某件事情,
- 如果 條件不滿足,就做另外一件事情,或者什麼也不做
比如我去北京,我可以選擇坐飛機,也可以選擇坐火車,也可以選擇走路
2.2.2 if 判斷語句基本文法
在 Python 中,if 語句 就是用來進行判斷的,格式如下:
if 要判斷的條件:
條件成立時,要做的事情
……
注意:代碼的縮進為一個 tab 鍵,或者 4 個空格 —— 建議使用空格
i = 10
if i > 2:
print('我是最帥的')
print('打的去北京')
2.2.3 if-else 判斷語句基本文法
if 要判斷的條件:
條件成立時,要做的事情
……
else:
條件不成立時,要做的事情
……
i = 1
if i > 2:
print('我是最帥的')
else:
print('你們是最帥的')
print('打的去北京')
# 判斷變量 f 是否存在
if 'f' in dir():
print('變量存在')
else:
print('變量不存在')
2.2.4 if-elif……-else 判斷語句基本文法
# 一棟樓5層,一次隻能按一個樓層
i = int(input('請按樓層:'))
if i == 2:
print('他去2樓')
elif i == 3:
print('他去3樓')
elif i == 4:
print('他去4樓')
else:
print('他去5樓')
2.2.5 if語句的嵌套使用
if 條件1:
if 條件2:
print('滿足條件1,同時滿足條件2')
else:
print('滿足條件1,但是不滿足條件2')
else:
print('不滿足條件1')
猜拳遊戲1
player = int(input('請出拳,剪刀(1)、石頭(2)、布(3)'))
# 假設電腦隻會出剪刀1
computer = 1
if computer == player:
print("平局")
elif player == 1 and computer == 2 or \
player == 2 and computer == 1 or \
player == 3 and computer == 2:
print("耶,赢啦")
else:
print("不行,我要跟你決戰到天亮")
猜拳遊戲2
- 在 Python 中,要使用随機數,首先需要導入 随機數 的 子產品 —— “工具包”
import random
- 導入子產品後,可以直接在 子產品名稱 後面敲一個 . 然後按 Tab 鍵,會提示該子產品中包含的所有函數
- random.randint(a, b) ,傳回 [a, b] 之間的整數,包含 a 和 b
- 例如:
random.randint(12, 20) # 生成的随機數n: 12 <= n <= 20
random.randint(20, 20) # 結果永遠是 20
random.randint(20, 10) # 該語句是錯誤的,下限必須小于上限
import random
player = int(input('請出拳,剪刀(1)、石頭(2)、布(3)'))
# 假設電腦隻會出剪刀1
computer = random.randint(1, 3)
if computer == player:
print("平局")
elif player == 1 and computer == 2 or \
player == 2 and computer == 1 or \
player == 3 and computer == 2:
print("耶,赢啦")
else:
print("我要跟你決戰到天亮")
2.3 循環結構
循環結構,用來描述重複執行某段算法的問題 。循環結構可以看成是一個條件判斷語句和一個向回轉向語句的組合。
2.3.1 while 語句基本文法
初始條件設定
while 條件(判斷條件是否為True):
條件滿足時,做的事情1
條件滿足時,做的事情2
條件滿足時,做的事情3
...(省略)...
處理條件(計數器 + 1)
注意:
- while 語句以及縮進部分可以看成是一個 完整的代碼塊
# 小明上課看小人書,罰跑操場5圈
i = 1
while i <= 5:
# 要重複執行的代碼
print("小明跑完第%d圈" %i)
i = i + 1
2.3.2 無限循環
無限循環就是循環裡面條件永遠都是為 True,無止盡的循環下去!也叫死循環 程式員在寫代碼的時候,不小心,也容易寫出死循環,死循環很消耗記憶體,容易當機挂掉
2.3.3 利用循環求和
- 計算 0 ~ 100 之間所有整數的和
# 計算 0 ~ 100 之間所有數字的累計求和結果
# 0. 定義一個變量存放計算結果
result = 0
# 1. 定義循環的變量
i = 0
# 2. 開始循環
while i <= 100:
# 循環體
# 每一次循環,都讓 result 這個變量加上 i 這個值
result += i
# 循環變量值處理
i += 1
print("0~100之間整數的和是 = %d" % result)
- 計算 0 ~ 100 之間所有偶數的和
result = 0
# 1. 定義循環的變量
i = 0
# 2. 開始循環
while i <= 100:
# 循環體
# 每一次循環,判斷這個數是否是偶數
if i % 2 == 0:
result += i
# 循環變量值處理
i += 1
print("0~100之間整數的和是 = %d" % result)
2.3.4 break 和 continue
break 和 continue 是專門在循環中使用的關鍵字
- break 某一條件滿足時,退出循環
- continue 某一條件滿足時,隻是結束本次循環 打個比方,有個人上6天班,循環6次。某天生病請假,病好了繼續上班就是用continue;某天一睡不醒了,那就徹底不來上班了就是用break
在循環過程中,滿足某個條件後,隻是結束本次循環,使用 continue
i = 1
while i <= 6:
# 當星期三時生病請假一天
if i == 3:
i += 1
# continue 之前要記得時間變成星期四,否則一直在星期三死循環
continue
# 重複執行的代碼
print(i)
i += 1
在循環過程中,滿足某個條件後,需要徹底退出循環,使用 break
i = 1
while i <= 6:
# 星期三這天一睡不醒了,徹底不用上班了,break
if i == 3:
break
print(i)
i += 1
print("over")
2.3.5 while循環嵌套
while 嵌套就是:while 裡面還有 while
while 條件 1:
條件滿足時,做的事情1
條件滿足時,做的事情2
條件滿足時,做的事情3
...(省略)...
while 條件 2:
條件滿足時,做的事情1
條件滿足時,做的事情2
條件滿足時,做的事情3
...(省略)...
處理條件 2
處理條件 1
循環嵌套演練 —— 九九乘法表
print 函數的用法
- 在預設情況下,print 函數輸出内容之後,會自動在内容末尾增加換行
- 在使用print時,如果不希望換行,在使用 print 函數時,第二參數給 end=""
- end=""可以添加\t,表示輸出一個 制表符,協助在輸出文本時 垂直方向 保持對齊
- end=""可以添加\n,表示輸出一個 換行符
- 文法格式如下:
# 向控制台輸出内容結束之後,不會換行
print("*", end="")
# 單純的換行
print("")
end="" 表示向控制台輸出内容結束之後,不會換行
- 第 1 步:使用循環嵌套列印小星星
- 在控制台連續輸出9行 *,每一行星号的數量依次遞增
# 定義第一行開始循環
row = 1
# 總共循環 9 次
while row <= 9:
# 定義每行第一列開始輸出 *
col = 1
# 每行一個列輸出一個 * ,一共輸出幾列,就看 col <= row 條件是否滿足
while col <= row:
# 輸出 * 不換行
print("*", end="")
col += 1
row += 1
# 隻換行
print("")
- 使用字元串 * 列印
# 1. 定義一個計數器變量,從數字1開始,循環會比較友善
row = 1
while row <= 5:
print("*" * row)
row += 1
- 第 2 步:将每一個 * 替換成對應的行與列相乘
# 定義第一行開始循環
row = 1
# 總共循環 9 次
while row <= 9:
# 定義每行第一列開始輸出 *
col = 1
# 每行一個列輸出一個 * ,一共輸出幾列,就看 col <= row 條件是否滿足
while col <= row:
# 輸出 * 不換行
print("%d * %d = %d" % (row, col, row * col), end="\t")
col += 1
row += 1
# 隻換行
print("")
- 第 3 步:運作,輸出"九九乘法表",格式如下
1 * 1 = 1
1 * 2 = 2 2 * 2 = 4
1 * 3 = 3 2 * 3 = 6 3 * 3 = 9
1 * 4 = 4 2 * 4 = 8 3 * 4 = 12 4 * 4 = 16
1 * 5 = 5 2 * 5 = 10 3 * 5 = 15 4 * 5 = 20 5 * 5 = 25
1 * 6 = 6 2 * 6 = 12 3 * 6 = 18 4 * 6 = 24 5 * 6 = 30 6 * 6 = 36
1 * 7 = 7 2 * 7 = 14 3 * 7 = 21 4 * 7 = 28 5 * 7 = 35 6 * 7 = 42 7 * 7 = 49
1 * 8 = 8 2 * 8 = 16 3 * 8 = 24 4 * 8 = 32 5 * 8 = 40 6 * 8 = 48 7 * 8 = 56 8 * 8 = 64
1 * 9 = 9 2 * 9 = 18 3 * 9 = 27 4 * 9 = 36 5 * 9 = 45 6 * 9 = 54 7 * 9 = 63 8 * 9 = 72 9 * 9 = 81
2.3.6 for 語句基本文法
- for跟while一樣也可以實作循環,在Python中for循環可以周遊任何序列的項目,如一個清單(下節課會講)或者一個字元串
for 臨時變量 in 字元串或清單等:
執行代碼塊1
執行代碼塊2
執行代碼塊3
...(省略)...
str = "I love you,china"
for temp in str:
print(temp)