Python基礎之if判斷,while迴圈,迴圈嵌套;if判斷包括 if判斷語法,比較運算符,else語句,邏輯運算符,elif語句,if嵌套;while迴圈包括 while語句語法,賦值運算符,迴圈計算,break和continue;迴圈嵌套包括 print函數的end參數,迴圈嵌套使用,字元串中... ...
if判斷
判斷的定義
如果條件滿足,就做一件事;條件不滿足,就做另一件事;
判斷語句又被稱為分支語句,有判斷,才有分支;
if判斷語句基本語法
if語句格式:
if 判斷的條件:
條件成立後做的事
...
...
代碼縮進為一個tab鍵,或者四個空格,官方建議使用空格;但應註意,在python開發中,tab和空格不能混用!
判斷年齡示例:
# 判斷是否成年,成年則可以進網吧
age = 19
if age>=18:
print("你滿了18歲,可以進網吧")
if及其縮進代碼可以看成一個完整的代碼塊
比較運算符簡介
運算符 | 描述 |
---|---|
== | 比較兩個操作數的值是否相等,相等則返回True,否則返回False |
!= | 比較兩個操作數的值是否不相等,不相等則返回True |
>= | 檢查左操作數的值是否大於等於右操作數的值,成立則返回True |
<= | 檢查右操作數的值是否大於等於左操作數的值,成立則返回True |
< | 檢查右操作數的值是否大於左操作數的值,成立則返回True |
> | 檢查左操作數的值是否大於右操作數的值,成立則返回True |
註意,在python2.x中,<>和!=作用和效果一樣;但在python3中,已經取消了<>這個比較符號。
else語句
if只能夠用來 當條件滿足時做某事,而else則用來當條件不滿足時做另外的事。
else語法格式:
if 判斷的條件:
條件成立後應該做的事
else:
條件不成立時應該做的事
判斷年齡改進版
age = 18
if age>=18:
print("已成年,可以進網吧")
print("歡迎來到xxx網吧")
else:
print("未成年,請以後再來")
print("慢走") # 無論條件是否滿足,都會執行
控制台輸入年齡示例
age = int(input("請輸入你的年齡:"))
if age>=18:
print("已成年,可以進網吧")
print("歡迎來到xxx網吧")
else:
print("未成年,請以後再來")
print("慢走")
應註意的是,控制台輸入的被python解釋器認為是字元串,字元串不能與數字比較,應該現將從控制台輸入的年齡轉換成數字;
if,else及其各自的縮進代碼可以看成一個完整的代碼塊;
雖然他們並不能摺疊成一個代碼塊,但其實就是,之所以各自摺疊的原因是因為它們各自是局部代碼;
邏輯運算符
邏輯運算符簡介
邏輯運算符的使用:當需要同時判斷多個條件是否成立以執行後續的代碼時
與或非,與或是用來連接條件的,非不連接條件,是用來對條件取反的;
and 與
條件1 and 條件2
必須兩個條件同時滿足,才是真,返回True;
只要有一個條件不滿足,就是假,返回False。
or 或
條件1 or 條件2
兩個條件只要有一個滿足,就是真,返回True;
只有兩個條件都不滿足,才是假,返回False。
not 非
not 條件
非不連接條件,用來對條件取反;
not使用場景:當希望 條件不滿足時執行某件事情,可以用not;
另外,如果是拼接複雜的邏輯計算時,也可能用到not。
邏輯運算符使用示例
示例1:
# 邏輯判斷年齡是否正確
age = 40
if age>=0 and age<=120:
print("年齡正確")
else:
print("年齡錯誤")
示例2:
# not判斷公司員工
is_employee = False
if not is_employee:
print("非本公司員工,禁止入內")
elif語句
elif應用場景:希望判斷多個條件,並且多個條件對應不同的處理方式時;
elif中 同時判斷多個條件,所有的條件是平級的。
elif的語法:
if 條件1:
條件1滿足時,就執行這裡面的代碼
elif 條件2:
條件2滿足時,就執行這裡面的代碼
elif 條件3:
條件3滿足時,就執行這裡面的代碼
else:
如果上述條件都不滿足,就執行這裡的代碼
elif應用示例
# 判斷是否為女友的節日並作出相應動作
day = "birthday"
if day == "birthday":
print("buy cake")
elif day = "Valentine's Day":
print("buy rose")
elif day = "Christmas Eve":
print("eat apple")
else:
print("Everyday is her holiday!")
if嵌套
if嵌套的應用場景:用來判斷多個有前後依賴的場景,在前一個條件滿足的情況下,再額外增加條件判斷時使用;
if嵌套的語法:
if 條件1:
if 條件1.1:
條件1.1滿足時,就執行這裡面的代碼
elif 條件1.2:
條件1.2滿足時,就執行這裡面的代碼
else:
如果上述條件都不滿足,就執行這裡的代碼
elif 條件2:
條件2滿足時,就執行這裡面的代碼
elif 條件3:
條件3滿足時,就執行這裡面的代碼
else:
如果上述條件都不滿足,就執行這裡的代碼
火車站檢票安檢代碼
# 有火車票後進入安檢環節,沒有票就不允許進,安檢環節如果滿足條件就進入,不滿足就進行提醒
has_ticket = True
knife_length = 30
if has_ticket:
print("檢票完成,進入安檢環節")
if knife_length > 20:
print("你攜帶的道具有 %d釐米,不符合規定,不允許上車!"%knife_length)
else:
print("安檢成功,祝你旅途愉快")
else:
print("沒有票,不允許進入,請先購票")
所學綜合應用
# 開發一個剪刀石頭布的人機對戰游戲
import random
player = int(input("請選擇你的出拳,只需輸入數字:1.石頭 2.剪刀 3.布))
computer = random.randint(1,3)
print("玩家選擇的是%d,電腦選擇的是%d"%(player, computer))
if ((palyer == 1 and computer == 2)
or (palyer == 2 and computer == 3)
or (palyer == 3 and computer == 1)):
print("恭喜你,你贏了")
elif player == computer:
print("平局,這麼巧")
else:
print("不好意思,你輸了")
一行過長代碼的換行
原來:
if (palyer == 1 and computer == 2) or (palyer == 2 and computer == 3) or (palyer == 3 and computer == 1):
print("你贏了")
換行:
if ((palyer == 1 and computer == 2)
or (palyer == 2 and computer == 3)
or (palyer == 3 and computer == 1)):
print("你贏了")
while迴圈的基本使用
程式的三大流程
程式只有三個流程,順序,分支,迴圈
從上到下,順序;
條件判斷,分支;
特定代碼重覆執行,迴圈;
while語句基本語法
初始條件(例如 i=1)
while 條件:(例如 i<=5)
滿足條件時做的事(xxx)
處理條件(例如 i=i+1)
迴圈結束後做的事(xxx)
第一個while迴圈示例
i =1
while i<=5:
print("hello python")
i = i+1
print("迴圈結束")
註意,迴圈結束後,之前定義的計數器條件的數值依舊是存在的;
死迴圈:沒有對計數器進行處理,導致程式一直在迴圈部分執行,無法跳出;
python中的賦值運算符
i += 1 ---> i = i+1
-=
i /= 2 ---> i = i/2
*=
//=
%=
**=
註意,賦值運算符之間不能有空格;
程式計數從0開始
自然計數法,從1開始,符合人的習慣
程式計數法,從0開始,幾乎所有的語言都是如此
迴圈計算示例
迴圈計算思路分析
先在外面定義一個變數用來保存計算結果;
每迴圈一次就更新一下變數的計算結果。
示例1:
# 0到100數字累加
i = 0
sun = 0
while i <= 100:
sum += i
i += 1
print("迴圈結束,0到100的求和結果是%d" % sum)
示例2:
# 偶數求和之計算結果
i = 0
sum = 0
while i <= 100:
if i%2 == 0:
sum += i
i += 1
print("迴圈結束,0到100的求和結果是%d" % sum)
break和continue
break和continue的使用場景
break和continue是專門在迴圈中使用的關鍵字
break 某一條件滿足時,退出迴圈,不再執行後續重覆的代碼
continue 某一條件滿足時,不執行後續的重覆代碼
break和continue只對當前所在迴圈有效
break打斷整個迴圈
continue打斷一次小迴圈
break代碼演練
i = 0
while i<10:
if i == 3:
break
print(i)
i+=1
continue代碼演示
i = 0
while i<10:
if i == 3:
# 在迴圈中,使用continue之前,需確認迴圈的計數是否需要修改,否則很容易造成死迴圈。
i += 1
continue
print(i)
i+=1
迴圈嵌套
迴圈嵌套語法
while 條件1:
條件滿足時,做的事...
while 條件2:
條件滿足時,做的事...
處理條件2
處理條件1
print函數end參數的作用
預設情況下,print函數會在結尾自動增加換行;而用end參數的話,可以用end指定的內容替換換行,比如空格,就是調整print函數不換行;再比如end="---",就是在添加end的print輸出語句和下一個輸出語句之間不換行且添加---
print("1")
print("2")
print("1", end="")
print("2")
print("1", end="---")
print("2")
迴圈嵌套使用案例
案例1.列印五行小星星
row = 1
while row <= 5:
# 每一行要列印的小星星數量和當前行數是一樣的
# 增加一個小迴圈,專門負責當前行中,每一列的小星星輸出
col = 1
while col <= row:
print("*", end="")
col += 1
print("")
row += 1
重點看其中的思路!
案例2.九九乘法表案例
row = 1
while row <= 9:
col = 1
while col <= row:
# print("*", end="")
# print("9 * 9 = 81", end=" ")
# print("9 * %d = 81" % row, end=" ")
# print("%d * %d = %d" % (col, row, col*row), end=" ")
print("%d * %d = %d" % (col, row, col*row), end="\t") # 加\t的原因是,為了對齊美觀
col += 1
print("")
row += 1
字元串中的轉義字元
轉義字元 | 描述 |
---|---|
\ | 反斜杠符號 |
' | 單引號 |
" | 雙引號 |
\n | 換行 |
\t | 橫向製表符 |
\r | 回車 |
t在控制台輸出一個製表符,協助在輸出文本時垂直方向保持對齊;
製表符的作用是在不適用表格的情況下在垂直方向按列對齊文本;
\n在控制台輸出一個換行符。
print("1 2 3")
print("10 20 30")
# \t在控制台輸出一個製表符,協助在輸出文本時垂直方向保持對齊,製表符的作用是在不適用表格的情況下在垂直方向按列對齊文本
print("1\t2 \t3")
print("10\t20\t30")
# \n在控制台輸出一個換行符
print("hello\nworld")
print("hello\"world")
# 輸出
1 2 3
10 20 30
1 2 3
10 20 30
hello
world
hello"world