本片文章介紹Python的變量,不同於C語言中的變量類型,Python的變量類型是不需要在定義時指定的,而變量的使用也可以想用時就用。下面我們就來介紹一下Python的變量的類型和使用方法。
變量賦值
Python的變量是等號右邊決定左邊,也就說你給它什麼,它就變成什麼?聽起來很隨便對吧!這就是Python的方便之處,但也會有因此帶來的需要注意的地方,這點我們後面再來討論。我們先來看Python賦值的例子,大家注意看註釋。
a = 1# 整型變量
b = 2.0 # 浮點型變量
c = 'Hello' # 字符串變量
如果我們用如下的print語句來打印他們的值,我們會發現輸出結果如下。
print(a, b, c)
1 2.0 Hello
多重賦值
Python裏支持多重賦值,這其實挺方便的,可以給多個變量賦同一個值,也可以將多個值賦給多個變量。
a = b = c = 123
a, b, c = 1, 2.0, 'Hello'
標準數據類型
在Python中有五種標準數據類型,分別是數字(Numbers)、字符串(String)、列表(List)、元組(Tuple)、字典(Dictionary)。下面我們就分別對它們進行一個簡要的介紹,具體詳細的討論我們會分幾篇文章來討論。
數字
數字類型顧名思義裏面存儲的是數字,當然數字的類型就多種多樣了。Python裏支持如下幾種數字類型。
整型
長整型
浮點
複數
支持複數這個很給力吧,事實上可能很多同學都已經忘記了複數是什麼了,我這裏提一句實部和虛部可能大家就想起來了。
變量的使用和賦值我們前面已經有講過了,很簡單。
a = 123
不過我們這裏額外介紹一個少有人用的技巧,由於Python和Java一樣也有垃圾回收機制,所以無論我們定義什麼變量,都不需要去釋放內存,基於這個原因,我一直認爲一個語言的靈魂在於它是否能讓程序員管理內存。我們在Python裏面可以告訴解釋器某個變量我不用了,使用如下的語句。
del a
字符串
在這裏我們對字符串只做一個簡略的介紹,因爲字符串算是可以講比較大篇幅的一個內容,也比較重要,我們會單獨來講一些技巧,儘可能的保證豐富。
s = 'Hello!'
字符串可以很方便的訪問每一個字符或者其中一部分,比如:
s[:3]
'Hel'
s[0]
'H'
列表
列表是Python中使用最廣泛的類型,而且功能強大。列表類似於C語言裏的數組,但是遠遠比C語言裏的用法要靈活的多。我們來看一個定義的例子:
l = [1 , 2, 3, 'hello', 'a']
print(l[0])
print(l[:3])
print(l[:])
print(l[2:])
print(l+l)
其運行結果分別爲:
1
[1, 2, 3]
[1, 2, 3, 'hello', 'a']
[3, 'hello', 'a']
[1, 2, 3, 'hello', 'a', 1, 2, 3, 'hello', 'a']
由此我們可以看到list的很多用法,此外list還可以進行排序、增加、刪除、修改、轉換爲字典等等一系列的操作,這部分我們後面會專門來講,本片文章僅僅是給大家一個基礎的概念。
元組
元組其實類似於列表,我們可以將其理解爲只讀的列表,也就是說元組的值是不可以修改的。它的定義方式如下:
t = (1 , 2, 3, 'hello', 'a')
print(t[0])
print(t[:3])
print(t[:])
print(t[2:])
print(t+t)
運行結果分別如下,我們可以看到和列表的結果是一樣的。
1
(1, 2, 3)
(1, 2, 3, 'hello', 'a')
(3, 'hello', 'a')
(1, 2, 3, 'hello', 'a', 1, 2, 3, 'hello', 'a')
但是如果我們對元組的值進行修改會發生什麼呢?我們用如下的列表和元組的例子分別來看一下。
l = [1 , 2, 3, 'hello', 'a']
l[0] = 6
print(l)
運行結果爲
[6, 2, 3, 'hello', 'a']
而元組的情況下呢?
t = (1 , 2, 3, 'hello', 'a')
t[0] = 6
print(t)
會如下錯誤
TypeError: 'tuple' object does not support item assignment
也就是說明了元組是隻讀的。
字典
字典也是Python裏面應用極廣的類型,並且非常的方便,個人非常喜歡使用。我們也在這裏只做簡單的介紹,它其實是一種哈希表。它擁有Key-Value的數據對,因此非常適合做一些數據分析和處理的時候使用,配合Pandas包使用更是如虎添翼。無論Key還是Value,都可以是任何類型的變量,因此使用起來非常的靈活。
d = {'a':1, 'b':2.0, 'c':'hello'}
print(d['a'])
print(d.keys())
print([k for k in d.keys()])
print(d.values())
print([v for v in d.values()])
其運行結果爲:
1
dict_keys(['a', 'b', 'c'])
['a', 'b', 'c']
dict_values([1, 2.0, 'hello'])
[1, 2.0, 'hello']
如果你去遍歷一個字典,你會發現它並不是按順序訪問的,這也是字典的特點。當然我們後面會介紹如何給字典排序,獲得順序輸出的字典。
數據類型轉換
我們這裏給出一些常用的數據類型轉換方式,供大家查閱。
int(x, base) # 轉整型,base表示指定x原來的類型,比如base=8,則原本爲八進制。
long(x, base) # 轉長整型,base表示指定x原來的類型,比如base=8,則原本爲八進制。
float(x) # 轉浮點。
complex(real, imag) # 創建一個複數。
str(x) # 轉字符串。
repr(x) # 轉爲機器可以理解的字符串,比如爲特殊字符添加轉義字符。
eval(str) #執行一個字符串表達式,返回運算結果。比如x=2; eval('3+x')結果爲5。
tuple(s) #轉爲元組。
list(s) # 轉爲列表。
10set(s) # 轉爲一個不重複的數據集,即將重複元素刪除。
11dict(d) # 將元組轉爲字典。
frozenset(s) # 轉爲一個不重複的數據集,即將重複元素刪除,但不可修改。
chr(x) # 將整型轉爲字符。
unichr(x) # 將整型轉爲Unicode字符。
ord(x) # 將字符轉爲整型。
hex(x) # 轉爲十六進制。
oct(x) # 轉爲八進制。
到此我們大家應該對Python的變量有了一個基本的感觀,也應該可以寫一些基本的驗證代碼了。其實Python的簡單是非常適合各行各業的人來使用的,事實上我接觸到一些國外的行業,他們跨學科的情況是比較普遍的。Python作爲一門膠水語言,確實應該普及到各行各業。
人工智能與深度學習做量化請關注:AI量化(https://t.zsxq.com/RvfY37y) 星球限時免費,如需加入,請私信我獲得免費邀請碼!
零基礎學習Python與深度學習應用請關注星球:Python與深度學習 https://t.zsxq.com/bUFayZ3
微信公衆號:QTechAI