Python 变量类型详解:数据类型的理解与使用
变量赋值
变量是存储值的预留内存位置。创建变量即预留内存空间。
根据变量数据类型,解释器分配内存并决定存储内容。通过赋不同数据类型,可在变量中存储整数、小数或字符。
赋值操作
Python 变量无需显式声明预留内存。赋值时自动声明。等号 (=) 用于赋值。
= 左侧为变量名,右侧为存储的值。例如:
在线演示#!/usr/bin/python counter = 100 # 整数赋值 miles = 1000.0 # 浮点数 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 有五种标准数据类型:
- Numbers (数字)
- String (字符串)
- List (列表)
- Tuple (元组)
- Dictionary (字典)
Python 数字
数字数据类型存储数值。赋值时创建 Number 对象:
var1 = 1 var2 = 10
可用 del 语句删除数字对象引用。语法:
del var1[,var2[,var3[....,varN]]]]
可删除单个或多个对象:
del var del var_a, var_b
Python 支持四种数值类型:
- int (有符号整数) - 正负整数,无小数点
- long (长整数) - 无限大小整数,写法如整数后跟大写或小写 L
- float (浮点数) - 实数,用小数点分隔整数和小数部分。也可用科学计数法,E/e 表示 10 的幂 (2.5e2 = 2.5 x 10² = 250)
- complex (复数) - 形式 a + bJ,a 和 b 为浮点数,J/j 代表 -1 的平方根(虚数)。实部为 a,虚部为 b。Python 编程中复数较少用
示例
| 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 字符串是引号中连续字符集。允许单引号或双引号成对使用。使用切片操作符 ([ ] 和 [:]) 可获取子字符串,索引从 0 开始,-1 为末尾。
加号 (+) 为字符串连接运算符,星号 (*) 为重复运算符。例如:
在线演示#!/usr/bin/python str = 'Hello World!' print str # 打印完整字符串 print str[0] # 打印第一个字符 print str[2:5] # 打印第3至第5字符 print str[2:] # 打印从第3字符开始的字符串 print str * 2 # 打印两次字符串 print str + "TEST" # 打印连接字符串
输出结果:
Hello World! H llo llo World! Hello World!Hello World! Hello World!TEST
Python 列表
列表是 Python 最通用的复合数据类型。列表包含逗号分隔的项,用方括号 ([]) 括起。列表项可为不同数据类型。
使用切片操作符 ([ ] 和 [:]) 访问列表值,索引从 0 开始。加号 (+) 为列表连接运算符,星号 (*) 为重复运算符。例如:
#!/usr/bin/python list = ['abcd', 786, 2.23, 'john', 70.2] tinylist = [123, 'john'] print list # 打印完整列表 print list[0] # 打印第一个元素 print list[1:3] # 打印第2至第3元素 print list[2:] # 打印从第3元素开始 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 元组
元组是类似列表的序列数据类型。元组由逗号分隔的值组成,但用圆括号括起。
列表和元组的主要区别:列表用方括号 ([]) 且元素和大小可变;元组用圆括号 (()) 且不可更新。元组可视为只读列表。例如:
在线演示#!/usr/bin/python
tuple = ('abcd', 786, 2.23, 'john', 70.2)
tinytuple = (123, 'john')
print tuple # 打印完整元组
print tuple[0] # 打印第一个元素
print tuple[1:3] # 打印第2至第3元素
print tuple[2:] # 打印从第3元素开始
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 # 元组无效语法
list[2] = 1000 # 列表有效语法
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'] # 打印键 'one' 的值
print dict[2] # 打印键 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']
字典元素无顺序概念。说元素"无序"不准确;它们只是无序。
数据类型转换
有时需在内置类型间转换。转换时直接使用类型名作为函数。
多个内置函数执行类型转换,返回表示转换值的新对象:
| 序号 | 函数与说明 |
|---|---|
| 1 | int(x [,base]) - 将 x 转为整数。base 指定 x 为字符串时的基数 |
| 2 | long(x [,base]) - 将 x 转为长整数。base 指定 x 为字符串时的基数 |
| 3 | float(x) - 将 x 转为浮点数 |
| 4 | complex(real [,imag]) - 创建复数 |
| 5 | str(x) - 将对象 x 转为字符串表示 |
| 6 | repr(x) - 将对象 x 转为表达式字符串 |
| 7 | eval(str) - 计算字符串并返回对象 |
| 8 | tuple(s) - 将 s 转为元组 |
| 9 | list(s) - 将 s 转为列表 |
| 10 | set(s) - 将 s 转为集合 |
| 11 | dict(d) - 创建字典。d 必须为 (键,值) 元组序列 |
| 12 | frozenset(s) - 将 s 转为冻结集合 |
| 13 | chr(x) - 将整数转为字符 |
| 14 | unichr(x) - 将整数转为 Unicode 字符 |
| 15 | ord(x) - 将单字符转为整数值 |
| 16 | hex(x) - 将整数转为十六进制字符串 |
| 17 | oct(x) - 将整数转为八进制字符串 |
Python
- 精通C#变量与基础数据类型:完整指南
- 掌握 C++ 变量、字面量与常量:核心概念与实战指南
- C 语言变量、常量与字面量完全指南
- C 语言存储类完全解析:auto、extern、static、register
- C++ 变量与数据类型全解析:int、double、char、string、bool 详细指南
- C 语言指针完全指南:类型、用法与最佳实践
- Python变量、常量与字面量完全指南
- 精通Python数据类型:实战指南
- 精通Python运算符:全面指南
- 理解Python全局、局部与非局部变量
- 精通Python global关键字:用法、时机与最佳实践
- 精通 Python 字典:创建、操作与进阶技巧