Python中的變數以及運算子
一、變數
變數就是在程式中用來儲存資料的容器
1、宣告變數(定義變數) - 假的宣告
語法:
變數名 = 值
說明:
- 變數名
- 要求:必須是識別符號且不能是關鍵字;
- 規範:
- a.遵守PEP8命名規範(名字的所有字母都小寫,如果由多個單片語成,單詞之間用下劃線隔開);例如:student_name
- b.見名知義(看到名字就知道變數中村的是什麼資料)。
- = :賦值符號,將等號右邊的值賦給左邊的變數。
- 值:最後的值可以是任何有結果的表示式,例如:190、變數、表示式、呼叫函式表示式、
注意:
- 變數必須先宣告(賦值)再使用。
- 同時宣告多個變數,並且賦一樣的值(同時給多個變數賦值); 如:num1 = num2 = num3 = 10
- 同時宣告多個變數,並且賦不同的值(注意:變數的個數和值的個數要保持一致); 如:num1, num2, num3 = 10, 20, 30
- 給同一個變數賦值,後賦的值會覆蓋先賦的值,並且同一個變數可以儲存不同型別的值。
2、宣告變數和給變數賦值的本質
結論:
- Python中所有的變數存的都是資料在記憶體中的地址 記憶體地址的大小一樣
- 用一個變數給另外一個變數賦值 實質是將變數中的地址賦給另外一個變數
- 使用變數的時候 是使用的變數中地址對應的值
3、變數的三要素:值、地址、型別
-
值:變數中存的地址對應的值
-
地址:變數中儲存的地址(id)
-
型別:變數中存的地址對應的值的型別
-
使用變數拿到的是變數中地址對應的值
- id(變數) - 獲取變數中儲存的地址
- tepy(變數) - 獲取變數中儲存的地址的對應資料的型別
二、運算子
1、數學運算子:+ - * / % // **
+: 加法運算 -: 減法運算 *: 乘法運算 /: 除法運算 %: 取餘運算(求餘數) //: 整除運算 **: 冪運算
部分細解: a. % - 取餘 應用一:獲取一個整數的最低的一位或者第幾位的值 num % (10^n) 應用二:判斷一個數是否能被另外一個數整除 num1 % num2
b. // - 求商,獲取商的整數部分(除法運算) 應用一:取一個數的高位數 num % (10^n)
**注意:**整除的時候,如果商是負的小數(小數點後的值大於0)最後結果是整數部分減一。
c. ** - 冪運算
可以進行x的y次方進行計算 如: 2 ** 10 = 1024
也可以進行開方運算 如: 9 ** 0.5 = 3.0
2、比較運算子:
> : 大於 < : 小於 == : 等於 != : 不等於 = : 大於等於 <= : 小於等於
**注意:**所有的比較運算子的結果都是布林值。並且Python支援數學中的方式去使用>、<、>=、<=去表示範圍;即當有雙條件時,比如:num > 0 and num < 10,可以寫成:0 < num < 10。
3、邏輯運算子:
and :邏輯與運算 or :邏輯或運算 not :邏輯非運算
**注意:**邏輯運算子的運算物件是布林值,運算結果也是布林值。 a. and - 邏輯與運算 值1 and 值2 : 如果值1和值2的結果都為True,結果才是True,只要有一個False,結果就是False。 True and True -> True True and False -> False False and True -> False False and False -> False 應用:邏輯與運算相當於生活中的‘並且’,當需要多個條件同時滿足的時候,就是用and將多個條件連線在一起。 and短路操作:如果and前面的條件為False,則and後面的條件語句不會執行。
b. or - 邏輯或運算
值1 or 值2 :如果值1和值2的結果都為False,結果才是False,只要有一個True,結果就是True。
True or True -> True
True or False -> True
False or True -> True
False or False -> False
應用:邏輯或運算相當於生活中的‘或者’,當需要多個條件中至少有一個條件滿足 就用or將多個條件連線在一起。
or短路操作:如果or前面的條件為True,則or後面的條件語句不會執行。
c. not - 邏輯非運算
not 值 :對值進行取反,即如果值是True,結果就是False,如果值是False,結果就是True;
not True -> False
not False -> True
應用:對某個條件進行否定
4、賦值運算子: = += -= *= /= %= //= **=
運算規則:
-
a.所有賦值運算子的左邊必須是變數,組合的賦值運算子的左邊的變數必須已經賦值;
-
b.所有的賦值運算子最終都會進行賦值的操作;
符號講解:
-
a. = - 直接將右邊的結果賦給左邊的變數;
-
b. += -= *= /= %= //= **= - 將右邊的變數進行數學運算後的結果賦給左邊的變數。
變數 += 值 --> 相當於 變數 = 變數 + 值 變數 -= 值 --> 相當於 變數 = 變數 - 值 變數 *= 值 --> 相當於 變數 = 變數 * 值 變數 /= 值 --> 相當於 變數 = 變數 / 值 變數 %= 值 --> 相當於 變數 = 變數 % 值 變數 //= 值 --> 相當於 變數 = 變數 // 值 變數 **= 值 --> 相當於 變數 = 變數 ** 值
5、運算子的優先順序
數學運算子 > 比較運算子 > 邏輯運算子 > 賦值運算子;
優先順序越高的先算,但是如果有括號,先算括號裡面的;
數學運算子中:** > * / % // > + -
三、位運算
位運算是針對二進位制中的每一位進行的相關操作;
位運算的運算子:&(按位與) |(按位或) ^(按位異或) ~(按位取反) <<(左移) >>(右移)
1、&(按位與)
- 語法:數字1 & 數字2 -> 二進位制的每一位進行與運算,運算的時候如果都為1結果就是1,否則就是0
- 與的特點:一位上的數如果和1與,就會保留這一位上的數,如果和0與,就會將這一位置0
1 & 1 - 1 1 & 0 - 0 0 & 1 - 0 0 & 0 - 0 與運算的應用:判斷一個數的奇偶性(最優的解答)。 方法:將數字和1與,如果結果是0,就說明這個數是偶數,如果結果是1,說明這個數是奇數。
2、|(按位或)
語法:數字1 | 數字2 -> 二進位制的每一位進行或預算,運算的時候如果有一個為1結果就是1,兩個都為0結果才是0
1 | 1 - 1 1 | 0 - 1 0 | 1 - 1 0 | 0 - 0
3、^(按位異或)
語法:數字1 ^ 數字2 -> 判斷每一位不同為1 相同為0
1 ^ 1 - 0 1 ^ 0 - 1 0 ^ 1 - 1 0 ^ 0 - 0 按位異或的應用:可用來判斷兩個變數是否相等。
4、~(按位取反)
語法:~ 數字 ->將每一位取反(0變成1 1變成0)
- ~ 1 - 0
- 0 - 1
5、<<(左移)
- 語法: 數字1 << n(位數) -> 將指定的數字的二進位制數每一位向左移指定的位數,移出多少位,後面就加多少個0
- 相當於:數字1 * (2 ** n)
6、>>(右移)
- 語法: 數字2 >> n(位數) -> 將指定的數字的二進位制數每一位向右移指定的位數,移幾位就在低位刪除幾位
- 相當於:數字1 // (2 ** n)
四、認識字串
1、什麼是字串(str)
字串是Python中一種常用的有序但是不可變得容器類的資料型別,可以同時儲存多個字元,屬於序列。
- 字面量:使用單引號或者雙引號將任意字元括起來,就是字串常量
- 字元:指的就是字串中的每一個單元(用單引號或者雙引號括起來的裡面的每一個單獨的一個單元叫字元)
- 注意:Python中只有字元的概念,沒有字元的型別
2、字串中的內容
- a.普通字元:包含數字字元、字母、普通符號(如:+ - * / ( ) % # @等等、中文、韓文、日語等
- b.轉義字元:通過反斜槓將一些字元轉換成有特殊功能或者特殊意義的字元
例如:
\n - 換行 \t - 製表符(縮排一個tab) ’ - 表示一個普通單引號 " - 表示一個普通雙引號 \\ - 表示一個反斜槓 注意:一個轉義字元代表一個字元
- c.阻止轉義:在字串的最前面加r或者R,可以阻止轉義字元轉義