Python – 变量类型

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

根据变量的数据类型,解释器分配内存并决定可以在保留内存中存储什么。因此,通过为变量分配不同的数据类型,您可以在这些变量中存储整数、小数或字符。

为变量赋值

Python 变量不需要显式声明来保留内存空间。当您为变量赋值时,声明会自动发生。等号 (=) 用于为变量赋值。

= 运算符左侧的操作数是变量的名称,= 运算符右侧的操作数是存储在变量中的值。例如 –

#!/usr/bin/python

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”分别是分配给countermilesname变量的值。这会产生以下结果 –

100
1000.0
John

多重赋值

Python 允许您同时为多个变量分配一个值。例如 –

a = b = c = 1

在这里,创建了一个值为 1 的整数对象,并将所有三个变量分配到相同的内存位置。您还可以将多个对象分配给多个变量。例如 –

a,b,c = 1,2,"john"

这里,两个值为 1 和 2 的整数对象分别分配给变量 a 和 b,一个值为“john”的字符串对象分配给变量 c。

标准数据类型

存储在内存中的数据可以有多种类型。例如,一个人的年龄存储为一个数值,他或她的地址存储为字母数字字符。Python 有各种标准数据类型,用于定义对它们可能进行的操作以及每种数据的存储方法。

Python 有五种标准数据类型 –

  • 数字Numbers
  • String
  • List
  • 元组Tuple
  • 字典Dictionary

Python 数字

数字数据类型存储数值。数字对象是在您为其赋值时创建的。例如 –

var1 = 1
var2 = 10

您还可以使用 del 语句删除对数字对象的引用。del 语句的语法是 –

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

您可以使用 del 语句删除单个对象或多个对象。例如 –

del var
del var_a, var_b

Python 支持四种不同的数值类型 –

  • int(有符号整数)
  • long(长整数,也可以用八进制和十六进制表示)
  • float(浮点实数值)
  • 复数(复数)

例子

以下是一些数字示例 –

intlongfloatcomplex
1051924361L0.03.14j
100-0x19323L15.2045.j
-7860122L-21.99.322e-36j
0800xDEFABCECBDAECBFBAEl32.3+e18.876j
-0490535633629843L-90。-.6545+0J
-0x260-052318172735L-32.54e1003e+26J
0x69-4721885298529L70.2-E124.53e-7j
  • Python 允许您将小写的 l 与 long 一起使用,但建议您仅使用大写的 L 以避免与数字 1 混淆。Python 使用大写的 L 显示长整数。
  • 复数由一对有序的浮点实数组成,用 x + yj 表示,其中 x 和 y 是实数,j 是虚数单位。

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.2]
abcd
[786, 2.23]
[2.23, 'john', 70.2]
[123, 'john', 123, 'john']
['abcd', 786, 2.23, 'john', 70.2, 123, 'john']

Python 元组

元组是另一种类似于列表的序列数据类型。元组由多个用逗号分隔的值组成。然而,与列表不同的是,元组用括号括起来。

列表和元组之间的主要区别是:列表括在方括号 ( [ ] ) 中,并且它们的元素和大小可以更改,而元组括在括号 ( ( ) ) 中并且不能更新。元组可以被认为是只读列表。例如 –

#!/usr/bin/python

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

print tuple               # Prints the complete tuple
print tuple[0]            # Prints first element of the tuple
print tuple[1:3]          # Prints elements of the tuple starting from 2nd till 3rd 
print tuple[2:]           # Prints elements of the tuple starting from 3rd element
print tinytuple * 2       # Prints the contents of the tuple twice
print tuple + tinytuple   # Prints concatenated tuples

这会产生以下结果 –

('abcd', 786, 2.23, 'john', 70.2)
abcd
(786, 2.23)
(2.23, 'john', 70.2)
(123, 'john', 123, 'john')
('abcd', 786, 2.23, 'john', 70.2, 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']

字典没有元素之间的顺序概念。说元素“乱序”是不正确的;它们只是无序的。

数据类型转换

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

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

编号功能说明
1int(x [,base])
将 x 转换为整数。如果 x 是字符串,base 指定基数。
2long(x [,base] )
将 x 转换为长整数。如果 x 是字符串,base 指定基数。
3float(x)
将 x 转换为浮点数。
4complex(real [,imag])
创建一个复数。
5str(x)
将对象 x 转换为字符串表示形式。
6repr(x)
将对象 x 转换为表达式字符串。
7eval(str)
计算一个字符串并返回一个对象。
8tuple(s)
将 s 转换为元组。
9list(s)
将 s 转换为列表。
10set(s)
将 s 转换为集合。
11dict(d)
创建字典。d 必须是 (key,value) 元组的序列。
12frozenset(s)
将 s 转换为冻结集。
13chr(x)
将整数转换为字符。
14unichr(x)
将整数转换为 Unicode 字符。
15ord(x)
将单个字符转换为其整数值。
16hex(x)
将整数转换为十六进制字符串。
17oct(x)
将整数转换为八进制字符串。