【Python基礎入門系列】第03天:Python 變量與數據類型

這篇文章我們學習 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,即可獲取最新最全學習資源!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章