前面的课程我们学过了使用变量存放信息,这些被存放和使用的信息,就是数据。数据在程序使用时,会进行分类,不同类型的数据有不同的‘存放规则’和‘使用方法’!”,就像图书馆里把图书分类一样。整数是没有小数部分的数字,可以是正数、负数或零。例如:
age =25
number_of_students =30
negative_number =-10
在 Python 中,整数的大小仅受限于计算机的内存,你可以处理非常大的整数:
big_number =123456789012345678901234567890
print(big_number)
2、浮点数(float)
浮点数是带有小数部分的数字。它们用于表示需要小数的数值,如测量值或计算结果。例如:
height =1.75
price =9.99
pi =3.14159
注意:浮点数在计算机中以二进制表示,这可能会导致一些精度问题。例如:
print(0.1+0.2)
你可能期望结果是 0.3,但实际上输出的是 0.30000000000000004。
这是因为 0.1 和 0.2 在二进制中无法精确表示,在进行计算时会产生微小的误差。
如何设置精确小数:
设置精确到指定小数位数有以下几种方法:
使用round()函数:这是一种较为基础的方法,用于将数字四舍五入至指定的小数位数。
number =3.14159
rounded_number =round(number,2)
print(rounded_number)# 输出: 3.14
3、字符串(str)
字符串是由字符组成的序列,可以使用单引号或双引号括起来。例如:
name ="Alice"
message ='Hello, World!'
4、布尔值(bool)
布尔值只有两个取值:True 和 False,用于表示是或否、对或错、真或假等判断结果。
通常在条件判断和逻辑运算中使用。例如:
is_student =True
is_raining =False
数据类型对比:
类型 | 概念 | 使用场景 | 使用方法 | 相关操作 | 特点 |
int | 整数, 不包含小数 | 计数、索引、年龄等 无需小数的场景 | 直接赋值, 如 age = 18 | 算数运算、 比较运算 | 不含小数 |
float | 带小数 | 需要精确到小数 | 直接赋值, price = 9.99 | 算数运算、 比较运算 精度问题 | 含小数, 注意精度 |
str | 文本 一系列字符组成 | 存储和处理 文本信息 | 单引号(')、双引号(")或三引号(''' 或 """)括起来 | 拼接(+)、重复(*)、索引([])、切片([start:stop:step]) | 引起来 |
bool | True或false 表示逻辑状态 | 条件判断、 逻辑运算 | 直接赋值为True 或 False,如is_student = True | 逻辑运算 | 只有两个值 |
我们可以把计算机的内存空间想象成一个巨大的、连续的空仓库,仓库可以分成不同的格子空间,而数据就是存放在里面的货物。如果不区分类型,所有货物都当成一样,管理起来会非常混乱。不同类型的“货物”大小不同。计算机需要为数据分配精确的内存空间。
int(整数):通常需要固定的、较小的空间。计算1+2时,计算机知道只需操作两个小块内存。
float(浮点数):通常需要固定的、比整数稍大的空间,因为它要存储小数部分。3.14 和 2.718 需要用这种格式存储。
bool(布尔值):只有 True 和 False,理论上只需要1个位置就够了,是最小的箱子。
string(字符串):大小是可变的。“Hi”只需要很少内存,而一篇长文章需要很多连续的内存块。
如果没有类型区分:计算机看到数据 123,不知道应该分配1个字节还是100个字节的空间。如果都按最大分配,会造成巨大的内存浪费;如果都按最小分配,存储大字符串时又存不下,会立即溢出(就像小车位放一个大车,会把旁边的车位也占了)。
这是更关键的一点。不同的数据类型支持完全不同的操作。Python 区分 int, float, bool, string 等类型,本质上是在计算机世界和人类逻辑概念世界之间,建立了一套精确的翻译规则。对内(对计算机):告诉内存该怎么分配,CPU该怎么运算。对外(对程序员):让你的意图(“我想算个数” vs “我想写句话”)被程序准确理解和执行,并在犯错时及早提醒。