Python 變數與運算子

Junting發表於2018-01-05

變數

基本概念:

1、 變數,名字,資料的唯一標識
2、變數命名:

  • 字母、數字、下劃線;
  • 不能以數字開頭;
  • 區分大小寫;
  • 不能使用保留字和關鍵字;
  • 命名要有意義;(多個單詞時,推薦使用下劃線連線)

3、變數本身沒有型別,也沒有型別限制,資料型別是根據賦值的型別

加深對變數的認識:

a = 1
b = a
a = 2
print(a) 結果:2
print(b) 結果: 1

分析:
file

a = [1, 2, 3]
b = a
a[0] = ‘1’
print(a) 結果: [‘1’, 2, 3]
print(b) 結果: [‘1’, 2, 3]

分析:
file

變數兩個維度:

  • 值型別 不可變 int 、string、tuple
  • 引用型別 可變 list、set、dict

舉慄

舉栗子前,先介紹一個Python內建函式id(),用於獲取記憶體儲存資料的地址。

# 栗子1
print(id('hello'))              //  結果:4364624200
a =  'hello'
b = 'hello'
print(id(a))            //  結果: 4364624200
print(id(b))            //  結果: 4364624200
a = a + 'world'
print(id(a))            // 結果:4364610096

# 栗子2
'Python'[0] 
'Python'[0]  = 'p'
// 結果就會報以下錯誤了
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'str' object does not support item assignment

通過兩個栗子,從而證明值型別的不可變,變數重新的賦值只是指向了一個新的地址。

不可變的元組與可變的列表

a = [1, 2, 3]
id(a)                     // 結果: 4636166088  記憶體地址(轉換為16進位制,比較合適)  
a.append(4)      // 末尾追加一個數值,使用點運算子的鏈式方式 
id(a)                   // 結果:4636166088    

得出結論:改變內部的值並不會改變儲存在記憶體的地址

b = (1, 2, 3)

元組定義好後是不可改變的,也沒有上面列表的追加引數的函式方法;在程式上能用元組解決問題的儘量使用元組,少使用列表,團隊合作開發互相呼叫下避免修改。

多維元組,列表

 a = (1, 2, 3, (1, 2, 3))

訪問: a[3][2]

b = (1, 2, 3, [1, 2, 3])
b[3][1] = '1'
print(b)          // 結果:(1, 2, 3, [1, '1', 3])
修改元組裡的列表裡的值是可以,因為修改的是列表

運算子

運算子這裡就把畫的一個思維導圖放上,只要知道有幾種運算子種類和每個種類運算子可以幹嘛就行了,具體到各個符號用的時候看看思維導圖 就好~

file

本人剛剛開始學習Python,以上都是自己學習Python時的一些認知,有什麼不對的地方歡迎大家的指正,因為有了你們的指正;我才能更快的成長。

相關文章