Python 運算符

邏輯和運算是程序重要組成部分,我們先來認識Python中的運算符:

1:算數運算符
2:比較運算符
3:邏輯運算符


1. 算數運算符:
運算符 描述
+, -, *, / 加減乘除
% 求余
** 冪運算
// 地板除只保留商

具體使用如下:

>>> x =10
>>> y = 20
>>> x + y
30
>>> x * y
200
>>> x / y
0.5                      #計算結果:浮點
>>> y / x
2.0
>>> x ** 2               #冪運算
100 
>>> x // y
0                        #計算結果:只取整數部分
>>> y // x
2                        #計算結果:只取整數部分

算數運算符的優先級,通過實驗證明下:

>>> 3 * 4 ** 2      #從結果看:先計算4**2=16, 在計算3*16=48 ,所以優先級 冪運算大于乘法
48
>>> 10 - 2 * 6      #從結果看:先計算2*6=12, 在計算 10-12 = -2, 所以優先級 乘法大于減法
-2

優先級:冪運算 , 乘除求余地板除, 加減法
編程過程中如何解決默認優先級問題,比如先計算加減,在計算乘除?
我們使用()解決優先級問題;
例如年計算年薪:(基本薪資+補助-保險)* 12

>>> salary = 8000
>>> added = 200
>>> deduction = 500
>>> all = (salary + added - deduction) * 12
>>> all
92400
2. 比較運算符:
運算符 描述(a, b為操作數)
== 恒等于:a == b, a等于b, 值為True,否則為False
!= 不等于:a != b, a不等于b, 值為True,否則為False
> 大于:a > b, a大于b, 值為True,否則為False
< 小于:a < b,a小于b, 值為True,否則為False
>= 大于等于:a >= b:,a小于或等于b, 值為True,否則為False
<= 小于等于:a<=b,a小于或等于b,值位True,否則為False

比較運算符,一操作就明白意思:

>>> a = 10
>>> b = 20
>>> a == 10
True
>>> a != 10
False
>>> a > b
False
>>> a < b
True
>>> a >= 8
True
>>> a >= 10
True

比較運算符和if/else語句一起使用:
腳本文件 test.py:

passline = 60
score = int(raw_input('Enter:')) #輸入的字符串轉化成數字,只能輸入數字
if score > 60:
    print ('Pass')
else:
    print ('Failed')

執行結果如下:

$ python test.py 
Enter:80
Pass
$ python test.py 
Enter:40
Failed
3. 邏輯運算符:
運算符 描述 (a,b為操作數)
and 邏輯與:a and b, a和b全為真,表達式值為運算符最后一個操作數,否則為第一個值為假的操作數
or 邏輯或:a and b,a和b有一個為真,表達式值為第一個是真的操作數,否則為False
not 邏輯非,not a,a為真,表達式結果假,反之為真

解釋半天不如實際操作一番,先來看and:

>>> a = 10
>>> b = 20
>>> a and b                  #操作數全為真,返回最后一個操作數
20
>>> a and b and 100          #操作數全為真,返回最后一個操作數
100
>>> a and b and 0            #0為假
0
>>> 0 and a                  #0為假
0
>>> print (a and b and None) #返回第一個不為真的操作數None
None
>>>

再開看or:

>>> a = 10
>>> b = 20
>>> a and b       #返回第一個是真的操作數
20
>>> a or None     #返回第一個是真的操作數,就算有假也改變不了
10
>>> None or False #都是假,返回最后一個操作數
False
>>> not a         #順便看下not
False
>>> not None
True
>>> not 10
False
>>> 
4. 優先級問題:

先驗證算術運算符

>>> 100/10**2      #如果先計算100/10,那么結果還是100,所以先計算10**2
1
>>> a = 10
>>> b = 20
>>> b - a * 2      #解釋為: t=a*2=20, b-t=0, *優先級高于減法
0
>>> a + b - 10     #加減法優先級相同,從左向右計算
20
>>> a * b / 20     #*/%優先級相同,從左向右計算(其他運算符自己操作下)
10
>>>

驗證算數運算符和比較運算符:

>>> a = 10
>>> b = 20
>>> a - b > 1   #這個怎么說?看下面單步分析
False 
>>> a - b       #a-b的值-1, -1>1的值肯定是False,所以先減法后比較
-10
>>> b > 1       #反推:b>1的值True
True
>>> a - True    #a-True的值是9,a-b>1的值不是9,所以,先比較后計算不成立
9

驗證比較運算符和邏輯運算符:

>>> not - 1 > 0   #咋弄?逐步分析:從左向右
True
>>> not  - 1      #:not -1 的值False
False
>>> False > 0     #推出肯定不是先計算not -1,推出先計算-1 > 0嗎,然后計算not
False
>>> 10 > 8 and 1  #再看and :如果先計算8 and 1返回值應該是True,所以...
1

結果已經出來了:
冪運算>乘除>加減>比較運算符>邏輯運算

算數運算符就講到這里,后面代碼編寫過程中我們經常用到,理解大于記住,但是能記住還是要記住。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容