一、判斷語句介紹
如果某些條件滿足,才能做某件事情;條件不滿足時,則不能做,這就是所謂的判斷。
不僅生活中有,在軟件開發(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é)
-
while和if的用法基本類似,區(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)禁止使用的字符