菜鳥Python筆記-基礎(chǔ)篇03:判斷語句和循環(huán)語句

一、判斷語句介紹

如果某些條件滿足,才能做某件事情;條件不滿足時,則不能做,這就是所謂的判斷。
不僅生活中有,在軟件開發(fā)中"判斷"功能也經(jīng)常會用到。

二、if語句

if判斷語句介紹

  • if語句是用來進行判斷的,其使用格式如下:
if 要判斷的條件:
        條件成立時,要做的事情
  • demo1:
age = 30

    print("------if判斷開始------")

    if age >= 18:
        print("我已經(jīng)成年了")

    print("------if判斷結(jié)束------")
  • 運行結(jié)果:
------if判斷開始------
    我已經(jīng)成年了
------if判斷結(jié)束------
  • if判斷語句的作用:就是當(dāng)滿足一定條件時才會執(zhí)行代碼塊語句,否則就不執(zhí)行代碼塊語句。
  • 注意:代碼的縮進為一個tab鍵,或者4個空格。

if-else

在使用if的時候,它只能做到滿足條件時要做的事情。那萬一需要在不滿足條件的時候,做某些事,該怎么辦呢?

答:使用 if-else

if-else的使用格式

if 條件:
    滿足條件時要做的事情1
    滿足條件時要做的事情2
    滿足條件時要做的事情3
    ...(省略)...
else:
    不滿足條件時要做的事情1
    不滿足條件時要做的事情2
    不滿足條件時要做的事情3
    ...(省略)...

demo1:

chePiao = 1 # 用1代表有車票,0代表沒有車票
if chePiao == 1:
    print("有車票,可以上火車")
    print("終于可以見到Ta了,美滋滋~~~")
else:
    print("沒有車票,不能上車")
    print("親愛的,那就下次見了"

結(jié)果1:有車票的情況

有車票,可以上火車
終于可以見到Ta了,美滋滋~~~

結(jié)果2:沒有車票的情況

沒有車票,不能上車
親愛的,那就下次見了

三、關(guān)系、邏輯運算符

比較(即關(guān)系)運算符

python中的比較運算符如下表:

運算符 描述 示例
== 檢查兩個操作數(shù)的值是否相等,如果是則條件變?yōu)檎妗?/td> 如a=3,b=3,則(a == b) 為 True
!= 檢查兩個操作數(shù)的值是否相等,如果值不相等,則條件變?yōu)檎妗?/td> 如a=1,b=3,則(a != b) 為 True
> 檢查左操作數(shù)的值是否大于右操作數(shù)的值,如果是,則條件成立。 如a=7,b=3,則(a > b) 為 True
< 檢查左操作數(shù)的值是否小于右操作數(shù)的值,如果是,則條件成立。 如a=7,b=3,則(a < b) 為 False
>= 檢查左操作數(shù)的值是否大于或等于右操作數(shù)的值,如果是,則條件成立。 如a=3,b=3,則(a >= b) 為 True
<= 檢查左操作數(shù)的值是否小于或等于右操作數(shù)的值,如果是,則條件成立。 如a=3,b=3,則(a <= b) 為 True
>>> # 關(guān)系運算符
... 
>>> # == 等于:表示左右兩個操作數(shù)是否相等,如果相等則整個表達式的值為 True;不相等則為False
... num1 = 15
>>> num2 = 20
>>> 
>>> print(num1 == num2)
False
>>> 
>>> # != 不等于
... print(num1 != num2)
True

邏輯運算符

運算符 邏輯表達式 描述 實例
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,整個表達式結(jié)果才為 True
... if (1 == 1) and (10 > 3):
...     print("條件成立!")
... 
條件成立!

>>> # or : 左右表達式有一個為True,整個表達式結(jié)果就為 True
... if (1 == 2) or (10 > 3):
...     print("條件成立!")
... 
條件成立!

