Python變量類型

變量是保存存儲值的內存位置。也就是說,當創建一個變量時,可以在內存中保留一些空間。

基於變量的數據類型,解釋器分配內存並決定可以存儲在保留的存儲器中的內容。 因此,通過爲變量分配不同的數據類型,可以在這些變量中存儲的數據類型爲整數,小數或字符等等。

將值分配給變量

在Python中,變量不需要明確的聲明類型來保留內存空間。當向變量分配值時,Python會自動發出聲明。 等號(=)用於爲變量賦值。

=運算符左側的操作數是變量的名稱,而=運算符右側的操作數是將在存儲在變量中的值。 例如 -

#!/usr/bin/python3

counter = 100          # 一個整型數
miles   = 999.99       # 一個浮點數
name    = "Maxsu"       # 一個字符串
site_url  = "http://www.yiibai.com" # 一個字符串

print (counter)
print (miles)
print (name)
print (site_url)

這裏,100,999.99和「Maxsu」分別是分配給countermilesname變量的值。執行上面代碼將產生以下結果 -

100
999.99 
Maxsu
http://www.yiibai.com

多重賦值

Python允許同時爲多個變量分配單個值。

例如 -

a = b = c = 1

這裏,創建一個整數對象,其值爲1,並且所有三個變量都分配給相同的內存位置。還可以將多個對象分配給多個變量。 例如 -

a, b, c = 10, 20, "maxsu"

這裏,將兩個值爲1020的整數對象分別分配給變量ab,並將一個值爲「maxsu」的字符串對象分配給變量c

標準數據類型

存儲在內存中的數據可以是多種類型。 例如,一個人的年齡可存儲爲一個數字值,他的地址被存儲爲字母數字字符串。 Python具有各種標準數據類型,用於定義可能的操作以及每個標準數據類型的存儲方法。

Python有五種標準數據類型 -

  • 1.數字
  • 2.字符串
  • 3.列表
  • 4.元組
  • 5.字典

1.Python數字

數字數據類型存儲數字值。當爲其分配值時,將創建數字對象。 例如 -

var1 = 10
var2 = 20

可以使用del語句刪除對數字對象的引用。 del語句的語法是 -

del var1[,var2[,var3[....,varN]]]]

可以使用del語句刪除單個對象或多個對象。

例如 -

del var
del var_a, var_b

Python支持三種不同的數值類型 -

  • int(有符號整數)
  • float(浮點實值)
  • complex(複數)

Python3中的所有整數都表示爲長整數。 因此,長整數沒有單獨的數字類型。

例子

以下是一些數字示例 -

int

float

complex

10

0.0

3.14j

100

15.20

45.j

-786

-21.9

9.322e-36j

080

32.3+e18

.876j

-0490

-90.

-.6545+0J

-0x260

-32.54e100

3e+26J

0x69

70.2-E12

4.53e-7j

複數是由x + yj表示的有序對的實數浮點數組成,其中xy是實數,j是虛數單位。

2.Python字符串

Python中的字符串被標識爲在引號中表示的連續字符集。Python允許雙引號或雙引號。 可以使用片段運算符([][:])來獲取字符串的子集(子字符串),其索引從字符串開始處的索引0開始,並且以-1表示字符串中的最後一個字符。

加號(+)是字符串連接運算符,星號(*)是重複運算符。例如 -

#!/usr/bin/python3
#coding=utf-8
# save file: variable_types_str1.py

str = 'yiibai.com'

print ('str = ', str)          # Prints complete string
print ('str[0] = ',str[0])       # Prints first character of the string
print ('str[2:5] = ',str[2:5])     # Prints characters starting from 3rd to 5th
print ('str[2:] = ',str[2:])      # Prints string starting from 3rd character
print ('str[-1] = ',str[-1])      # 最後一個字符,結果爲:'!'
print ('str * 2 = ',str * 2)      # Prints string two times
print ('str + "TEST" = ',str + "TEST") # Prints concatenated string

將上面代碼保存到 variable_types_str1.py 文件中,執行將產生以下結果 -

F:\worksp\python>python variable_types_str1.py
str =  yiibai.com
str[0] =  y
str[2:5] =  iba
str[2:] =  ibai.com
str[-1] =  m
str * 2 =  yiibai.comyiibai.com
str + "TEST" =  yiibai.comTEST

F:\worksp\python>

2.Python列表

列表是Python複合數據類型中最多功能的。 一個列表包含用逗號分隔並括在方括號([])中的項目。在某種程度上,列表類似於C語言中的數組。它們之間的區別之一是Python列表的所有項可以是不同的數據類型,而C語言中的數組只能是同種類型。

存儲在列表中的值可以使用切片運算符([][])來訪問,索引從列表開頭的0開始,並且以-1表示列表中的最後一個項目。 加號(+)是列表連接運算符,星號(*)是重複運算符。例如 -

#!/usr/bin/python3
#coding=utf-8
# save file: variable_types_str1.py
list = [ 'yes', 'no', 786 , 2.23, 'minsu', 70.2 ]
tinylist = [100, 'maxsu']

print ('list = ', list)          # Prints complete list
print ('list[0] = ',list[0])       # Prints first element of the list
print ('list[1:3] = ',list[1:3])     # Prints elements starting from 2nd till 3rd 
print ('list[2:] = ',list[2:])      # Prints elements starting from 3rd element
print ('list[-3:-1] = ',list[-3:-1])    
print ('tinylist * 2 = ',tinylist * 2)  # Prints list two times
print ('list + tinylist = ', list + tinylist) # Prints concatenated lists

將上面代碼保存到 variable_types_str1.py 文件中,執行將產生以下結果 -

