程式的三大流程:
- 順序–從上向下,順序執行代碼
- 分支–根據條件判斷,決定執行代碼的分支
- 循環–讓特定代碼重複執行
1. 順序
從上到下依次執行,這個其實沒什麼難點。
2.分支語句 (條件語句)
最常見的就是if --else

if - elif -else 語句以及縮進部分是一個完整的代碼塊
if 要判斷的條件:
條件成立時,要做的事
else:
條件不成立時,要做的事情
#根據成績來分類
scale = input("請輸入一個成績")
scale = float(scale)
if scale>=0:
if scale>=90:
print("成績為優秀")
elif scale>=80:
print("成績為良好")
elif scale>=60:
print("中等")
else:
print("不及格")
在此給大家補充一下邏輯運算符
與 and
或 or
非 not
牛刀小試
#案例一:
#定義一個整數變量,判斷年齡是否正确
#要求人的年齡在0-120之間
age = int(input("請輸入年齡"))
if age>0 and age<120:
print(age)
else:
print("年齡不正确")
#案例二:
#定義兩個整型變量
Python_score=89
c_score = 90
#要求隻要有一門成績>60分就算合格
if Python_score>60 or c_score>60:
print("合格")
else:
print("成績不合格")
#案例三:
is_employee = True
if not is_employee:
print("不是本公司的員工,不可以進入")
通常希望某個條件不滿足時,執行一些代碼,可以使用not,
如果需要拼接複雜的邏輯計算條件,同樣也有可能使用到not.
2.1 Python中的随機數
#先導入子產品再調用
import random
random.randint(a,b) # 傳回[a,b]之間的數,包含a和b
注意:
在導入工具包的時候,應該将導入的語句,放在檔案的頂部,因為,這樣
可以友善下方的代碼,在任何需要的時候,使用工具包中的工具。
注意:
這些随機函數不能直接調用,例如:random()是不能直接通路的,需要導入 random 子產品,然後通過 random 靜态對象調用該方法。
import random
random.random()
uniform() 方法将随機生成下一個實數,它在 [x,y] 範圍内。法
import random
random.uniform(x, y)
x -- 随機數的最小值。
y -- 随機數的最大值。
牛刀小試
#案例一————火車票、安檢
# 定義一個布爾類型的變量has_ticket 表示是否有車票
has_ticket = True
# 定義整型變量knife_length 表示刀的長度,機關:厘米
knife_length = 21
'''首先檢查是否有車票,如果有,才允許進入安檢
安檢時,需要檢查刀的長度,判斷是否超過20厘米
如果超過20厘米,提示刀的長度,不允許上車
如果沒有超過20厘米,則可以通過安檢
如果沒有車票,不允許進入'''
if has_ticket:
print("車票檢查通過,準備開始安檢")
if knife_length>20:
print("刀的長度為%.2f,不能通過安檢"%knife_length)
else:
print("安檢通過,可以上車")
else:
print("請購買車票")
#案例二————石頭剪刀布
player = int(input("玩家請出拳:拳頭=1,布=2,剪刀=3"))
computer = random.randint(1,3)
print("玩家出的是%d-電腦出的是%d"%(player,computer))
#比較勝負
#1.石頭 勝 剪刀
#2.剪刀 勝 布
#3.布 勝 石頭
if ((player==1 and computer==3)
or (player==3 and computer==2)
or (player==2 and computer==1)):
print("玩家勝利")
elif player==computer:
print("平局")
else:
print("電腦勝利")
3.循環語句
3.1 while循環
while 條件(判斷 計數器是否達到 目标次數):
條件滿足時,做的事情1
條件滿足時,做的事情2
。。。
處理條件(計數器+1)
例如:
s=0
while s<=5:
print(s)
s += 1
注意:while語句以及縮進部分是一個完整的代碼塊
在程式計數中,從0開始計數。是以要養成一個好的習慣。
3.1.1 嵌套循環
案例一:列印小星星
每一行要列印的星星就是和目前的行數是一緻的,增加一個小的循環,專門負責目前行中,每一列的星星顯示
row = 1
while row<=5:
print("*" * row)
row += 1
結果如下所示:
*
* *
* * *
* * * *
* * * * *
改進版——加入嵌套循環
row1 = 1
while row1 <= 5:
col = 1 #表示列
while col <= row1:
print("*",end="")
col +=1
print() # 這行代碼的目的,就是在一行星星輸出完成之後,添加換行。
row1 += 1
關鍵字——end
關鍵字end可以用于将結果輸出到同一行,或者在輸出的末尾添加不同的字元,執行個體如下:
a, b = 0, 1
while b < 1000:
print(b, end=',')
a, b = b, a+b
結果如下:
1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,
3.1.2 字元串中的轉義字元
\t在控制台輸出一個制表符,協助在輸出文本時,垂直方向保持對齊
\n在控制台輸出一個換行符
print("1\t2\t3")
print("10\t20\t30")
print("hello\npython")
1 2 3
10 20 30
hello
python
牛刀小試——列印九九乘法表
i = 1
while i <=9:
j = 1
while j <= i:
result = i * j
print("%d * %d = %d" %(j,i,result),end=" ")
j += 1
print()
i += 1
3.1.3 break 和 continue
break:當某一條件滿足時,退出循環,不再執行後續重複的代碼
continue:某一條件滿足時,不執行後續重複的代碼。
簡單的說,break 語句可以跳出 for 和 while 的循環體
continue語句被用來告訴Python跳過目前循環塊中的剩餘語句,然後繼續進行下一輪循環
3.2 for循環
for i in ...
有時for 也和 else連用,一會就可以見到。
注意:當for循環中使用了break語句時,表示用于跳出目前循環體
sites = ["Baidu", "Google","Runoob","Taobao"]
for site in sites:
if site == "Runoob":
print("菜鳥教程!")
break
print("循環資料 " + site)
else:
print("沒有循環資料!")
print("完成循環!")
結果為:
循環資料 Baidu
循環資料 Google
菜鳥教程!
完成循環!
3.2.1 for 循環與 else 的使用
for 變量 in 集合:
循環體代碼
else:
沒有通過break退出循環,循環結束後,會執行的代碼。
示例:
#定義一個清單存儲字典,循環内部使用了break,如果執行,則退出循環,else下方的代碼不會執行
Students = [
{"name":"小明"},
{"name":"小曾"}
]
name = "小曾"
for name_str in Students:
print(name_str)
if name_str["name"] == name:
print("找到了%s" %name)
break
else:
print("循環結束,沒有找到")