Python 3 变量类型
变量只不过是用于存储值的保留内存位置。这意味着当你创建一个变量时,你会在内存中保留一些空间。
根据变量的数据类型,解释器分配内存并决定可以在保留内存中存储什么。因此,通过为变量分配不同的数据类型,可以在这些变量中存储整数、小数或字符。
为变量赋值
Python 变量不需要显式声明来保留内存空间。当我们为变量赋值时,声明会自动发生。等号 (=
) 用于为变量赋值。
=
运算符左侧的操作数是变量的名称,而 =
运算符右侧的操作数是存储在变量中的值。例如 -
#!/usr/bin/python3
counter = 100 # 变量分配整数
miles = 1000.0 # 浮点数 float
name = "John" # 字符串
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 有五种标准数据类型
- Numbers
- String
- List
- Tuple
- Dictionary
Python Numbers
Numbers 数据类型存储数值。当您为它们分配一个值时,就会创建数字对象。例如 -
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。
例子
以下是一些数字示例 -
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 允许您使用带有 long 的小写 l
,但建议您只使用大写 L 以避免与数字 1 混淆。 Python 显示带有大写 L 的长整数。
复数由一对有序的实浮点数组成,用 x + yj
表示,其中 x 和 y 是实数,j 是虚数单位。
Python字符串
Python 中的字符串被标识为用引号表示的一组连续字符。Python 允许成对的单引号或双引号。可以使用切片运算符([ ] 和 [:] )获取字符串的子集,索引从字符串开头的 0 开始,最后从 -1 开始。
加号 (+) 是字符串连接运算符,星号 (*) 是重复运算符。例如 -
#!/usr/bin/python3
str = 'Hello World!'
print (str) # 输出整个字符串
print (str[0]) # 输出字符串的第一个字符
print (str[2:5]) # 输出字符串的第三个字符到第五个字符
print (str[2:]) # 从字符串的第三个字符开始输出
print (str * 2) # 重复输出两次字符串
print (str + "TEST") # 字符串连接
代码执行结果如下 -
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) # 输出整个列表
print (list[0]) # 输出列表的第一个元素
print (list[1:3]) # 输出列表的第二个到第三个元素
print (list[2:]) # 输出列表的第三个至最后一个元素
print (tinylist * 2) # 重复输出两次列表
print (list + tinylist) # 列表连接
代码执行结果如下
['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 Tuples
元组是另一种类似于列表的序列数据类型。元组由多个以逗号分隔的值组成。然而,与列表不同的是,元组被括在括号内。
列表和元组之间的主要区别是: 列表括在方括号 ( [ ] ) 中并且它们的元素和大小可以更改,而元组括在括号 ( ( ) 中并且不能更新。元组可以被认为是只读列表。例如 -
#!/usr/bin/python3
tuple = ( 'abcd', 786 , 2.23, 'john', 70.2 )
tinytuple = (123, 'john')
print (tuple) # 输出整个元组
print (tuple[0]) # 输出元组的第一个元素
print (tuple[1:3]) # 输出元组的第二个到第三个元素
print (tuple[2:]) # 输出元组的第三个至最后一个元素
print (tinytuple * 2) # 重复输出两次元组
print (tuple + tinytuple) # 连接元组
代码执行结果如下
('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/python3
dict = {}
dict['one'] = "This is one"
dict[2] = "This is two"
tinydict = {'name': 'john','code':6734, 'dept': 'sales'}
print (dict['one'])
print (dict[2])
print (tinydict)
print (tinydict.keys())
print (tinydict.values())
代码执行结果如下
This is one
This is two
{'dept': 'sales', 'code': 6734, 'name': 'john'}
['dept', 'code', 'name']
['sales', 6734, 'john']
字典没有元素之间的顺序概念。说元素“乱序”是不正确的;它们只是无序的。
数据类型转换
有时,您可能需要在内置类型之间执行转换。要在类型之间进行转换,只需将类型名称用作函数即可。
有几个内置函数可以执行从一种数据类型到另一种数据类型的转换。这些函数返回一个表示转换值的新对象。
No. | 函数 | 说明 |
---|---|---|
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) | 将整数转换为字符。 |
13 | unichr(x) | 将整数转换为 Unicode 字符。 |
14 | ord(x) | 将单个字符转换为其整数值。 |
15 | hex(x) | 将整数转换为十六进制字符串。 |
16 | oct(x) | 将整数转换为八进制字符串。 |