F:\worksp\python>python variable_types_list.py
list =  ['yes', 'no', 786, 2.23, 'minsu', 70.2]
list[0] =  yes
list[1:3] =  ['no', 786]
list[2:] =  [786, 2.23, 'minsu', 70.2]
list[-3:-1] =  [2.23, 'minsu']
tinylist * 2 =  [100, 'maxsu', 100, 'maxsu']
list + tinylist =  ['yes', 'no', 786, 2.23, 'minsu', 70.2, 100, 'maxsu']

F:\worksp\python>

3.Python元組

元組是與列表非常類似的另一個序列數據類型。元組是由多個值以逗號分隔。然而,與列表不同,元組被括在小括號內(())。

列表和元組之間的主要區別是 - 列表括在括號([])中,列表中的元素和大小可以更改,而元組括在括號(())中,無法更新。元組可以被認爲是只讀列表。 例如 -

#!/usr/bin/python3
#coding=utf-8
# save file : variable_types_tuple.py
tuple = ( 'maxsu', 786 , 2.23, 'yiibai', 70.2  )
tinytuple = (999.0, 'maxsu')

# tuple[1] = 'new item value' 不能這樣賦值

print ('tuple = ', tuple)           # Prints complete tuple
print ('tuple[0] = ', tuple[0])        # Prints first element of the tuple
print ('tuple[1:3] = ', tuple[1:3])      # Prints elements starting from 2nd till 3rd 
print ('tuple[-3:-1] = ', tuple[-3:-1])       # 輸出結果是什麼?
print ('tuple[2:] = ', tuple[2:])       # Prints elements starting from 3rd element
print ('tinytuple * 2 = ',tinytuple * 2)   # Prints tuple two times
print ('tuple + tinytuple = ', tuple + tinytuple) # Prints concatenated tuple

將上面代碼保存到 variable_types_tuple.py 文件中,執行將產生以下結果 -

F:\worksp\python>python variable_types_tuple.py
tuple =  ('maxsu', 786, 2.23, 'yiibai', 70.2)
tuple[0] =  maxsu
tuple[1:3] =  (786, 2.23)
tuple[-3:-1] =  (2.23, 'yiibai')
tuple[2:] =  (2.23, 'yiibai', 70.2)
tinytuple * 2 =  (999.0, 'maxsu', 999.0, 'maxsu')
tuple + tinytuple =  ('maxsu', 786, 2.23, 'yiibai', 70.2, 999.0, 'maxsu')

F:\worksp\python>

以下代碼對於元組無效,因爲嘗試更新元組,但是元組是不允許更新的。類似的情況可能與列表 -

#!/usr/bin/python3

tuple = ( 'abcd', 786 , 2.23, 'john', 70.2  )
list = [ 'abcd', 786 , 2.23, 'john', 70.2  ]
tuple[2] = 1000    # 無法更新值,程序出錯
list[2] = 1000     # 有效的更新,合法

Python字典

Python的字典是一種哈希表類型。它們像Perl中發現的關聯數組或散列一樣工作,由鍵值對組成。字典鍵幾乎可以是任何Python數據類型,但通常爲了方便使用數字或字符串。另一方面,值可以是任意任意的Python對象。

字典由大括號({})括起來,可以使用方括號([])分配和訪問值。例如 -

#!/usr/bin/python3
#coding=utf-8
# save file : variable_types_dict.py

dict = {}
dict['one'] = "This is one"
dict[2]     = "This is my"

tinydict = {'name': 'maxsu', 'code' : 1024, 'dept':'IT Dev'}


print ("dict['one'] = ", dict['one'])       # Prints value for 'one' key
print ('dict[2] = ', dict[2])           # Prints value for 2 key
print ('tinydict = ', tinydict)          # Prints complete dictionary
print ('tinydict.keys() = ', tinydict.keys())   # Prints all the keys
print ('tinydict.values() = ', tinydict.values()) # Prints all the values

將上面代碼保存到 variable_types_dict.py 文件中,執行將產生以下結果 -

F:\worksp\python>python variable_types_dict.py
dict['one'] =  This is one
dict[2] =  This is my
tinydict =  {'name': 'maxsu', 'code': 1024, 'dept': 'IT Dev'}
tinydict.keys() =  dict_keys(['name', 'code', 'dept'])
tinydict.values() =  dict_values(['maxsu', 1024, 'IT Dev'])

字典中的元素沒有順序的概念。但是說這些元素是「亂序」是不正確的; 它們是無序的。

數據類型轉換

有時,可能需要在內置類型之間執行轉換。要在類型之間進行轉換,只需使用類型名稱作爲函數即可。

有以下幾種內置函數用於執行從一種數據類型到另一種數據類型的轉換。這些函數返回一個表示轉換值的新對象。它們分別如下所示 -

編號

函數

描述

1

int(x [,base])

x轉換爲整數。如果x是字符串,則要base指定基數。

2

float(x)

x轉換爲浮點數。

3

complex(real [,imag])

創建一個複數。

4

str(x)

將對象x轉換爲字符串表示形式。

5

repr(x)

將對象x轉換爲表達式字符串。

6

eval(str)

評估求值一個字符串並返回一個對象。

7

tuple(s)

s轉換爲元組。

8

list(s)

s轉換爲列表。

9

set(s)

s轉換爲集合。

10

dict(d)

創建一個字典,d必須是(key,value)元組的序列

11

frozenset(s)

s轉換爲凍結集

12

chr(x)

將整數x轉換爲字符

13

unichr(x)

將整數x轉換爲Unicode字符。

14

ord(x)

將單個字符x轉換爲其整數值。

15

hex(x)

將整數x轉換爲十六進制字符串。

16

oct(x)

將整數x轉換爲八進制字符串。