判斷語句
如果某些條件滿足,才能做某件事情;條件不滿足時,則不能做,這就是所謂的判斷。

1. if 語句的使用
if 語句的格式:
if 判斷的條件:
條件成立會執(zhí)行if語句里面的代碼
舉例:
age = 18
if age >= 18:
print("你已成年")
############## 運行結(jié)果 ###############
你已成年
2. 比較運算符
學(xué)習比較運算符的目的是比較運算符通常結(jié)合
if語句使用.
python中的比較運算符如下表:

我們舉例來看一下他們的共同點:
num1 = 1
num2 = 2
# 判斷兩個變量的值是否相等
result = num1 == num2 # 因為有等號,先看等號右邊的代碼,把比較后的結(jié)果賦值給等號左邊的變量
print(result, type(result))
result = num1 != num2
print(result, type(result))
result = num1 > num2
print(result, type(result))
result = num1 < num2
print(result, type(result))
result = num1 >= num2
print(result, type(result))
result = num1 <= num2
print(result, type(result))
############## 運行結(jié)果 ###############
False <class 'bool'>
True <class 'bool'>
False <class 'bool'>
True <class 'bool'>
False <class 'bool'>
True <class 'bool'>
總結(jié):比較運算符返回的結(jié)果bool類型,bool類型只有兩個值: True, False
- True 表示條件成立,if 語句里面的代碼會執(zhí)行;
- False表示條件失敗,if 語句里面的代碼不會執(zhí)行
比如:
num3 = 1
num4 = 2
if num3 != num4:
print("條件成立")
############## 運行結(jié)果 ###############
條件成立
3. 邏輯運算符
- and:左右表達式都為True,整個表達式結(jié)果才為True;
- or:左右表達式有一個為True,整個表達式結(jié)果就為True;
- not:將右邊表達式的邏輯結(jié)果取反,Ture變?yōu)镕alse,F(xiàn)alse變?yōu)門rue
and
and : 左右兩邊的條件都要成立,if 語句才會執(zhí)行
name = "西施"
age = 25
if name == "西施" and age == 25:
print("找到女神了!")
############## 運行結(jié)果 ###############
找到女神了!
or
or: 表示只要左右兩邊有一個條件成立,if語句就會執(zhí)行
name = "西施"
age = 25
if name == "貂蟬" or age < 38:
print("找到你們啦")
############## 運行結(jié)果 ###############
找到你們啦
not
not True 等于 False , not False 等于 True
result = not False
print(result)
############## 運行結(jié)果 ###############
True
舉例:
num = -1
if not num > 0:
print("條件成立")
############## 運行結(jié)果 ###############
條件成立
總結(jié):邏輯運算符通常也是結(jié)合 if 語句來使用,主要是可以判斷多個條件的關(guān)系
4. if-else的使用
if - else 判斷規(guī)則:當條件成立會執(zhí)行 if 語句,條件不成立會執(zhí)行 else 語句
需求1:從鍵盤上獲取年齡,判斷是否大于或者等于18歲,如果滿足就輸出“你已成年”;如果不滿足就輸出“尚未成年”
思路:使用input從鍵盤中獲取數(shù)據(jù),并且存入到一個變量中 ---> 使用if語句,來判斷age>=18是否成立:
# 使用input從鍵盤中獲取數(shù)據(jù)
age = int(input("請輸入您的年齡:"))
# 判斷年齡
if age >= 18:
# 條件成立會執(zhí)行if語句
print("你已成年")
else:
# 條件不成立會執(zhí)行else語句
print("尚未成年")
需求2:從鍵盤輸入身高,如果身高沒有超過150cm,則輸出“不用買票”,否則輸出“需要買票”。
height = int(input("請輸入您的身高(cm):"))
if height <= 150:
print("不用買票")
else:
print("需要買票")
5. if...elif...else...的使用
需求:根據(jù)學(xué)生分數(shù)判斷分級,當分數(shù)為[90, 100]時為“優(yōu)秀”;[80, 90)時為“良好”;[70, 80)時為“一般”;[60, 70)時為“及格”;60分以下為“不及格”
# 接收分數(shù)
score = int(input("請輸入您的分數(shù):"))
# 判斷分數(shù)
if score >= 90 and score <= 100:
print("優(yōu)秀")
elif score >= 80 and score < 90:
print("良好")
elif score >= 70 and score < 80:
print("一般")
elif score >= 60 and score < 70:
print("及格")
else:
print("不及格")
注意:
- 當某個條件成立時,會執(zhí)行對應(yīng)的條件語句里面的代碼,其他條件判斷不會執(zhí)行。
- else 語句是可選的,可以根據(jù)自己的需求判斷是否需要加上else語句。
6. 三目運算操作
這個知識點不重要,知道有這么回事就行
三目運算操作主要是簡化 if - else 語句代碼的
num1 = 1
num2 = 2
# 使用兩個變量中的最大值
if num1 > num2:
print("num1:", num1)
else:
print("num2:", num2)
上面這個 if - else 語句可以使用三目運算進行簡化:
num1 = 1
num2 = 2
# 使用三目運算操作對if-else語句進行簡化操作
result = num1 if num1 > num2 else num2
print(result)
7. if 語句的嵌套
if 語句的嵌套:在 if 語句里面再次使用 if 語句
if嵌套語句的應(yīng)用
場景描述1:進車站必須同時滿足兩個條件,第一查看是否有票,第二查看是否帶有違禁物品。
ticket = 1 # 用1代表有車票,0代表沒有車票
knife_length = 9 # 刀子的長度,單位為cm
if ticket == 1:
print("有車票,可以進站")
if knife_length < 10:
print("通過安檢")
else:
print("沒有通過安檢")
print("刀子的長度超過規(guī)定,等待警察處理...")
else:
print("沒有車票,不能進站")
#### 輸出為 #####
有車票,可以進站
通過安檢
場景描述:某男生找女朋友,有兩個條件:首先判斷性別是否為“女”,然后判斷年齡是否在24-27之間
sex = input("請輸入您的性別:")
if sex == "女":
print("性別匹配")
# 判斷年齡
age = int(input("請輸入您的年齡:"))
if age >= 24 and age <= 28:
print("確認過眼神,你就是我要找的人")
else:
print("不好意思,打擾了!")
else:
print("我們只要女生")
8. if語句的嵌套應(yīng)用—猜拳游戲
需求:
- 從控制臺輸?要出的拳 —— 石頭(1)/剪刀(2)/布(3)
- 電腦隨機出拳
- 比較勝負
知識點:在 Python 中,要使用隨機數(shù),首先需要導(dǎo)入隨機數(shù)的模塊 —— “?具包”
import random
導(dǎo)入模塊后,可以直接在模塊名稱后面敲?個. 然后按Tab 鍵,會提示該模塊中包含的所有函數(shù),其中random.randint(a, b)可以隨機返回[a, b]之間的任意一個整數(shù),包含 a 和 b
使用規(guī)則如下:
import random
value = random.randint(1, 3)
print(value)
代碼實現(xiàn)猜拳游戲需求:
import random
# 1. 接收用戶輸入的拳
player = int(input("請出拳 石頭(1) 剪刀(2) 布(3):"))
# 2. 讓電腦隨機出拳 隨機產(chǎn)生1-3的數(shù)字
computer = random.randint(1, 3)
# 3. 比較勝負, 勝負結(jié)果有三種情況(1. 你贏了, 2. 平局, 3. 你輸了)
if (player == 1 and computer == 2) or (player == 2 and computer == 3) or (player == 3 and computer == 1):
print("你贏了!")
elif player == computer:
print("平局!")
else:
print("你輸了!")
循環(huán)語句
循環(huán)語句就是在程序中可以重復(fù)執(zhí)行某段代碼,循環(huán)語句有 while 、 for
循環(huán)語句應(yīng)用場景
跟媳婦承認錯誤,說一萬遍"媳婦兒,我錯了"
print("媳婦兒,我錯了")
print("媳婦兒,我錯了")
print("媳婦兒,我錯了")
...(還有99997遍)...
使用循環(huán)語句一句話搞定:
i = 0
while i < 10000:
print("媳婦兒,我錯了")
i += 1
小總結(jié):
- while 和 if 的用法基本類似,區(qū)別在于:if 條件成立,則執(zhí)行一次; while 條件成立,則重復(fù)執(zhí)行,直到條件不成立為止。
- 一般情況下,需要多次重復(fù)執(zhí)行的代碼,都可以用循環(huán)的方式來完成
1. while循環(huán)語句
注意點:
- while循環(huán)會重復(fù)判斷條件是否成立,只要條件成立那么循環(huán)語句里面的代碼就會執(zhí)行,當條件不成立時循環(huán)語句執(zhí)行結(jié)束
- 如果次數(shù)不沒有進行控制,會出現(xiàn)死循環(huán),死循環(huán)的原因就是條件始終成立
- if 語句只會判斷一次條件,while 循環(huán)語句會重復(fù)判斷條件是否成立
需求:循環(huán)打印5次“人生苦短,我用Python”
num = 0
while num < 5:
print("人生苦短,我用Python")
num += 1
#### 輸出為 #####
人生苦短,我用Python
人生苦短,我用Python
人生苦短,我用Python
人生苦短,我用Python
人生苦短,我用Python
2. while循環(huán)練習
練習1:循環(huán)打印5次,顯示當前循環(huán)的次數(shù)
count = 1
while count <= 5:
print("當前循環(huán)的次數(shù): %d" % count)
count += 1
#### 輸出為 #####
當前循環(huán)的次數(shù): 1
當前循環(huán)的次數(shù): 2
當前循環(huán)的次數(shù): 3
當前循環(huán)的次數(shù): 4
當前循環(huán)的次數(shù): 5
練習2:倒著循環(huán)打印5次,顯示當前循環(huán)的次數(shù)
count = 5
while count >= 1:
print("當前循環(huán)的次數(shù): %d" % count)
count -= 1
#### 輸出為 #####
當前循環(huán)的次數(shù): 5
當前循環(huán)的次數(shù): 4
當前循環(huán)的次數(shù): 3
當前循環(huán)的次數(shù): 2
當前循環(huán)的次數(shù): 1
練習3:計算1~100的累加和(包含1和100)
# 1. 生成1-100之間的數(shù)字
# 記錄每次生成的數(shù)字
num = 1
# 記錄累加的和
result = 0
while num <= 100:
# 循環(huán)生成1-100之間的數(shù)字
# 2. 把每一個數(shù)字累加起來
result += num
num += 1
# 當循環(huán)執(zhí)行結(jié)束的時候,累加和計算完成
print("結(jié)果為:", result)
#### 輸出為 #####
結(jié)果為: 5050
練習4:計算1~100之間偶數(shù)的累加和
result = 0
# 1. 生成1-100之間的數(shù)字
num = 1
while num <= 100:
# 2. 判斷數(shù)字是否是偶數(shù)
if num % 2 == 0:
# 3. 把所有偶數(shù)累加起來
result += num
num += 1
print("偶數(shù)和結(jié)果:", result)
#### 輸出為 #####
偶數(shù)和結(jié)果: 2550
3. while循環(huán)嵌套
while 循環(huán)嵌套: 在 while 循環(huán)語句里面再次使用 while 循環(huán)語句
需求:循環(huán)三次,每循環(huán)一次打印三次 “人生苦短,我用python”
count = 1
while count <= 3:
print("當前的循環(huán)的次數(shù): %d" % count)
# 讓人生苦短信息循環(huán)執(zhí)行三次
num = 1
while num <= 3:
print("人生苦短,我用python")
num += 1
count += 1
#### 輸出為 #####
當前的循環(huán)的次數(shù): 1
人生苦短,我用python
人生苦短,我用python
人生苦短,我用python
當前的循環(huán)的次數(shù): 2
人生苦短,我用python
人生苦短,我用python
人生苦短,我用python
當前的循環(huán)的次數(shù): 3
人生苦短,我用python
人生苦短,我用python
人生苦短,我用python
4. while循環(huán)嵌套應(yīng)用
要求1:打印如下圖形
循環(huán)控制打印的行數(shù)
# 記錄當前的行數(shù)
row = 1
while row <= 5:
# print("當前是第%d行" % row)
# 記錄當前的列數(shù)
col = 1
while col <= 5:
print("*", end=" ")
col += 1
# 提示:當內(nèi)層循環(huán)執(zhí)行結(jié)束,說明當前這一行星星打印完畢,換行打印星星
print("")
row +=
#### 輸出為 #####
* * * * *
* * * * *
* * * * *
* * * * *
* * * * *
要求2:打印如下圖形
# 記錄當前行數(shù)
row = 1
# 外層循環(huán)控制行數(shù)
while row <= 5:
# 內(nèi)層循環(huán)控制列數(shù)
col = 1
while col <= row:
print("*", end=" ")
col += 1
# 內(nèi)層循環(huán)結(jié)束表示當前這一行星星打印完畢,需要換行打印下一行星星
print("")
row += 1
#### 輸出為 #####
*
* *
* * *
* * * *
* * * * *
5. for循環(huán)
像 while 循環(huán)一樣,for 可以完成循環(huán)的功能。在Python中 for循環(huán)可以遍歷任何序列的項目,如一個列表或者一個字符串等。
for循環(huán)的格式
for 臨時變量 in 列表或者字符串等可迭代對象:
循環(huán)滿足條件時執(zhí)行的代碼
for循環(huán)應(yīng)用—遍歷容器類型中的每一個數(shù)據(jù)
my_str = "hello"
# 通過for循環(huán)可以方便的獲取字符串中的每一個數(shù)據(jù)
for value in my_str:
# 依次查看value獲取的每一個數(shù)據(jù)
print(value)
#### 輸出為 #####
h
e
l
l
o
for 循環(huán)內(nèi)部可以結(jié)合 if 語句使用
my_str = "hello"
for value in my_str:
# 依次查看value獲取的每一個數(shù)據(jù)
if value == "l":
print("l出現(xiàn)了")
else:
print(value)
#### 輸出為 #####
h
e
l出現(xiàn)了
l出現(xiàn)了
o
6. for 循環(huán)結(jié)合range使用
- range 表示一個范圍,也是屬于容器類型
- for 循環(huán)結(jié)合
range使用也可以讓某段代碼重復(fù)執(zhí)行多次
- range(5):表示產(chǎn)生一個[0,5) => [0, 4]范圍
for value in range(5):
print("哈哈", value)
#### 輸出為 #####
哈哈 0
哈哈 1
哈哈 2
哈哈 3
哈哈 4
- range(1, 4) : 1—表示開始位置數(shù)據(jù) ;4—表示結(jié)束位置數(shù)據(jù) [結(jié)束位置數(shù)據(jù)不包含]
for value in range(1, 4):
print("嘻嘻", value)
#### 輸出為 #####
嘻嘻 1
嘻嘻 2
嘻嘻 3
range(1, 11, 2) :第一個參數(shù)是開始位置數(shù)據(jù),第二個參數(shù)是結(jié)束位置數(shù)據(jù)[不包含], 第三個參數(shù)步長:前后數(shù)據(jù)之間間隔
提示:如果不指定步長默認1
for value in range(1, 11, 2):
print(value)
#### 輸出為 #####
1
3
5
7
9
步長還可以指定為負數(shù):
for value in range(5, 0, -1):
print(value)
#### 輸出為 #####
5
4
3
2
1
小但是有用的知識點:如果使用for循環(huán)只是為了實現(xiàn)簡單的循環(huán),那循環(huán)中的變量可以使用下劃線進行占位:
for _ in range(3):
print("嗯嗯")
#### 輸出為 #####
嗯嗯
嗯嗯
嗯嗯
7. break 和 continue
break的作用:結(jié)束break所在的這層循環(huán)。continue的作用:用來結(jié)束本次循環(huán),緊接著執(zhí)行下一次的循環(huán)。break和continue只能用在循環(huán)語句里面,不能單獨使用。循環(huán)語句有:while, for當循環(huán)語句里面執(zhí)行break,表示當前這層循環(huán)執(zhí)行結(jié)束,break后面代碼不能執(zhí)行;
當循環(huán)語句執(zhí)行了continue,表示本次循環(huán)執(zhí)行結(jié)束,然后根據(jù)條件判斷是否執(zhí)行下一次循環(huán)。
8.循環(huán)語句結(jié)合else語句使用
- 當循環(huán)語句正常結(jié)束的時候else語句就會執(zhí)行,否則else語句不會執(zhí)行
循環(huán)語句正常結(jié)束:循環(huán)語句里面沒有執(zhí)行break, else語句會執(zhí)行
循環(huán)語句非正常結(jié)束:循環(huán)語句里面執(zhí)行了break, else語句不會執(zhí)行 - 循環(huán)語句執(zhí)行了 continue 關(guān)鍵字,else 語句依然可以執(zhí)行
循環(huán)語句結(jié)合else語句使用的場景:
在指定字符串里面查找對應(yīng)的數(shù)據(jù),如果找到了打印對應(yīng)的數(shù)據(jù),否則顯示沒有該數(shù)據(jù)。
my_str = "hello"
for value in my_str:
print(value)
if value == "e":
print("找到了:", value)
break
else:
print("沒有找到該數(shù)據(jù)")
#### 輸出為 #####
h
e
找到了: e
繼續(xù)深造
or去工作?工作的話選擇什么樣的工作?最終做出了一個選擇,身邊的朋友說,你選這個是不對的!其實哪有什么正確的選擇,能做的只不過是努力讓自己當初的選擇變得正確。不管選哪一個遇到困難的時候都會后悔為什么當初自己不選另外一個?
那便時刻告訴自己:當你目睹了泰山的雄偉就不要奢望黃山的俊秀,當你選定一條路,另一條路的風景便與你無關(guān)。

