內容簡述:
- 1、變數
- 2、常量
- 3、運算子
1、變數
① 什麼是變數
程式執行過程中值可以改變的資料,代表這一個儲存空間,需要用變數名來找到這個資料。舉個形象化的例子:超市儲物箱,存東西到箱子裡後會給你一個紙條,根據紙條才能取回裡面的東西。儲物櫃的格子可以理解為變數的記憶體空間,紙條就是變數名,拿和放就是修改變數名對應記憶體空間裡的資料。
② 變數的使用示例
變數「使用前需先定義」,python是一種「動態型別語言」,賦值時可以繫結不同型別的資料值。同時也確定了變數型別。Python中可以通過type()
函式來獲取變數的資料型別,示例如下:
# 變數定義(確定初始值型別)
a = 1
print('%s => %d' % (type(a),a))
# 變數賦值
a = 'Python'
print('%s => %s' % (type(a),a))
# 執行結果如下:
# <class 'int'> => 1
# <class 'str'> => Python
複製程式碼
③ 多個變數賦值
Python支援多個變數賦值,以下兩種賦值方法都是正確的:
a = b = c = 1
a, b, c = 1,2,"Python"
複製程式碼
④ del關鍵字
我們可以使用del
關鍵字刪除物件的引用,但刪除後再呼叫變數是會報錯的,比如呼叫del a,然後再去把a列印出來,會報這樣的錯誤:NameError: name 'a' is not defined。
2、常量
Python中沒有專門定義常量的方式,通常使用大寫變數名錶示,不過僅僅是起一種「提示效果」,本質上還是變數!
3、運算子
① 算術運算子(7種) & 賦值運算子(8種)
Python中包含的算術運算子有如下七種:
+
(加) -
(減)*
(乘) /
(除) %
(求餘) *
(冪,次方) //
(地板除法,捨棄小數)
使用程式碼示例如下:
print("3 + 7 = %d" % (3 + 7))
print("3 - 7 = %d" % (3 - 7))
print("3 * 7 = %d" % (3 * 7))
print("7 / 3 = %f" % (7 / 3))
print("7 %% 3 = %d" % (7 % 3))
print("3 ** 6 = %d" % (7 ** 3))
print("3 // 6 = %f" % (7 // 3))
複製程式碼
執行結果如下:
3 + 7 = 10
3 - 7 = -4
3 * 7 = 21
7 / 3 = 2.333333
7 % 3 = 1
3 ** 6 = 343
3 // 6 = 2.000000
複製程式碼
而賦值運算子就是在算術運算子後新增一個=
(等號),比如:a+=1 等價於: a = a + 1,
8種賦值運算子:=
+=
-=
*=
/=
%=
*=
//=
② 比較運算子(6種)
Python中提供如下六種比較運算子:
==
(等於) !=
(不等於) >
(大於) <
(小於) >=
(大於等於) <=
(小於等於)
比較結果會返回一個布林值,True
或 False
,一般在條件判斷那裡會用到。
③ 位運算子(6種)
位運算子是把數字看做二進位制來計算,首先你要了解禁止轉行,我們平時說的數字都是十進位制,十進位制如何轉換成二進位制?一直求餘法
,舉個例子,十進位制的6轉換為二進位制:
6 % 2 = 0 得出第一位為0
6 / 2 = 3
3 % 2 = 1 得出第二位為1
3 / 2 = 1
1 % 2 = 1 得出第三位為1
# 所以十進位制的6轉成二進位制的值就是:110
# 再試試十進位制的17轉二進位制:
17 % 2 = 1 得出第1位為1
17 / 2 = 8
8 % 2 = 0 得出第2位為0
8 / 2 = 4
4 % 2 = 0 得出第3位為0
4 / 2 = 2
2 % 2 = 0 得出第4位為0
2 / 2 = 1
1 % 2 = 1 得出第5位為1
複製程式碼
所以十進位制的17轉二進位制的值就是:10001,知道十進位制怎麼轉二進位制了,那麼二進位制怎麼轉十進位制呢?用到權值相加法
,比如二進位制的110轉十進位制:
1*2^2+1*2^1+0*2^0=4+2=6
複製程式碼
再試試10001轉十進位制:
1*2^4+0*2^3+0*2^2+0*2^1+1*2^0=16+1=17
複製程式碼
Python中提供了bin函式,可以獲得一個整形數字的二進位制表示,下面通過示例程式來了解Python中的6種位運算子:
a = 6
b = 17
print('a 對應的二進位制值 %s' % bin(a))
print('b 對應的二進位制值 %s' % bin(b))
# & 按位與,兩個相應位都為1則為1,否則為0
print('a & b = %s 對應十進位制的值為: %d' % (bin(a & b), a & b))
# | 按位或,兩個相應位有一個為1,則為1,兩個都不為0,才為0
print('a | b = %s 對應十進位制的值為: %d' % (bin(a | b), a | b))
# ^ 異或,兩個相應位不同為1,相同為0
print('a ^ b = %s 對應十進位制的值為: %d' % (bin(a ^ b), a ^ b))
# ~ 按位取反,二進位制位取反,0變1,1變0
print('~a = %s 對應十進位制的值為:%a' % (bin(~a), ~a))
# << 左移運算子,所有位向左移一定位數,高位丟棄,低位補0
print('a << 2 = %s 對應十進位制的值為:%a' % (bin(a << 2), a << 2))
# >> 右移運算子,所有位向右移一定位數
print('a >> 2 = %s 對應十進位制的值為:%a' % (bin(a >> 2), a >> 2))
複製程式碼
輸出結果如下:
a 對應的二進位制值 0b110
b 對應的二進位制值 0b10001
a & b = 0b0 對應十進位制的值為: 0
a | b = 0b10111 對應十進位制的值為: 23
a ^ b = 0b10111 對應十進位制的值為: 23
~a = -0b111 對應十進位制的值為:-7
a << 2 = 0b11000 對應十進位制的值為:24
a >> 2 = 0b1 對應十進位制的值為:1
複製程式碼
④ 邏輯運算子(3種)
Python中提供了三種邏輯運算子,分別是:and
(邏輯與),or
(邏輯或),not
(邏輯非),一般在條件判斷的時候會用到,程式碼示例如下:
score = 70
# 邏輯與,兩個表示式都成立,才執行
if score > 60 and score < 100:
print('分數及格')
# 邏輯與,有一個表示式成立就執行
score = -10
if score < 0 or score > 100:
print("分數值非法,不能小於0或者大於100")
# 邏輯非,逆轉,表示式成立的話反而不執行
score = 100
if not score == 100:
print("沒有滿分")
else:
print("滿分")
複製程式碼
輸出結果如下:
分數及格
分數值非法,不能小於0或者大於100
滿分
複製程式碼
⑤ 成員運算子(2種)
Python提供了成員運算子,用於「判斷指定的序列中是否有某個特定的值」,in
和 not in
,
比如判斷列表中是否有某個特定的值的程式碼示例如下:
people_list = ['小明', '小紅', '小白', '小豬']
if '小豬' in people_list:
print("小豬在列表裡")
if '大豬' not in people_list:
print("大豬不在列表裡")
複製程式碼
輸出結果如下:
小豬在列表裡
大豬不在列表裡
複製程式碼
⑥ 身份運算子(2種)
Python中提供了身份運算子用於「判斷兩個識別符號是不是引用自一個物件」,is
和 is not
,使用示例如下:
# 普通資料型別
a = 1
b = 1
print('當前a和b引用同一個變數:%s' % (a is b))
# 複雜資料型別(陣列)
a = [1]
b = [1]
print('當前a和b引用不同一個變數:%s' % (a is not b))
# 字串
a = 'python'
b = 'python'
print('當前a和b引用同一個變數:%s' % (a is b))
複製程式碼
輸出結果如下:
當前a和b引用同一個變數:True
當前a和b引用不同一個變數:True
當前a和b引用同一個變數:True
複製程式碼
⑦ 運算子優先順序
Python中的運算子優先級如表所示:
運算子 | 描述 |
---|---|
** |
指數 |
~ + - |
取反,正負號 |
* / % // |
乘除,求餘,地板除法 |
<< >> |
左右移 |
& |
按位與 |
^ |
異或,按位或 |
> < <= > >= |
比較運算子 |
<> == != |
等於運算子 |
= %= /= //= -= += *= **= |
賦值運算子 |
is is not |
身份運算子 |
in not in |
成員運算子 |
not or and |
邏輯運算子 |
如果本文對你有所幫助,歡迎
留言,點贊,轉發
素質三連,謝謝?~