python學習之運算符

python學習之運算符

本篇文章說明python中的一些運算符,python版本號爲python3.6,python2中的內容再也不本篇文章內python

1. 算術運算符

運算符 描述 實例
+ 兩個對象相加 10+20=30
- 獲得負數或是一個數減去另外一個數 20-10=10
* 兩個數相乘或是返回一個被重複若干次的字符串 2*3=6'py'*3='pypypy'
/ x除以y 5/2=2.5
% 取模,返回除法的餘數 5%3=2
** 冪,返回x的y次冪 2**10=1024
// 取整除,返回商的整數部分(向下取整) 10//3=3

2. 比較運算符

運算符 描述
== 等於 - 比較對象是否相等
!= 不等於 - 比較兩個對象是否不相等
<> 不等於 - 比較兩個對象是否不相等
> 大於 - 返回x是否大於y
< 小於 - 返回x是否小於y
>= 大於等於 - 返回x是否大於等於y。
<= 小於等於 - 返回x是否小於等於y。

3.位運算符

運算符 描述 實例
& 按位與運算符 3&5=1 ,二進制解釋:011 & 101 = 001
| 按位或運算符 3|5=7 ,二進制解釋:011 | 101 = 111
^ 按位異或運算符 3^5=7,二進制解釋:011 ^ 101 = 110
~ 按位取反運算符,~x 相似於 -x-1 ~5 = -6
<< 左移動運算符: 高位丟棄,低位補0。 4<<4=64
>> 右移動運算符 128>>4=8

4. 邏輯運算符

運算符 邏輯表達式 描述 實例
and x and y 布爾"與" 若是 x 爲 False,x and y 返回 False,不然它返回 y 的計算值。 12 and 4 = 412 and False = False
or x or y 布爾"或" 若是 x 是非 0,它返回 x 的值,不然它返回 y 的計算值。 12 or 5 = 12
not not x 布爾"非" 若是 x 爲 True,返回 False 。若是 x 爲 False,它返回 True。 not 5 = False

5. 成員運算符

運算符 描述 實例
in 若是在指定的序列中找到值返回 True,不然返回 False。 's' in 'asdf' = True
not in 若是在指定的序列中沒有找到值返回 True,不然返回 False。 's' not in 'asdf' = False

6. 身份運算符

運算符 描述
is is 是判斷兩個標識符是否是引用自一個對象x is y, 相似 id(x) == id(y) , 若是引用的是同一個對象則返回 True,不然返回 False
is not is not 是判斷兩個標識符是否是引用自不一樣對象 x is not y , 相似id(a) != id(b)。若是引用的不是同一個對象則返回結果 True,不然返回 False。.

id() 函數用於獲取對象內存地址。數組

7.其餘

1. 關於++ 或 -- 自運算符

  
  由於在 Python 裏的數值和字符串之類的都是不可變對象,對不可變對象操做的結果都會生成一個新的對象。函數

a = 1
print(id(a))
a += 1
print(id(a))
#輸出結果
1908042784
1908042816

  在 C/java 之類的語言中,把a指向內存地址單元數據值由1改爲了2。可是在Python中是徹底不一樣的另外一套機制。解釋器建立一個新的整數對象 2。而後把這個對象的地址再次分配給 a。
  因此在 Python 中不可能出現C/java 之類那種單獨一行一個 i++,i-- 的。學習

2. is 和 ==

  
  is 用於判斷兩個變量引用對象是否爲同一個, == 用於判斷引用變量的值是否相等。
a is b 至關於 id(a)==id(b)。code

3. 數組的兩種賦值方式區別

  在python中給數組賦值的經常使用方法中有兩個不一樣的方式對象

# 第一種
b=a 

# 第一種
b=a[:]

看起來都是同樣的,那麼他們之間有沒有什麼區別呢?固然,區別是有的。區別就是:前者傳遞引用;後者是拷貝。直接=是引用賦值,引用原來的對象;而[:]是從新推導,會生成新的對象。用代碼演示以下:內存

a = [1, 2, 3, 4]
b = a
c = a[:]
print(id(a))
print(id(b))
print(id(c))
#輸出結果
2294445187016
2294445187016
2294445993544
相關文章
相關標籤/搜索