Python變量類型
變量是隻不過保留的內存位置用來存儲值。這意味著,當創建一個變量,那麼它在內存中保留一些空間。
根據一個變量的數據類型,解釋器分配內存,並決定如何可以被存儲在所保留的內存中。因此,通過分配不同的數據類型的變量,你可以存儲整數,小數或字符在這些變量中。
變量賦值:
Python的變量不必顯式地聲明保留的存儲器空間。當分配一個值給一個變量的聲明將自動發生。等號(=)來賦值給變量。
操作數=操作符的左邊是變量,操作數=操作符的右側的名稱在變量中存儲的值。例如:
#!/usr/bin/python counter = 100 # An integer assignment miles = 1000.0 # A floating yiibai name = "John" # A string print counter print miles print name
在這裡,分配值100,1000.0和“John”分彆給變量counter,miles和respectively。當運行這個程序,這將產生以下結果:
100 1000.0 John
多重賦值:
Python允許您同時指定一個值給幾個變量。例如:
a = b = c = 1
這裡,整數對象創建的值1,並且所有三個變量被分配到相同的內存位置。您也可以將多個對象分彆到多個變量。例如:
a, b, c = 1, 2, "john"
這裡,兩個整對象用值1和2分配給變量a和b,並且值為“john”的字符串對象被分配到變量c。
標準的數據類型:
存儲在內存中的數據可以是多種類型的。例如,一個人的年齡被存儲為一個數字值和他的地址被存儲為字母數字字符。Python用於對每個人的操作的各種標準類型定義在存儲方法。
Python有五個標準的數據類型:
-
數字
-
字符串
-
列表
-
元組
-
字典
Python數字:
數字數據類型存儲數值。它們是不可變的數據類型,這意味著改變一個新分配的對象的數字數據類型的結果值。
當分配一個值給他們創建的對象。例如:
var1 = 1 var2 = 10
也可以使用del語句刪去有關一些對象。 del語句的語法是:
del var1[,var2[,var3[....,varN]]]]
也可以使用del語句刪除單個或多個對象。例如:
del var del var_a, var_b
Python支持四種不同的數值類型:
-
int (有符號整數)
-
long (長整數[也可以以八進製和十六進製表示])
-
float (浮點實數值)
-
complex (複數)
例如:
這裡是數字的一些例子:
int | long | float | complex |
---|---|---|---|
10 | 51924361L | 0.0 | 3.14j |
100 | -0x19323L | 15.20 | 45.j |
-786 | 0122L | -21.9 | 9.322e-36j |
080 | 0xDEFABCECBDAECBFBAEl | 32.3+e18 | .876j |
-0490 | 535633629843L | -90. | -.6545+0J |
-0x260 | -052318172735L | -32.54e100 | 3e+26J |
0x69 | -4721885298529L | 70.2-E12 | 4.53e-7j |
-
Python允許使用一個小寫L表示長整型,但建議您隻使用一個大寫的L到避免和數字1 長得一樣不容易分辨,Python顯示長整數用一個大寫L。
-
複數包含一個有序對表示為a + bj,其中,a是實部,b是複數的虛部實浮點數。
Python字符串:
在Python中的字符串被確定為一組連續的字符在引號之間。 Python允許在任何對單引號或雙引號。串的子集,可以使用切片操作符可采用([]和[:]),索引從0開始的字符串的開始和結束(-1)。
加號(+)符號的字符串連接操作符,而星號(*)表示重複操作。例如:
#!/usr/bin/python str = 'Hello World!' print str # Prints complete string print str[0] # Prints first character of the string print str[2:5] # Prints characters starting from 3rd to 5th print str[2:] # Prints string starting from 3rd character print str * 2 # Prints string two times print str + "TEST" # Prints concatenated string
這將產生以下結果:
Hello World! H llo llo World! Hello World!Hello World! Hello World!TEST
Python列表:
列表是最通用的Python複合數據類型。列表中包含以逗號分隔,並在方括號([])包含的項目。在一定程度上,列表相似C語言中的數組,它們之間的一個區彆是,所有屬於一個列表中的項目可以是不同的數據類型的。
存儲在一個列表中的值可以使用切片操作符來訪問([]和[:])用索引從0開始,在列表的開始位置和結束為-1。加號(+)符號列表連接運算符,星號(*)重複操作。例如:
#!/usr/bin/python list = [ 'abcd', 786 , 2.23, 'john', 70.2 ] tinylist = [123, 'john'] print list # Prints complete list print list[0] # Prints first element of the list print list[1:3] # Prints elements starting from 2nd till 3rd print list[2:] # Prints elements starting from 3rd element print tinylist * 2 # Prints list two times print list + tinylist # Prints concatenated lists
這將產生以下結果:
['abcd', 786, 2.23, 'john', 70.200000000000003] abcd [786, 2.23] [2.23, 'john', 70.200000000000003] [123, 'john', 123, 'john'] ['abcd', 786, 2.23, 'john', 70.200000000000003, 123, 'john']
Python元組:
元組是類似於列表中的序列數據類型。一個元組由數個逗號分隔的值。不同於列表,不過,元組圓括號括起來。
列表和元組之間的主要區彆是:列表括在括號([])和它們的元素和大小是可以改變的,而元組在圓括號(),不能被更新。元組可以被認為是隻讀列表。例如:
#!/usr/bin/python tuple = ( 'abcd', 786 , 2.23, 'john', 70.2 ) tinytuple = (123, 'john') print tuple # Prints complete list print tuple[0] # Prints first element of the list print tuple[1:3] # Prints elements starting from 2nd till 3rd print tuple[2:] # Prints elements starting from 3rd element print tinytuple * 2 # Prints list two times print tuple + tinytuple # Prints concatenated lists
這將產生以下結果:
('abcd', 786, 2.23, 'john', 70.200000000000003) abcd (786, 2.23) (2.23, 'john', 70.200000000000003) (123, 'john', 123, 'john') ('abcd', 786, 2.23, 'john', 70.200000000000003, 123, 'john')
以下是元組無效的,因為我們嘗試更新一個元組,這是不允許的。類似的操作在列表中是可以的:
#!/usr/bin/python tuple = ( 'abcd', 786 , 2.23, 'john', 70.2 ) list = [ 'abcd', 786 , 2.23, 'john', 70.2 ] tuple[2] = 1000 # Invalid syntax with tuple list[2] = 1000 # Valid syntax with list
Python字典:
Python字典是一種哈希表型。他們像關聯數組或哈希在Perl中一樣,由鍵 - 值對組成。字典鍵幾乎可以是任何Python類型,但通常是數字或字符串。值可以是任意Python的對象。
字典是由花括號括號({}),可分配值,並用方括號([])訪問。例如:
#!/usr/bin/python dict = {} dict['one'] = "This is one" dict[2] = "This is two" tinydict = {'name': 'john','code':6734, 'dept': 'sales'} print dict['one'] # Prints value for 'one' key print dict[2] # Prints value for 2 key print tinydict # Prints complete dictionary print tinydict.keys() # Prints all the keys print tinydict.values() # Prints all the values
這將產生以下結果:
This is one This is two {'dept': 'sales', 'code': 6734, 'name': 'john'} ['dept', 'code', 'name'] ['sales', 6734, 'john']
字典有元素順序的概念。它的元素是無序的。
數據類型轉換:
有時候,可能需要執行的內置類型之間的轉換。類型之間的轉換,隻需使用類名作為函數。
有幾個內置的功能,從一種數據類型進行轉換為另一種。這些函數返回一個表示轉換值的新對象。
函數 | 描述 |
---|---|
int(x [,base]) |
將x轉換為一個整數。基數指定為base,如果x是一個字符串。 |
long(x [,base] ) |
將x轉換為一個長整數。基數指定為base,如果x是一個字符串。 |
float(x) |
將x轉換到一個浮點數。 |
complex(real [,imag]) |
創建一個複數。 |
str(x) |
轉換對象x為字符串表示形式。 |
repr(x) |
對象x轉換為一個表達式字符串。 |
eval(str) |
計算一個字符串,並返回一個對象。 |
tuple(s) |
把s轉換為一個元組。 |
list(s) |
把s轉換為一個列表。 |
set(s) |
把s轉換為一個集合。 |
dict(d) |
創建一個字典。 d必須的(鍵,值)元組序列。 |
frozenset(s) |
把s轉換為凍結集。 |
chr(x) |
整數轉換為一個字符。 |
unichr(x) |
整數轉換為一個Unicode字符。 |
ord(x) |
轉換單個字符為整數值。 |
hex(x) |
將整數轉換為十六進製字符串。 |
oct(x) |
將整數轉換為以八進製的字符串。 |