這篇文章我們學習 Python 變量與數據類型
Python 變量類型
變量存儲在內存中的值。這就意味着在創建變量時會在內存中開闢一個空間。
基於變量的數據類型,解釋器會分配指定內存,並決定什麼數據可以被存儲在內存中。
因此,變量可以指定不同的數據類型,這些變量可以存儲整數,小數或字符。
變量名也可稱之爲標識符(變量名、函數名、類名、包名等統稱爲標識符),其命名要符合python的語法要求:
-
由數字、字母、下劃線組成,不能以數字開頭
-
嚴格區分大小寫
-
不能是python的關鍵字(保留字)
獲取python的保留字 import keyword print(keyword.kwlist) ['False', 'None', 'True', 'and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
變量賦值
Python 中的變量賦值不需要類型聲明。
每個變量在內存中創建,都包括變量的標識,名稱和數據這些信息。
每個變量在使用前都必須賦值,變量賦值以後該變量纔會被創建。
等號(=)用來給變量賦值。
等號(=)運算符左邊是一個變量名,等號(=)運算符右邊是存儲在變量中的值。例如:
a = 123 # a 是整數
a = '劉旺學長' # a 是字符串
多個變量賦值
Python允許你同時爲多個變量賦值。例如:
a = b = c = 1
以上實例,創建一個整型對象,值爲1,三個變量被分配到相同的內存空間上。
您也可以爲多個對象指定多個變量。例如:
a, b, c = 1, 2, "john"
以上實例,兩個整型對象 1 和 2 分別分配給變量 a 和 b,字符串對象 "john" 分配給變量 c。
標準數據類型
在內存中存儲的數據可以有多種類型。
例如,一個人的年齡可以用數字來存儲,他的名字可以用字符來存儲。
Python 定義了一些標準類型,用於存儲各種類型的數據。
Python3 的六個標準數據類型中:
-
不可變數據(3 個):Number(數字)、String(字符串)、Tuple(元組);
-
可變數據(3 個):List(列表)、Dictionary(字典)、Set(集合)。
數字 Number
數字數據類型用於存儲數值。
他們是不可改變的數據類型,這意味着改變數字數據類型會分配一個新的對象。
當你指定一個值時,Number對象就會被創建:
var1 = 1
var2 = 10
Python3 支持 int、float、bool、complex(複數)。
數字類型是顧名思義是用來存儲數值的,需要記住的是,有點和 Java 的字符串味道差不多,如果改變了數字數據類型的值,將重新分配內存空間。
數字類型轉換
-
int(x) 將x轉換爲一個整數。
-
float(x) 將x轉換到一個浮點數。
-
complex(x) 將x轉換到一個複數,實數部分爲 x,虛數部分爲 0。
-
complex(x, y) 將 x 和 y 轉換到一個複數,實數部分爲 x,虛數部分爲 y。x 和 y 是數字表達式。
示例:
#!/usr/bin/python3
counter = 100 # 整型變量
miles = 1000.0 # 浮點型變量
name = "test" # 字符串
print (counter)
print (miles)
print (name)
Python字符串
字符串或串(String)是由數字、字母、下劃線組成的一串字符。
一般記爲 :
s="a1a2···an"(n>=0)
它是編程語言中表示文本的數據類型。
python的字串列表有2種取值順序:
-
從左到右索引默認0開始的,最大範圍是字符串長度少1
-
從右到左索引默認-1開始的,最大範圍是字符串開頭
如果你要實現從字符串中獲取一段子字符串的話,可以使用 [頭下標:尾下標] 來截取相應的字符串,其中下標是從 0 開始算起,可以是正數或負數,下標可以爲空表示取到頭或尾。
[頭下標:尾下標] 獲取的子字符串包含頭下標的字符,但不包含尾下標的字符。
比如:
>>> s ='abcdef'
>>> s[1:5]'bcde'
當使用以冒號分隔的字符串,python 返回一個新的對象,結果包含了以這對偏移標識的連續的內容,左邊的開始是包含了下邊界。
上面的結果包含了 s[1] 的值 b,而取到的最大範圍不包括尾下標,就是 s[5] 的值 f。
Python 列表截取可以接收第三個參數,參數作用是截取的步長,以下實例在索引 1 到索引 4 的位置並設置爲步長爲 2(間隔一個位置)來截取字符串:
再來看看字符串的一些常見操作:
s = '學習Python'
# 切片
s[0], s[-1], s[3:], s[::-1] # '優', 'n', 'Python', 'nohtyP的雅優'
# 替換,還可以使用正則表達式替換
s.replace('Python', 'Java') # '學習Java'
# 查找,find()、index()、rfind()、rindex()
s.find('P') # 3, 返回第一次出現的子串的下標
s.find('h', 2) # 6, 設定下標2開始查找
s.find('23333') # -1, 查找不到返回-1
s.index('y') # 4, 返回第一次出現的子串的下標
s.index('P') # 不同與find(), 查找不到會拋出異常
# 轉大小寫, upper()、lower()、swapcase()、capitalize()、istitle()、isupper()、islower()
s.upper() # '學習PYTHON'
s.swapcase() # '學習pYTHON', 大小寫互換
s.istitle() # True
s.islower() # False
# 去空格,strip()、lstrip()、rstrip()
# 格式化
s1 = '%s %s' % ('Windrivder', 21) # 'Windrivder 21'
s2 = '{}, {}'.format(21, 'Windridver') # 推薦使用format格式化字符串
s3 = '{0}, {1}, {0}'.format('Windrivder', 21)
s4 = '{name}: {age}'.format(age=21, name='Windrivder')
# 連接與分割,使用 + 連接字符串,每次操作會重新計算、開闢、釋放內存,效率很低,所以推薦使用join
l = ['2017', '03', '29', '22:00']
s5 = '-'.join(l) # '2017-03-29-22:00'
s6 = s5.split('-') # ['2017', '03', '29', '22:00']
以上是一些常見的操作。
Python列表
List(列表) 是 Python 中使用最頻繁的數據類型。
列表可以完成大多數集合類的數據結構實現。它支持字符,數字,字符串甚至可以包含列表(即嵌套)。
列表用 [ ] 標識,是 python 最通用的複合數據類型。
列表中值的切割也可以用到變量 [頭下標:尾下標] ,就可以截取相應的列表,從左到右索引默認 0 開始,從右到左索引默認 -1 開始,下標可以爲空表示取到頭或尾。
加號 + 是列表連接運算符,星號 * 是重複操作。
列表是寫在方括號 [] 之間、用逗號分隔開的元素列表,列表可以完成大多數集合類的數據結構實現。列表中元素的類型可以不相同,它支持數字,字符串甚至可以包含列表(所謂嵌套),列表中的元素是可以改變。
實例:
Weekday = ['Monday','Tuesday','Wednesday','Thursday','Friday']
print(Weekday[0]) # 輸出 Monday
#list 搜索
print(Weekday.index("Wednesday"))
#list 增加元素
Weekday.append("new")
print(Weekday)
# list 刪除
Weekday.remove("Thursday")
print(Weekday)
Python 元組
元組是另一個數據類型,類似於 List(列表)。
元組用 () 標識。內部元素用逗號隔開。但是元組不能二次賦值,相當於只讀列表。
示例:
letters = ('a','b','c','d','e','f','g')
print(letters[0]) # 輸出 'a'
print(letters[0:3]) # 輸出一組 ('a', 'b', 'c')
Python 集合
集合(set)是一個無序不重複元素的序列,使用大括號 {} 或者 set() 函數創建集合,注意:創建一個空集合必須用 set() 而不是 {} ,因爲 {} 是用來創建一個空字典。集合不能被切片也不能被索引,除了做集合運算之外,集合元素可以被添加還有刪除:
a_set = {1,2,3,4}
# 添加
a_set.add(5)
print(a_set) # 輸出{1, 2, 3, 4, 5}
# 刪除
a_set.discard(5)
print(a_set) # 輸出{1, 2, 3, 4}
Python 字典
字典(dictionary)是除列表以外python之中最靈活的內置數據結構類型。列表是有序的對象集合,字典是無序的對象集合。
兩者之間的區別在於:字典當中的元素是通過鍵來存取的,而不是通過偏移存取。
字典用"{ }"標識。字典由索引(key)和它對應的值value組成。
示例:
Logo_code = {
'BIDU':'Baidu',
'SINA':'Sina',
'YOKU':'Youku'
}
print(Logo_code)
# 輸出{'BIDU': 'Baidu', 'YOKU': 'Youku', 'SINA': 'Sina'}
print (Logo_code['SINA']) # 輸出鍵爲 'one' 的值
print (Logo_code.keys()) # 輸出所有鍵
print (Logo_code.values()) # 輸出所有值
print (len(Logo_code)) # 輸出字段長度
Python數據類型轉換
有時候,我們需要對數據內置的類型進行轉換,數據類型的轉換,你只需要將數據類型作爲函數名即可。
以下幾個內置的函數可以執行數據類型之間的轉換。這些函數返回一個新的對象,表示轉換的值。
函數描述
int(x [,base]) |
將x轉換爲一個整數 |
long(x [,base] ) |
將x轉換爲一個長整數 |
float(x) |
將x轉換到一個浮點數 |
complex(real [,imag]) |
創建一個複數 |
str(x) |
將對象 x 轉換爲字符串 |
repr(x) |
將對象 x 轉換爲表達式字符串 |
eval(str) |
用來計算在字符串中的有效Python表達式,並返回一個對象 |
tuple(s) |
將序列 s 轉換爲一個元組 |
list(s) |
將序列 s 轉換爲一個列表 |
set(s) |
轉換爲可變集合 |
dict(d) |
創建一個字典。d 必須是一個序列 (key,value)元組。 |
frozenset(s) |
轉換爲不可變集合 |
chr(x) |
將一個整數轉換爲一個字符 |
unichr(x) |
將一個整數轉換爲Unicode字符 |
ord(x) |
將一個字符轉換爲它的整數值 |
hex(x) |
將一個整數轉換爲一個十六進制字符串 |
oct(x) |
將一個整數轉換爲一個八進制字符串 |
總結
本節給大家介紹了 Python 變量 和六種標準的數據類型,給大家演示了變量的使用,以及六個六種標準的數據類型的常用操作。
參考:
https://www.cnblogs.com/wang-yc/articles/6423951.html
https://segmentfault.com/a/1190000014511963
https://www.runoob.com/python3/python3-data-type.html
https://zhuanlan.zhihu.com/p/26079855
PS:公衆號內回覆 :Python,即可獲取最新最全學習資源!