>>> # not:將右邊表達式的邏輯結(jié)果取反,Ture變?yōu)镕alse,F(xiàn)alse變?yōu)門rue
... if not (1 == 2):
...     print("條件成立!")
... 
條件成立!

>>>

四、elif

如果有這樣一種情況:當(dāng)xxx1滿足時做事情1;當(dāng)xxx1不滿足、xxx2滿足時做事情2;當(dāng)xxx2不滿足、xxx3滿足時做事情3,那該怎么實現(xiàn)呢?

答:elif

elif的功能

elif的使用格式如下:

if xxx1:
    事情1
elif xxx2:
    事情2
elif xxx3:
    事情3
  • 說明:
    • 當(dāng)xxx1滿足時,執(zhí)行事情1,然后整個if結(jié)束
    • 當(dāng)xxx1不滿足時,那么判斷xxx2,如果xxx2滿足,則執(zhí)行事情2,然后整個if結(jié)束
    • 當(dāng)xxx1不滿足時,xxx2也不滿足,如果xxx3滿足,則執(zhí)行事情3,然后整個if結(jié)束

注意點

可以和else一起使用

if 性別為男性:
   輸出男性的體重
   ...
elif 性別為女性:
   輸出女性的體重
   ...
else:
   第三種性別的體重
   ...
  • 說明:
    • 當(dāng) “性別為男性” 滿足時,執(zhí)行 “輸出男性的體重”的相關(guān)代碼
    • 當(dāng) “性別為男性” 不滿足時,如果 “性別為女性”滿足,則執(zhí)行 “輸出女性的體重”的相關(guān)代碼
    • 當(dāng) “性別為男性” 不滿足,“性別為女性”也不滿足,那么久默認執(zhí)行else后面的代碼,即 “第三種性別的體重”相關(guān)代碼

elif必須和if一起使用,否則出錯

else一般用在最后,即所有條件都不滿足時使用

五、if嵌套

通過學(xué)習(xí)if的基本用法,已經(jīng)知道了

  • 當(dāng)需要滿足條件去做事情的這種情況需要使用if
  • 當(dāng)滿足條件時做事情A,不滿足條件做事情B的這種情況使用if-else

有些情況某個判斷是再另外一個判斷成立的基礎(chǔ)上進行的,這樣的情況該怎樣解決呢?

答:if嵌套

if嵌套的格式

if 條件1:

    滿足條件1 做的事情1
    滿足條件1 做的事情2

    if 條件2:
        滿足條件2 做的事情1
        滿足條件2 做的事情2
  • 說明
    • 外層的if判斷,也可以是if-else
    • 內(nèi)層的if判斷,也可以是if-else
    • 根據(jù)實際開發(fā)的情況,進行選擇

if嵌套的應(yīng)用

demo1:

chePiao = 1     # 用1代表有車票,0代表沒有車票
daoLenght = 9     # 刀子的長度,單位為cm

if chePiao == 1:
    print("有車票,可以進站")
    if daoLenght < 10:
        print("通過安檢")
        print("終于可以見到Ta了,美滋滋~~~")
    else:
        print("沒有通過安檢")
        print("刀子的長度超過規(guī)定,等待警察處理...")
else:
    print("沒有車票,不能進站")
    print("親愛的,那就下次見了")

結(jié)果1:chePiao = 1;daoLenght = 9

有車票,可以進站
通過安檢
終于可以見到Ta了,美滋滋~~~

結(jié)果2:chePiao = 1;daoLenght = 20

有車票,可以進站
沒有通過安檢
刀子的長度超過規(guī)定,等待警察處理...

結(jié)果3:chePiao = 0;daoLenght = 9

沒有車票,不能進站
親愛的,那就下次見了

結(jié)果4:chePiao = 0;daoLenght = 20

沒有車票,不能進站
親愛的,那就下次見了

六、if的補充知識

區(qū)間比較:

a = 10
1<a<20  # True
11<a<20  # False

三元運算符:

格式:

變量 = 值1 if 條件 else 值2

