判斷語句和循環語句

  • 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歲,如果滿足就輸出「哥,已成年,網吧可以去了」

  1. 使用input從鍵盤中獲取數據,並且存入到一個變數中
  2. 使用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在嵌套循環中,只對最近的一層循環起作用