python基礎二_01_python運算
導讀:
本文主要記錄自己學習python3基礎中Python 運算(布爾值、自增、比較、邏輯)的要點知識和例子;僅供自己梳理。
一、布爾值(bool)
True : 非0的數字,非空的(字符串、列表、元組、字典)
False: 0 ‘ ’() [] {} None
布爾值可與邏輯運算符and(且)、or(或)、not(非)來運算
1.and(且)運算,所有條件都符合才爲True
有假則假,同真才真
True and True
True and False
False and False
2.or(或)運算,只要其中有一個爲True,都爲True
有真則真,同假才假
True or False
True or True
False or False
3.not(非)運算,取反
not True
not False
注意:空值:空值爲None;None不能理解爲0;0是有意義的,None是一個特殊的空值;
4.執行的優先級
執行先後順序:非 且 或
二、自增(自減等)運算
i = 10
i += 1 等同於 i = i+1
i += 2 等同於 i = i+2
i -= 1 等同於 i = I-1
i = 1 等同於 i = i 1
i /= 1 等同於 i = i/1
三、 比較(關係)運算符
運算符
描述
示例
==
檢查兩個操作數的值是否相等,如果是則條件變爲真。
如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.
四、邏輯運算符
執行優先級順序(由高到低):非 且 或
運算符
邏輯表達式
描述
提問
and
x and y
布爾"與" - 如果 x 爲 False,x and y 返回 False,否則它返回 y 的計算值。
那如果x總爲False呢?
or
x or y
布爾"或" - 如果 x 是 True,它返回 True,否則它返回 y 的計算值。
那如果x總爲True呢?
not
not x
布爾"非" - 如果 x 爲 True,返回 False 。如果 x 爲 False,它返回 True。
1.and的運算優先級>or
True or False and False
分析:
如果是沒有優先級,只是從左往右算的話,那麼,True or False 結果爲True,繼續True and False ,結果應該爲False
但實際運行結果爲True。是因爲and的運算優先級比or高,所以先算的False and False,結果爲False,然後True or False,所以結果是True。
2.not的運算優先級>and
not False and False
如果先算and那麼結果爲:True
結果爲:False是因爲not的運算優先級大於and
3.not的運算優先級>or
not False or True
如果先算or那麼結果爲:False
結果爲:True是因爲not的運算優先級大於or
通過以上的對比邏輯運算的執行順序 not>and>or
五、面試題
閏年是公曆中的名詞:
普通年:能被4整除但不能被100整除的年份爲普通閏年。(如2004年就是閏年,1999年不是閏年);
世紀年:能被400整除的爲世紀閏年。(如2000年是世紀閏年,1900年不是世紀閏年);
year = int ( input ( '請輸入一個年份:' ) )
if ( year % 4 ) == 0 and ( year % 100 ) != 0 or ( year % 400 ) == 0 :
print ( '{}是閏年' . format ( year) )
else :
print ( '{}不是閏年' . format ( year) )