當(dāng)條件成立時把 值1 賦值給變量,條件不成立時把 值2 賦值給變量。

示例:

a = 10
b = 20
c = a if a>b else b
print(c)  # 條件不成立,把 b 的值賦給 c,也就是 c 的值為 20

數(shù)字的邏輯運算:

a = 0
b = 1
c = 3

# and 運算,只要有一個值為 0 則結(jié)果為0,否則結(jié)果為最后一個非 0 數(shù)字
a and b  # 0
b and a  # 0
c and b  # 1
b and c  # 3

# or 運算,只有所有值為 0 結(jié)果才為0,否則結(jié)果為第一個非 0 數(shù)字
a or a  # 0
a or b  # 1
b or a  # 1
c or b  # 3
b or c  # 1

七、循環(huán)語句介紹

軟件開發(fā)中循環(huán)的使用場景

跟媳婦承認錯誤,說一萬遍"媳婦兒,我錯了"

print("媳婦兒,我錯了")
    print("媳婦兒,我錯了")
    print("媳婦兒,我錯了")
    ...(還有99997遍)...

使用循環(huán)語句一句話搞定:

i = 0
while i < 10000:
    print("媳婦兒,我錯了")
    i += 1

總結(jié)

  • whileif的用法基本類似,區(qū)別在于:if 條件成立,則執(zhí)行一次; while 條件成立,則重復(fù)執(zhí)行,直到條件不成立為止。
  • 一般情況下,需要多次重復(fù)執(zhí)行的代碼,都可以用循環(huán)的方式來完成。
  • 循環(huán)不是必須要使用的,但是為了提高代碼的重復(fù)使用率,所以有經(jīng)驗的開發(fā)者都會采用循環(huán)。

八、while循環(huán)

while循環(huán)的格式

while 條件:
    條件滿足時,做的事情1
    條件滿足時,做的事情2
    條件滿足時,做的事情3
    ...(省略)...

demo:

i = 0
while i < 5:
    print("當(dāng)前是第%d次執(zhí)行循環(huán)" % (i + 1))
    print("i=%d" % i)
    i+=1

結(jié)果:

當(dāng)前是第1次執(zhí)行循環(huán)
i=0
當(dāng)前是第2次執(zhí)行循環(huán)
i=1
當(dāng)前是第3次執(zhí)行循環(huán)
i=2
當(dāng)前是第4次執(zhí)行循環(huán)
i=3
當(dāng)前是第5次執(zhí)行循環(huán)
i=4

九、while循環(huán)應(yīng)用

1. 計算1~100的累積和(包含1和100)

參考代碼如下:

i = 1
sum = 0
while i <= 100:
    sum = sum + i
    i += 1

print("1~100的累積和為:%d" % sum)

計算1~100之間偶數(shù)的累積和(包含1和100)

參考代碼如下:

i = 1
sum = 0
while i <= 100:
    if i % 2 == 0:
        sum = sum + i
    i+=1

print("1~100的累積和為:%d" % sum)

十、break和continue

1. break

break 會立即終止循環(huán),跳出當(dāng)前循環(huán),執(zhí)行之后的代碼:

i = 10

while i > 0:
    print("媽,還要我刷啊~~~~~~~~~")
    if i == 5:
        print('好了,不用刷了')
        break

    print("正在刷 %d 個碗" % i)
    i -= 1

print('程序結(jié)束')

運行結(jié)果:

媽,還要我刷啊~~~~~~~~~
正在刷 10 個碗
媽,還要我刷啊~~~~~~~~~
正在刷 9 個碗
媽,還要我刷啊~~~~~~~~~
正在刷 8 個碗
媽,還要我刷啊~~~~~~~~~
正在刷 7 個碗
媽,還要我刷啊~~~~~~~~~
正在刷 6 個碗
媽,還要我刷啊~~~~~~~~~
好了,不用刷了
程序結(jié)束

2. continue

