Python-流程控制 if判斷
目錄:
- Python-流程控制 if判斷
- 一、可變與不可變型別
- 二、條件
- 三、邏輯運算子
- not
- and
- or
- 優先級
- 四、成員運算子
- 五、身份運算子
- 六、if判斷
- 語法1
- 語法2
- 語法3
- if嵌套if
一、可變與不可變型別
可變型別:存盤空間保存的資料允許被修改,這種資料就是可變型別,值(堆區)改變,id不變,證明改的是原值,證明原值是可以被改變的,
常見的可變型別:
- 串列 list
- 字典 dict
不可變型別:存盤空間保存的資料不允許被修改,這種資料就是不可變型別,
值改變,id也變了,證明是產生了新的值,壓根沒有改變原值,證明原值是不可以被修改的,
常見的不可變型別:
- 數字型別 int, bool, float, complex, long
- 字串 str
- 元組 tuple
注:
- int、float、str在Python中都被設計成了不可分割的整體,不能夠被改變,所有的賦值操作都是在堆疊區內產生了一個新的值捆綁給變數名,只要是賦值,就一定會產生新的空間,與變數進行系結,
- 字典:{}內用逗號分隔開多個key:value,其中value可以是任意型別(比如整型int、浮點型float、串列list、字典dict等),但是key必須是不可變型別,
二、條件
條件可以是比較運算子,可以是True、False,條件判斷后會得到一個布林值,
隱式布林值:所有的值都可以當成布林值(條件)去使用,其中0、None、空(空字串、空串列、空字典)代表的布林值為False,其余的都是True,
三、邏輯運算子
not
not就是把緊跟其后的那個條件結果取反,且not與緊跟其后的那個條件是一個不可分割的整體,
示例:
age = 16
print(not age > 13)
print(not age < 12)
#輸出結果如下
False
True
and
and:邏輯與,and用來連接左右兩個條件(條件1 and 條件2),兩個條件同時為True,最終結果才為True,當多個and陳述句同時出現時,所有條件全為真,最終結果才為真,有一個條件為假,最終結果就為假,
示例:
print(True and 10 > 3)
print(True and 10 > 3 and 10)
print(0 and 10 > 3 and 10 and 1 > 3 and 4 == 4 and 3 != 3)
#輸出結果如下:
True
10
0
or
or:邏輯或,or用來連接左右兩個條件,兩個條件但凡有一個為True,最終結果就為True,兩個條件都為False的情況下,最終結果才為False,
示例:
print(3 > 2 or 0)
print(10 or 3 != 2 or 3 > 2 or True)
#輸出結果如下
True
10
優先級
not > and > or
如果單獨就只是一串and連接,或者說單獨就只是一串or連接,按照從左往右的順序依次運算即可,
如果是混用,則需要考慮優先級,
示例:
res = 3 > 4 and not 4 > 3 or 1 == 3 and 'x' == 'x' or 3 > 3
#上邊代碼塊等價于下邊代碼塊
res = (3 > 4 and (not 4 > 3)) or (1 == 3 and 'x' == 'x') or 3 > 3
print(res)
#輸出結果如下
False
括號的優先級或改變邏輯運算的,一般混用運算時,先把not的陳述句用括號括起來,然后把and兩端連接的兩個陳述句用括號括起來,最后進行運算即可,
四、成員運算子
成員運算子in適用于字串,用于判斷一個子字串是否存在于一個大字串中,
示例:
print('egon' in 'hello egon')
#輸出結果如下
True
#判斷元素是否存在于串列
print(111 in [111,222,333])
#輸出結果如下:
True
#判斷key是否存在于字典
print(111 in {'k1':111, 'k2':222})
print('k1' in {'k1':111, 'k2':222})
#輸出結果如下
False
True
#notin
print('egon' not in 'hello egon')
print(not 'egon' in 'hello egon')
#邏輯上兩者相同,但是代碼塊1語意更明確,推薦使用,
#輸出結果如下
False
False
五、身份運算子
身份運算子用于比較兩個物件的存盤單元,
is是判斷兩個識別符號是不是參考自一個物件,即值的id是否相等,
is not是判斷兩個識別符號是不是參考自不同物件,即值的id是否不相等,
示例:
x = 10
y = 10
print(x is y)
#輸出結果如下
True
六、if判斷
語法1
if 條件:
代碼1
代碼2
代碼3
示例:
age = 18
is_beautiful = True
star = '水瓶座'
if 16 < age < 20 and is_beautiful and star == '水瓶座':
print('yes')
print('其他代碼,,,,,,,,,,')
#輸出結果如下
yes
其他代碼,,,,,,,,,,
語法2
if 條件:
代碼1
代碼2
代碼3
else:
代碼1
代碼2
代碼3
else在if條件不成立時才能運行
示例:
age = 18
is_beautiful = True
star = '水瓶座'
if 16 < age < 20 and is_beautiful and star == '水瓶座':
print('yes')
else:
print('no')
print('其他代碼,,,,,,,,,,')
#輸出結果如下
yes
其他代碼,,,,,,,,,,
語法3
if 條件1:
代碼1
代碼2
代碼3
elif 條件2:
代碼1
代碼2
代碼3
elif 條件3:
代碼1
代碼2
代碼3
elif 條件4:
代碼1
代碼2
代碼3
...
else:
代碼1
代碼2
代碼3
示例:
score = int(input('請輸入您的成績:'))
if score >= 90:
print('優秀')
elif score >= 80:
print('良好')
elif score >=70:
print('普通')
else:
print('很差,小垃圾')
運行結果如下:




if嵌套if
示例:
age = 18
is_beautiful = True
star = '水瓶座'
if 16 < age < 20 and is_beautiful and star == '水瓶座':
print('yes')
is_successful = True
if is_successful:
print('success')
else:
print('no')
print('其他代碼,,,,,,,,,,')
#輸出結果如下
yes
success
其他代碼,,,,,,,,,,

小v的第四篇…
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/239053.html
標籤:python
