人生苦短,我選Pythonpython
前文傳送門git
小白學 Python(1):開篇github
上一篇文章咱們介紹了算術運算符和比較運算符。本篇咱們繼續介紹其他的幾個:設計
Python 中,使用 =
號表示賦值。固然,Python 還提供了其餘賦值方式,直接幫咱們簡化了寫法,如 +=
, -=
,沒有編程經驗的同窗可能會比較懵逼。3d
其實小編當年在學 Java 的時候第一次接觸也是很懵的,這裏其實無需懵逼,簡單理解 a += 1
其實就是 a = a + 1
。這只是一種簡化寫法。code
題外話(建:有編程經驗人士閱讀,無編程經驗能夠跳過):
在不少編程語言中如 Java ,都會有自增 i++ 這種寫法,可是 Python 並無,這是由於
+=
是表明改變了變量,至關於從新生成了一個變量,把操做後的結果賦予這個新生成的變量。可是在 Python 中,變量是之內容爲基準而不是像 Java 中以變量名爲基準,因此只要你的數字內容是 5 ,無論你起什麼名字,這個變量的 ID 是相同的,同時也就說明了 Python 中一個變量能夠以多個名稱訪問。這樣的設計邏輯決定了 Python 中數字類型的值是不可變的,例如:a 和 b 都是 5,當你改變了 a 時,b 也會跟着變,這固然不是咱們但願的。
Python 中的賦值表達式可見下表:
運算符 | 描述 |
---|---|
= | 賦值運算符 |
+= | 加法賦值運算符,c += a 等效於 c = c + a |
-= | 減法賦值運算符,c -= a 等效於 c = c - a |
*= | 乘法賦值運算符,c = a 等效於 c = c a |
/= | 除法賦值運算符,c /= a 等效於 c = c / a |
%= | 取模賦值運算符,c %= a 等效於 c = c % a |
**= | 冪賦值運算符,c = a 等效於 c = c a |
//= | 取整除賦值運算符,c //= a 等效於 c = c // a |
上面的表格光看描述總感受有點乾巴巴的,下面咱們仍是來舉幾個栗子給各位同窗演示一下:
a = 10
b = 20
c = a + b
print("c = a + b 的值爲:", c)
c += a
print("c += a 的值爲:", c)
c *= a
print("c *= a 的值爲:", c)
c /= a
print("c /= a 的值爲:", c)
c = 2
c %= a
print("c %= a 的值爲:", c)
c **= a
print("c **= a 的值爲:", c)
c //= a
print("c //= a 的值爲:", c)複製代碼
運行結果以下:
c = a + b 的值爲: 30
c += a 的值爲: 40
c *= a 的值爲: 400
c /= a 的值爲: 40.0
c %= a 的值爲: 2
c **= a 的值爲: 1024
c //= a 的值爲: 102複製代碼
邏輯運算符有三種,分別是與、或、非。
這個實際上是離散數學中的概念,不知道其餘專業的同窗有沒有學,反正學計算機的確定有這門課。emmmmmmmmmmmmm 咱們實際上是 Python 教程,就不扯離散數學了,有興趣的同窗請自行百度吧。
這麼看介紹有點抽象,咱們直接上栗子,看了栗子你們就懂了,其實很簡單。
print(True and True)
# True
print(True and False)
# False
print(True or True)
# True
print(True or False)
# True
print(False or False)
# False
print(not True)
# False
print(not False)
# True複製代碼
成員運算符用來判斷在指定的序列中有沒有找到目標值,這個序列能夠是字符串、列表和元祖。
前面的文章還沒有介紹列表和元祖,下面的示例僅使用字符串來作演示:
str = "asdfghjkl"
if 'a' in str:
print('a 在字符串 str 中')
else:
print('a 不在字符串 str 中')
if 'a' not in str:
print('a 不在字符串 str 中')
else:
print('a 在字符串 str 中')複製代碼
輸出結果:
a 在字符串 str 中
a 在字符串 str 中複製代碼
身份運算符用於比較兩個對象的存儲單元。
示例以下:
a = 20
b = 20
if a is b:
print("a 和 b 有相同的標識")
else:
print("a 和 b 沒有相同的標識")
if id(a) == id(b):
print("a 和 b 有相同的標識")
else:
print("a 和 b 沒有相同的標識")
# 修改變量 b 的值
b = 30
if a is b:
print("a 和 b 有相同的標識")
else:
print("a 和 b 沒有相同的標識")
if a is not b:
print("a 和 b 沒有相同的標識")
else:
print("a 和 b 有相同的標識")複製代碼
注意: id()
函數用於獲取對象內存地址。
輸出結果以下:
a 和 b 有相同的標識
a 和 b 有相同的標識
a 和 b 沒有相同的標識
a 和 b 沒有相同的標識複製代碼
其實這個輸出結果能夠看出來,在 Python ,若是兩個數值同樣的變量, Python 並不會在內存中從新開闢內存空間,而是會複用已有的內存空間。
本系列的全部代碼小編都會放在代碼管理倉庫 Github 和 Gitee 上,方便你們取用。