一妖泄、判斷語句介紹
如果某些條件滿足驹沿,才能做某件事情;條件不滿足時蹈胡,則不能做渊季,這就是所謂的判斷。
不僅生活中有罚渐,在軟件開發(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
判斷語句的作用:就是當滿足一定條件時才會執(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
如果有這樣一種情況:當xxx1滿足時做事情1提陶;當xxx1不滿足烫沙、xxx2滿足時做事情2;當xxx2不滿足隙笆、xxx3滿足時做事情3秤茅,那該怎么實現(xiàn)呢?
答:
elif
elif
的功能
elif
的使用格式如下:
if xxx1:
事情1
elif xxx2:
事情2
elif xxx3:
事情3
- 說明:
- 當xxx1滿足時外构,執(zhí)行事情1展运,然后整個if結(jié)束
- 當xxx1不滿足時,那么判斷xxx2铅忿,如果xxx2滿足剪决,則執(zhí)行事情2,然后整個if結(jié)束
- 當xxx1不滿足時,xxx2也不滿足柑潦,如果xxx3滿足享言,則執(zhí)行事情3,然后整個if結(jié)束
注意點
可以和else
一起使用
if 性別為男性:
輸出男性的體重
...
elif 性別為女性:
輸出女性的體重
...
else:
第三種性別的體重
...
- 說明:
- 當 “性別為男性” 滿足時渗鬼,執(zhí)行 “輸出男性的體重”的相關(guān)代碼
- 當 “性別為男性” 不滿足時览露,如果 “性別為女性”滿足,則執(zhí)行 “輸出女性的體重”的相關(guān)代碼
- 當 “性別為男性” 不滿足譬胎,“性別為女性”也不滿足差牛,那么久默認執(zhí)行else后面的代碼,即 “第三種性別的體重”相關(guān)代碼
elif
必須和if
一起使用银择,否則出錯
else
一般用在最后多糠,即所有條件都不滿足時使用
五、if嵌套
通過學(xué)習(xí)if
的基本用法浩考,已經(jīng)知道了
- 當需要滿足條件去做事情的這種情況需要使用
if
- 當滿足條件時做事情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
當條件成立時把 值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次執(zhí)行循環(huán)" % (i + 1))
print("i=%d" % i)
i+=1
結(jié)果:
當前是第1次執(zhí)行循環(huán)
i=0
當前是第2次執(zhí)行循環(huán)
i=1
當前是第3次執(zhí)行循環(huán)
i=2
當前是第4次執(zhí)行循環(huán)
i=3
當前是第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),跳出當前循環(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é)束當前這一次循環(huán)笔诵,跳轉(zhuǎn)到下一輪循環(huán)的條件判斷返吻,代碼還在當前循環(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
語句只有當循環(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)禁止使用的字符