开发学院

您的位置:首页>教程>正文

教程正文

Python 3 变量类型

Python 3 变量类型

  变量是用来存储值的内存位置,这意味着当你创建一个变量时,你会在内存中保留一些空间。

  基于变量的数据类型,Python会分配对应的内存,并决定什么可以存储在保留内存中。因此,通过为变量分配不同的数据类型,可以存储这些变量在整数,小数或字符的形式。

赋值给变量

  Python变量不需要显式声明保留内存空间。当赋值给一个变量这些声明自动发生。等号(=)是用来赋值给变量。

  =运算符的左边是变量名称,而=运算符右侧是存储在变量的值。例如 :

#!/usr/bin/python3

counter = 100          # An integer assignment
miles   = 1000.0       # A floating point
name    = "John"       # A string

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

  在这里,100,1000.0和“John”这几个值分别分配给counter,miles和 name 变量。结果如下:

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 (有符号整数) 

  •   float (浮点实数值) 

  •   complex (复数)

  在Python3中所有整数都表示为长整型。因此,没有单独为long的整数类型。

例子

intfloatcomplex
100.03.14j
10015.2045.j
-786-21.99.322e-36j
08032.3+e18.876j
-0490-90.-.6545+0J
-0x260-32.54e1003e+26J
0x6970.2-E124.53e-7j


  复数由一对有序组成,通过 x + yj 来表示实浮点数, 其中 x 和 y 是实数并且 j 是虚数单位。 

Python字符串 

  字符串在 Python 为一组连续的引号表示的字符。Python允许对单引号或双引号对。 字符串子集可以用切片操作符 ([ ] and [:] ) :字符串的索引从0开始,并以-1结束。

  加号(+)号是字符串连接运算符和星号(*)是重复操作符。例如:

#!/usr/bin/python3

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/python3

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/python3

tuple = ( 'abcd', 786 , 2.23, 'john', 70.2  )
tinytuple = (123, 'john')

print (tuple)           # Prints complete tuple
print (tuple[0])        # Prints first element of the tuple
print (tuple[1:3])      # Prints elements starting from 2nd till 3rd 
print (tuple[2:])       # Prints elements starting from 3rd element
print (tinytuple * 2)   # Prints tuple two times
print (tuple + tinytuple) # Prints concatenated tuple

  结果如下:

('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/python3

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/python3

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
{'name': 'john', 'dept': 'sales', 'code': 6734}
dict_keys(['name', 'dept', 'code'])
dict_values(['john', 'sales', 6734])

  字典中没有元素顺序(排序)的概念。这是不正确的说法,元素是“乱序”; 它们仅仅是无序的。

数据类型转换

  有时,您可能需要在内置类型之间执行转换。要在类型之间转换,只需将类型名称用作函数。

  有几个内置函数可以执行从一种数据类型到另一种数据类型的转换。这些函数返回表示转换值的新对象。

  •   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必须是(键,值)元组序列

  •   11.frozenset(s):转换s为冻结集合

  •   12.chr(x) :将一个字符转换为整数

  •   13.unichr(x):Unicode字符转换为整数

  •   14.ord(x):单个字符其转换为整数值

  •   15.hex(x):十六进制转换为整数

  •   16.oct(x) :将整数转换为八进制。