1. 程式人生 > >Python中的變數以及運算子

Python中的變數以及運算子

一、變數

變數就是在程式中用來儲存資料的容器

1、宣告變數(定義變數) - 假的宣告

語法:
變數名 = 值

說明:

  • 變數名
    • 要求:必須是識別符號且不能是關鍵字;
    • 規範:
      • a.遵守PEP8命名規範(名字的所有字母都小寫,如果由多個單片語成,單詞之間用下劃線隔開);例如:student_name
      • b.見名知義(看到名字就知道變數中村的是什麼資料)。
  • = :賦值符號,將等號右邊的值賦給左邊的變數。
  • 值:最後的值可以是任何有結果的表示式,例如:190、變數、表示式、呼叫函式表示式、

注意:

  • 變數必須先宣告(賦值)再使用。
  • 同時宣告多個變數,並且賦一樣的值(同時給多個變數賦值); 如:num1 = num2 = num3 = 10
  • 同時宣告多個變數,並且賦不同的值(注意:變數的個數和值的個數要保持一致); 如:num1, num2, num3 = 10, 20, 30
  • 給同一個變數賦值,後賦的值會覆蓋先賦的值,並且同一個變數可以儲存不同型別的值。

2、宣告變數和給變數賦值的本質

結論:

  • Python中所有的變數存的都是資料在記憶體中的地址 記憶體地址的大小一樣
  • 用一個變數給另外一個變數賦值 實質是將變數中的地址賦給另外一個變數
  • 使用變數的時候 是使用的變數中地址對應的值

3、變數的三要素:值、地址、型別

  1. 值:變數中存的地址對應的值

  2. 地址:變數中儲存的地址(id)

  3. 型別:變數中存的地址對應的值的型別

  4. 使用變數拿到的是變數中地址對應的值

    • 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,可以阻止轉義字元轉義