continue 會立即結(jié)束當(dāng)前這一次循環(huán),跳轉(zhuǎn)到下一輪循環(huán)的條件判斷,代碼還在當(dāng)前循環(huán)中執(zhí)行。

i = 10

while i > 0:
    print("媽,還要我刷啊~~~~~~~~~")
    if i == 5:
        print('好了,不用刷了')

        i -= 1  # continue 之前要注意修改 i 的值,否則容易導(dǎo)致死循環(huán)
        continue

    print("正在刷 %d 個碗" % i)
    i -= 1

print('程序結(jié)束')

運行結(jié)果:

媽,還要我刷啊~~~~~~~~~
正在刷 10 個碗
媽,還要我刷啊~~~~~~~~~
正在刷 9 個碗
媽,還要我刷啊~~~~~~~~~
正在刷 8 個碗
媽,還要我刷啊~~~~~~~~~
正在刷 7 個碗
媽,還要我刷啊~~~~~~~~~
正在刷 6 個碗
媽,還要我刷啊~~~~~~~~~
好了,不用刷了
媽,還要我刷啊~~~~~~~~~
正在刷 4 個碗
媽,還要我刷啊~~~~~~~~~
正在刷 3 個碗
媽,還要我刷啊~~~~~~~~~
正在刷 2 個碗
媽,還要我刷啊~~~~~~~~~
正在刷 1 個碗
程序結(jié)束

3. 注意點

  • break/continue只能用在循環(huán)中,除此以外不能單獨使用
  • break/continue在嵌套循環(huán)中,只對最近的一層循環(huán)起作用

十一、while循環(huán)的嵌套及應(yīng)用

類似if的嵌套,while嵌套就是:while里面還有while

while嵌套的格式

while 條件1:

    條件1滿足時,做的事情1
    條件1滿足時,做的事情2
    條件1滿足時,做的事情3
    ...(省略)...

    while 條件2:
        條件2滿足時,做的事情1
        條件2滿足時,做的事情2
        條件2滿足時,做的事情3
        ...(省略)...

while嵌套應(yīng)用一

要求:打印如下圖形:

*
* *
* * *
* * * *
* * * * *

參考代碼:

i = 1
while i <= 5:
    j = 1
    while j <= i:
        print("* ", end = '')  # end = '',為末尾end傳遞一個空字符串,這樣print函數(shù)不會在字符串末尾添加一個換行符,而是添加一個空字符串
        j += 1

    print("\n")
    i += 1

while嵌套應(yīng)用二:九九乘法表

九九乘法表

參考代碼:

i = 1
while i<=9:
    j=1
    while j<=i:
        print("%d*%d=%-2d " % (j, i, i*j), end = '')  # %-2d:2位左對齊 不夠兩位補空格
        j+=1
    print('\n')
    i+=1

十二、for循環(huán)

  • while循環(huán)一樣,for可以完成循環(huán)的功能。

  • 在Python中 for循環(huán)可以遍歷任何序列的項目,如一個列表或者一個字符串等。

for循環(huán)的格式

for 臨時變量 in 列表或者字符串等可迭代對象:
    循環(huán)滿足條件時執(zhí)行的代碼

demo1:

name = 'itheima'

for x in name:
    print(x)

運行結(jié)果如下:

i
t
h
e
i
m
a

demo2:

name = 'itheima'
for x in name:
    if x == 'e':
        print("不能使用字符 e")
    else:
        print(x)

運行結(jié)果如下:

i
t
h
不能使用字符 e
i
m
a

demo3:
for 循環(huán)的 else 語句只有當(dāng)循環(huán)正常結(jié)束才會執(zhí)行,也就是沒有被 break 打斷才會執(zhí)行

name = 'itcast'
for x in name:
    if x == 'e':
        print("不能使用字符 e")
        break
    else:
        print(x)
else:
    print('沒有出現(xiàn)禁止使用的字符')

運行結(jié)果如下:

i
t
h
c
a
s
t
沒有出現(xiàn)禁止使用的字符
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容