文章目录

  • 基本数据类型
  • 1. 数值类型
  • 1.1 整数
  • 1.2 浮点数(只能用10进制)
  • 1.3 复数
  • 布尔类型(Bool Type)
  • NoneType类型(对于Java的null和JS的undefined)
  • 数据类型转换
  • 对象和引用
  • 对象
  • 引用
  • 字符串类型
  • 拆包式赋值


基本数据类型

在Python中,数值类型主要包括3种数据类型:整数(int),浮点数(float),复数(complex)。
使用内置函数type(object)可以返回object的数据类型。内置函数instanceof(obj,class)
可以用来测试对象obj是否为class的实例。

示例:

num = 10
print("type(num) : ", type(num))
print("isinstance(num,int) : ", isinstance(num, int))

运行结果:

python中如何把生成器对象转化为数值 python对象类型转换_python


1. 数值类型

1.1 整数

  • 整数即为没有小数部分的数值。
  • 在Python中,有小整数对象池和大整数对象池(对象池即缓存的机制)
  • 小整数对象池:小整数的定义是【-5,256】,这些整数是提前建立好的,不会被垃圾回收,这是为了保证Python的性能而设计的(因为小整数是频繁使用的,如果每次都向内存生其空间,请求释放,会严重影响Python的性能。),这个范围内的整数对象是被共享的,即一次创建,多次共享引用。
  • 在Pycharm中才有大整数对象池(因为在Pycharm中,每次运行都是所有代码加载到内存中,属于一个整体):一个代码块的大整数是同一个对象

示例:

运行结果:

python中如何把生成器对象转化为数值 python对象类型转换_python_02


1.2 浮点数(只能用10进制)

即带有小数点的数值

浮点数产生误差的原因:
  • 因为存储有限,计算机不能精确显示无限小数,会产生误差。
  • 计算机内部采用二进制表示,但是,不是所有的10进制实数都可以用二进制精确表示。

1.3 复数

  • Python中的实数与数学中的复数形式完全一致,都是用实部和虚部构成,并且用 j 或者 J 表示虚部。
  • 当表示一个复数时,可以将其实部与虚部相加,例如假如一个复数:实部为3.14,虚部为12j;则这个复数表示为:3.14 + 12j
  • 复数是Python内置的数据类型,使用 1j 表示 -1 的平方根。
  • 复数有2个属性–real和imag,用于查看实部和虚部。

示例:

plural = 3.14 + 12j
print("plural.real : ", plural.real)
print("plural.imag : ", plural.imag)
print("plural : ", plural)

运行结果:

python中如何把生成器对象转化为数值 python对象类型转换_对象池_03


布尔类型(Bool Type)

  • 布尔类型用于表示真和假
  • 标识符:TrueFalse 被解释为布尔型
  • 在Python中,布尔型还可以转换为数值:True:1False:0
  • 在Python中,只要下面几种情况得到的值为假:
  • FalseNone
  • 数值中的0,0.0,虚数0。
  • 空序列,空列表,空元组,空字典。
  • 自定义对象的实例,该对象的__bool__方法返回False或者__len__方法返回0。

NoneType类型(对于Java的null和JS的undefined)

表示没有值,即空值。
示例:

num = None
print("type(num) : ",type(num))

运行结果:

python中如何把生成器对象转化为数值 python对象类型转换_对象池_04


数据类型转换

python中如何把生成器对象转化为数值 python对象类型转换_python_05


示例:模拟超市抹零结账行为:

money_total = 23.2 + 7.9 + 8.7 + 32.65
print("商品总额为: ", money_total)
money_real = int(money_total)
print("实收金额为: ", money_real)

运行结果:

python中如何把生成器对象转化为数值 python对象类型转换_对象池_06


对象和引用

对象

python中如何把生成器对象转化为数值 python对象类型转换_对象池_07

引用

python中如何把生成器对象转化为数值 python对象类型转换_对象池_08


字符串类型

字符串类型

拆包式赋值

示例:输入两个年份,输出这两个年份(含)之间的闰年

def is_leap_year(year):
    return year % 400 == 0 or (year % 100 != 0 and year % 4 == 0)


print("请输入2个年份")
year_01 = int(input("第一个年份: "))
year_02 = int(input("第二个年份: "))

# 拆包式赋值,如果year_01 > year_02就交换2个数
if year_01 > year_02:
    year_01, year_02 = year_02, year_01

for item in range(year_01, year_02 + 1):
    if is_leap_year(item):
        print(item, " ", end=' ')

运行结果:

python中如何把生成器对象转化为数值 python对象类型转换_Python_09