1. 值与类型
程序的数据是以值的形式体现的 , 而值有相应的数据类型。例如 , 2 是一个整数 , 3.14 是一个 浮点实数 , hello, world 是一个字符串。用 Python 的内置函数 type()可以查询一个值的数据类型。例如 :
>>> type(2)
<class 'int'>
>>> type('hello,world')
<class 'str'>
>>> type(3.14)
<class 'float'>可以看出 , 和其他编程语言一样 , 每个值都有确定的数据类型 , 以用于说明这种数据类型的值 的内容是什么样的 , 占用多大的内存空间 , 取值范围是多少 , 能进行哪些运算(操作)。例如 , int 类型的值可以是任意大的整数 , 只要计算机内存足够大 , 而其他编程语言 , 如 C 语言规定的 int 类 型的值总是占用固定大小的内存(如 4 字节)。再如 , Python 的 float 类型表示的浮点实数最多可以精 确到 15 位小数。对于 int 或 float 类型的值可以用+、-、*、/、%、// 等运算符进行加、减、乘、除、 求余数、整数除运算 , 但是整数除运算对于 float 类型的值则是转为整数类型进行的。例如 :
>>> print(5+2) #加
7
>>> print(2-5) #减
-3
>>> print(2*5) #乘
10
>>> print(5/2) #除
2.5
>>> print(5//2) #运算符//表示整数除
2
>>> print(5 ** 3) #指数运算, 计算5的三次方
125
>>> print(3.14//2.5) #整数除
1.0
>>> print(3.14%2) #求余数
1.1400000000000001
>>> print((50 - 5*6) / 4)
5.0对字符串对象可以用+(加法运算) , 但其含义是“拼接”的意思。例如:
>>> print("hello," + "world")
hello,world但对字符串对象不能进行减法、除法等运算。也就是说 , 不同类型的数据能够进行的运算不同。
产生 TypeError(类型错误):
>>> print("hello," - "world")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for -: 'str' and 'str'
>>> print("hello," / "world")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for /: 'str' and 'str'
>>> print("hello," * "world")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: can't multiply sequence by non-int of type 'str'编译器提示 : 不能对两个字符串(str)类型的值进行−、/、*运算 , 但 1 个字符串可以和 1 个整数 相乘 , 其结果是 1 个重复复制这个字符串的新字符串。例如 :
>>> print(3*"world")
worldworldworld
>>> print("world"*3)
worldworldworld2. 对象
对象
每个值都有具体内容和类型 , 要在计算机中表示这个值 , 就要给这个值分配一块单独的存储空 间。因此 , 在
Python中要用对象来刻画有独立内存空间和数据类型的值。也就是说 , 在Python中 , 程序中的数据都是以对象的形式存在的。 一个对象包含一个具体数据的三个特征 , 值、数据类型和id。每个对象都有唯一的id(相当于 一个人的身份证号码)作为该对象的内存地址。可以用Python的内置函数id()来查询一个对象的id。 例如 :>>> print(id(2)) 2296458510608 >>> print(id(3.14)) 2296459534864 >>> print(id('hello,world')) 2296463952816可以看出 , 这三个对象都有自己唯一的
id(各自独立的存储空间)。空值(
NULL)Python有一个特殊的值None, 称为“空值”(None) , 用于表示一个没有值的对象。 除这些表示数据的值对象外 , 后续介绍的函数、类等在Python中都是对象 , 即Python的一切都是对象。
总结
每个值都有对应的数据类型,如
3是一个int(整型)类型的值,3.14是一个float(浮点型)类型的值,hello world是一个str类型(字符串类型)的值。数据类型规定了这种类型的值的内容是什么、能进行什么样的操作(运算)、占用多大的内存空间,取值范围是多少。
值都是以对象的形式存在的,一个对象包含值、数据类型和
id。id实际上就是对象的内存地址。可以用内置函数type()和id()查询一个对象的数据类型和id。None是一个没有值的空值对象。