判斷語句和循環語句
- 2020 年 9 月 13 日
- 筆記
if判斷語句
<1>if判斷語句介紹
- if語句是用來進行判斷的,其使用格式如下:
if 要判斷的條件:
條件成立時,要做的事情
- demo1:(demo的中文意思:演示、案例)
age = 30
print("------if判斷開始------")
if age >= 18:
print("我已經成年了")
print("------if判斷結束------")
- 運行結果:
------if判斷開始------
我已經成年了
------if判斷結束------
- demo2:
age = 16
print("------if判斷開始------")
if age >= 18:
print("我已經成年了")
print("------if判斷結束------")
- 運行結果:
------if判斷開始------
------if判斷結束------
小總結:
-
以上2個demo僅僅是age變量的值不一樣,導致結果卻不同;能夠看得出if判斷語句的作用:就是當滿足一定條件時才會執行代碼塊語句,否則就不執行代碼塊語句。
-
注意:代碼的縮進為一個tab鍵,或者4個空格
<2>練一練
要求:從鍵盤獲取自己的年齡,判斷是否大於或者等於18歲,如果滿足就輸出「哥,已成年,網吧可以去了」
- 使用input從鍵盤中獲取數據,並且存入到一個變量中
- 使用if語句,來判斷 age>=18是否成立
<3>想一想
判斷age大於或者等於18歲使用的是 >=,如果是其他判斷,還有哪些呢?
———————————————————————————————————————————-
比較(即關係)運算符
python中的比較運算符如下表
運算符 | 描述 | 示例 |
---|---|---|
== | 檢查兩個操作數的值是否相等,如果是則條件變為真。 | 如a=3,b=3,則(a == b) 為 True |
!= | 檢查兩個操作數的值是否相等,如果值不相等,則條件變為真。 | 如a=1,b=3,則(a != b) 為 True |
> | 檢查左操作數的值是否大於右操作數的值,如果是,則條件成立。 | 如a=7,b=3,則(a > b) 為 True |
< | 檢查左操作數的值是否小於右操作數的值,如果是,則條件成立。 | 如a=7,b=3,則(a < b) 為 False |
>= | 檢查左操作數的值是否大於或等於右操作數的值,如果是,則條件成立。 | 如a=3,b=3,則(a >= b) 為 True |
<= | 檢查左操作數的值是否小於或等於右操作數的值,如果是,則條件成立。 | 如a=3,b=3,則(a <= b) 為 True |
>>> ## 關係運算符
...
>>> # == 等於:表示左右兩個操作數是否相等,如果相等則整個表達式的值為 True;不相等則為False
... num1 = 15
>>> num2 = 20
>>>
>>> print(num1 == num2)
False
>>>
>>> # != 不等於
... print(num1 != num2)
True
>>>
>>> # > 大於
... print(num1 > num2)
False
>>>
>>> # < 小於
... print(num1 < num2)
True
>>>
>>> # >= 大於等於: num1 大於 或者 等於 num2 ,條件都成立
... print(num1 >= num2)
False
>>>
>>> # <= 小於等於: num1 小於 或者 等於 num2 ,條件都成立
... print(num1 <= num2)
True
>>>
>>> if num1 >= num2:
... print("條件成立!")
...
>>>
<2> 邏輯運算符
運算符 | 邏輯表達式 | 描述 | 實例 |
---|---|---|---|
and | x and y | 布爾”與”:如果 x 為 False,x and y 返回 False,否則它返回 y 的值。 | True and False, 返回 False。 |
or | x or y | 布爾”或”:如果 x 是 True,它返回 True,否則它返回 y 的值。 | False or True, 返回 True。 |
not | not x | 布爾”非”:如果 x 為 True,返回 False 。如果 x 為 False,它返回 True。 | not True 返回 False, not False 返回 True |
>>> ## 邏輯運算符
...
>>> # and : 左右表達式都為True,整個表達式結果才為 True
... if (1 == 1) and (10 > 3):
... print("條件成立!")
...
條件成立!
>>> # or : 左右表達式有一個為True,整個表達式結果就為 True
... if (1 == 2) or (10 > 3):
... print("條件成立!")
...
條件成立!
>>> # not:將右邊表達式的邏輯結果取反,Ture變為False,False變為True
... if not (1 == 2):
... print("條件成立!")
...
條件成立!
>>>
-----------------------------------------------------------------------------------------------------
if-else
想一想:在使用if的時候,它只能做到滿足條件時要做的事情。那萬一需要在不滿足條件的時候,做某些事,該怎麼辦呢?
答:使用 if-else
<1>if-else的使用格式
if 條件:
滿足條件時要做的事情1
滿足條件時要做的事情2
滿足條件時要做的事情3
...(省略)...
else:
不滿足條件時要做的事情1
不滿足條件時要做的事情2
不滿足條件時要做的事情3
...(省略)...
demo1
chePiao = 1 # 用1代表有車票,0代表沒有車票
if chePiao == 1:
print("有車票,可以上火車")
print("終於可以見到Ta了,美滋滋~~~")
else:
print("沒有車票,不能上車")
print("親愛的,那就下次見了")
結果1:有車票的情況
有車票,可以上火車
終於可以見到Ta了,美滋滋~~~
結果2:沒有車票的情況
沒有車票,不能上車
親愛的,那就下次見了
--
--
--------------------------------------------------------------------
elif
-
想一想:
if能完成當xxx時做事情
if-else能完成當xxx時做事情1,否則做事情2
如果有這樣一種情況:當xxx1滿足時做事情1;當xxx1不滿足、xxx2滿足時做事情2;當xxx2不滿足、xxx3滿足時做事情3,那該怎麼實現呢?
-
答:
elif
<1> elif的功能
elif的使用格式如下:
if xxx1:
事情1
elif xxx2:
事情2
elif xxx3:
事情3
說明:
- 當xxx1滿足時,執行事情1,然後整個if結束
- 當xxx1不滿足時,那麼判斷xxx2,如果xxx2滿足,則執行事情2,然後整個if結束
- 當xxx1不滿足時,xxx2也不滿足,如果xxx3滿足,則執行事情3,然後整個if結束
demo:
score = 77
if score>=90 and score<=100:
print('本次考試,等級為A')
elif score>=80 and score<90:
print('本次考試,等級為B')
elif score>=70 and score<80:
print('本次考試,等級為C')
elif score>=60 and score<70:
print('本次考試,等級為D')
elif score>=0 and score<60:
print('本次考試,等級為E')
<2> 注意點
-
可以和else一起使用
if 性別為男性: 輸出男性的體重 ... elif 性別為女性: 輸出女性的體重 ... else: 第三種性別的體重 ...
說明:
- 當 「性別為男性」 滿足時,執行 「輸出男性的體重」的相關代碼
- 當 「性別為男性」 不滿足時,如果 「性別為女性」滿足,則執行 「輸出女性的體重」的相關代碼
- 當 「性別為男性」 不滿足,「性別為女性」也不滿足,那麼久默認執行else後面的代碼,即 「第三種性別的體重」相關代碼
-
elif必須和if一起使用,否則出錯
else 一般用在最後,即所有條件都不滿足時使用
—
————————————————————————————————————————-
if嵌套
通過學習if的基本用法,已經知道了
- 當需要滿足條件去做事情的這種情況需要使用if
- 當滿足條件時做事情A,不滿足條件做事情B的這種情況使用if-else
想一想:
坐火車或者地鐵的實際情況是:先進行安檢如果安檢通過才會判斷是否有車票,或者是先檢查是否有車票之後才會進行安檢,即實際的情況某個判斷是再另外一個判斷成立的基礎上進行的,這樣的情況該怎樣解決呢?
答:
if嵌套
<1>if嵌套的格式
if 條件1:
滿足條件1 做的事情1
滿足條件1 做的事情2
if 條件2:
滿足條件2 做的事情1
滿足條件2 做的事情2
- 說明
- 外層的if判斷,也可以是if-else
- 內層的if判斷,也可以是if-else
- 根據實際開發的情況,進行選擇
<2>if嵌套的應用
demo:
chePiao = 1 # 用1代表有車票,0代表沒有車票
daoLenght = 9 # 刀子的長度,單位為cm
if chePiao == 1:
print("有車票,可以進站")
if daoLenght < 10:
print("通過安檢")
print("終於可以見到Ta了,美滋滋~~~")
else:
print("沒有通過安檢")
print("刀子的長度超過規定,等待警察處理...")
else:
print("沒有車票,不能進站")
print("親愛的,那就下次見了")
結果1:chePiao = 1;daoLenght = 9
有車票,可以進站
通過安檢
終於可以見到Ta了,美滋滋~~~
結果2:chePiao = 1;daoLenght = 20
有車票,可以進站
沒有通過安檢
刀子的長度超過規定,等待警察處理...
結果3:chePiao = 0;daoLenght = 9
沒有車票,不能進站
親愛的,那就下次見了
結果4:chePiao = 0;daoLenght = 20
沒有車票,不能進站
親愛的,那就下次見了
- 想一想:為什麼結果3和結果4相同???
———————————————————————————————————————-
循環介紹
軟件開發中循環的使用場景
跟媳婦承認錯誤,說一萬遍”媳婦兒,我錯了”
print("媳婦兒,我錯了")
print("媳婦兒,我錯了")
print("媳婦兒,我錯了")
...(還有99997遍)...
使用循環語句一句話搞定
i = 0
while i < 10000:
print("媳婦兒,我錯了")
i += 1
<3>小總結
-
while和if的用法基本類似,區別在於:if 條件成立,則執行一次; while 條件成立,則重複執行,直到條件不成立為止。
-
一般情況下,需要多次重複執行的代碼,都可以用循環的方式來完成
- 循環不是必須要使用的,但是為了提高代碼的重複使用率,所以有經驗的開發者都會採用循環
——————————————————————————————————————
while循環
<1>while循環的格式
while 條件:
條件滿足時,做的事情1
條件滿足時,做的事情2
條件滿足時,做的事情3
...(省略)...
demo
i = 0
while i < 5:
print("當前是第%d次執行循環" % (i + 1))
print("i=%d" % i)
i+=1
結果:
當前是第1次執行循環
i=0
當前是第2次執行循環
i=1
當前是第3次執行循環
i=2
當前是第4次執行循環
i=3
當前是第5次執行循環
i=4
———————————————————————————————————
while循環應用
1. 計算1~100的累積和(包含1和100)
參考代碼如下:
#encoding=utf-8
i = 1
sum = 0
while i <= 100:
sum = sum + i
i += 1
print("1~100的累積和為:%d" % sum)
2. 計算1~100之間偶數的累積和(包含1和100)
參考代碼如下:
#encoding=utf-8
i = 1
sum = 0
while i <= 100:
if i % 2 == 0:
sum = sum + i
i+=1
print("1~100的累積和為:%d" % sum)
———————————————————————————————————-
while循環嵌套
-
前面學習過if的嵌套了,想一想if嵌套是什麼樣子的?
-
類似if的嵌套,while嵌套就是:while裏面還有while
<1>while嵌套的格式
while 條件1:
條件1滿足時,做的事情1
條件1滿足時,做的事情2
條件1滿足時,做的事情3
...(省略)...
while 條件2:
條件2滿足時,做的事情1
條件2滿足時,做的事情2
條件2滿足時,做的事情3
...(省略)...
<2>while嵌套應用一
要求:打印如下圖形:
*
* *
* * *
* * * *
* * * * *
參考代碼:
i = 1
while i <= 5:
j = 1
while j <= i:
print("* ", end = '')
j += 1
print("\n")
i += 1
<3>while嵌套應用二:九九乘法表
參考代碼:
i = 1
while i<=9:
j=1
while j<=i:
print("%d*%d=%-2d " % (j, i, i*j), end = '')
j+=1
print('\n')
i+=1
—
————————————————————————————————————-
for循環
像while循環一樣,for可以完成循環的功能。
在Python中 for循環可以遍歷任何序列的項目,如一個列表或者一個字符串等。
for循環的格式
for 臨時變量 in 列表或者字符串等可迭代對象:
循環滿足條件時執行的代碼
demo1
name = 'jiyun'
for x in name:
print(x)
運行結果如下:
i
t
h
e
i
m
a
demo2
>>> for x in name:
print(x)
if x == 'l':
print("Hello world!")
運行結果如下:
h
e
l
Hello world!
l
Hello world!
o
demo3
# range(5) 在python就業班中進行講解會牽扯到迭代器的知識,
# 作為剛開始學習python的我們,此階段僅僅知道range(5)表示可以循環5次即可
for i in range(5):
print(i)
'''
效果等同於 while 循環的:
i = 0
while i < 5:
print(i)
i += 1
'''
運行結果如下:
0
1
2
3
4
———————————————————————————————————-
break和continue
1. break
<1> for循環
- 普通的循環示例如下:
name = 'jiyun'
for x in name:
print('----')
print(x)
else:
print("==for循環過程中,如果沒有執行break退出,則執行本語句==")
運行結果:
----
i
----
t
----
h
----
e
----
i
----
m
----
a
==for循環過程中,如果沒有break則執行==
- 帶有break的循環示例如下:
name = 'jiyun'
for x in name:
print('----')
if x == 'e':
break
print(x)
else:
print("==for循環過程中,如果沒有執行break退出,則執行本語句==")
運行結果:
----
i
----
t
----
h
----
<2> while循環
- 普通的循環示例如下:
i = 0
while i<5:
i = i+1
print('----')
print(i)
else:
print("==while循環過程中,如果沒有執行break退出,則執行本語句==")
運行結果:
----
1
----
2
----
3
----
4
----
5
==while循環過程中,如果沒有break則執行==
- 帶有break的循環示例如下:
i = 0
while i<5:
i = i+1
print('----')
if i==3:
break
print(i)
else:
print("==while循環過程中,如果沒有執行break退出,則執行本語句==")
運行結果:
----
1
----
2
----
小結:
- break的作用:立刻結束break所在的循環
2. continue
<1> for循環
- 帶有continue的循環示例如下:
name = 'jiyun'
for x in name:
print('----')
if x == 'e':
continue
print(x)
else:
print("==while循環過程中,如果沒有break則執行==")
運行結果:
----
i
----
t
----
h
----
----
i
----
m
----
a
==while循環過程中,如果沒有break則執行==
<2> while循環
- 帶有continue的循環示例如下:
i = 0
while i<5:
i = i+1
print('----')
if i==3:
continue
print(i)
運行結果:
----
1
----
2
----
----
4
----
5
小結:
- continue的作用:用來結束本次循環,緊接着執行下一次的循環
3. 注意點
-
break/continue只能用在循環中,除此以外不能單獨使用
-
break/continue在嵌套循環中,只對最近的一層循環起作用