程序的三大流程:
- 順序–從上向下,順序執行代碼
- 分支–根據條件判斷,決定執行代碼的分支
- 循環–讓特定代碼重複執行
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
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循環中使用了break語句時,表示用於跳出當前循環體
sites = ["Baidu", "Google","Runoob","Taobao"]
for site in sites:
if site == "Runoob":
print("菜鳥教程!")
break
print("循環數據 " + site)
else:
print("沒有循環數據!")
print("完成循環!")
結果爲:
循環數據 Baidu
循環數據 Google
菜鳥教程!
完成循環!