数据类型
Python 数据类型有:整型、浮点型、复数、布尔型、字符串、列表、元组、集合、字典。
浮点数计算可能有误差
原因是计算机是用二进制存储数据的,这不是 Python 特有的情况,所有的高级编程语言都会有这种情况。
程序示例:
print(0.1 + 0.2)
n1 = 0.1
n2 = 0.2
print(n1 + n2)
输出:
0.30000000000000004
0.30000000000000004
数据类型转换
| 函数名 | 函数值 |
|---|---|
| int(x, [基数]) | 将数字或字符串转换为整数,如果 x 为浮点数,则自动截断小数部分 |
| float(x) | 将 x 转换为浮点型 |
| bool(x) | 转换为布尔类型的 True 或者 False |
| str(x) | 将 x 转换成字符串,适合人阅读 |
round()
Python 的 round() 函数用于数字的四舍五入,其语法是 round(number, digits),其中 number 是要四舍五入的数字,digits 是可选参数,指定要保留的小数位数。当 digits > 0 时,表示四舍五入到指定的小数位数;当 digits = 0 或省略时,表示四舍五入到最接近的整数。
基本用法
round(number):只保留到最接近的整数。
程序示例:
print(round(10.0 / 3))
print(round(20 / 7))
输出:
3
3
round(number, digits):保留到指定的 digits 位小数。
程序示例:
print(round(10.0 / 3, 2)) # 保留两位小数
print(round(1.2345, 3)) # 保留三位小数
输出:
3.33
1.234
重要注意事项:四舍五入到偶数 (Round Half to Even)
Python 的 round() 函数遵循 “四舍五入到最接近的偶数” 的规则。当出现正好位于两个整数或小数之间(即末尾是 .5)的数字时,它会四舍五入到最接近的偶数。
round(1.5) → 2
(两个小数中的偶数)
round(2.5) → 2
(两个小数中的偶数)
round(3.5) → 4
(两个小数中的偶数)
其他用法示例:
保留负数位小数:当 digits 小于 0 时,会四舍五入到小数点左侧。
程序示例:
print(round(123.456, -1)) # 四舍五入到个位,小数点左侧一位
print(round(123.456, -2)) # 四舍五入到十位,小数点左侧两位
输出:
120.0
100.0
返回的类型:如果 digits 是 0 或被省略,函数会返回一个整数。否则,函数会返回一个浮点数。
程序示例:
print(type(round(3.14159, 2)))
print(type(round(10.0 / 3)))
输出:
<class 'float'>
<class 'int'>
ceil()
float()
isinstance()
isinstance(object, classinfo) 是一个 Python 内置函数,用于判断一个对象 (object) 是否是某个类或其子类的实例,或者是否属于 classinfo 参数指定的类型或元组中的一种类型。它返回 True 或 False,并且会考虑继承关系,这使得它在处理多态和确保数据类型时非常有用。
函数原型:
isinstance(object, classinfo)
object:需要检查的实例对象。
classinfo:一个类型、一个由类型组成的元组,或者一个类。
工作原理:
如果 object 是 classinfo 类型或其子类的实例,则返回 True。
如果 classinfo 是一个元组,则只要 object 是元组中任意一个类型的实例或其子类,就返回 True。
与 type() 的区别:
isinstance() 考虑继承关系,它会将子类视为父类类型的一种。
type() 则不考虑继承关系,只检查对象的精确类型。
程序示例:
# 字符串类型判断
my_string = "Hello"
print(isinstance(my_string, str)) # 输出: True
# 数字类型判断
my_number = 123
print(isinstance(my_number, int)) # 输出: True (因为 123 是 int 的实例)
# 使用元组判断多个类型
another_number = 45.67
print(isinstance(another_number, (str, list, tuple))) # 输出: False
# 继承的示例
class Animal:
pass
class Dog(Animal):
pass
my_dog = Dog()
print(isinstance(my_dog, Dog)) # 输出: True (Dog 的实例)
print(isinstance(my_dog, Animal)) # 输出: True (Dog 是 Animal 的子类)
print(isinstance(my_dog, str)) # 输出: False
输出:
True
True
False
True
True
False
type()
Python 的 type() 函数主要用于获取一个对象的类型。当 type() 函数接受一个对象作为参数时,它会返回该对象的类。例如,要查看变量 a 的类型,可以调用 type(a)。
这是 type() 函数最常用的方式,通过传入一个变量来获取其数据类型。
程序示例:
# 定义一个整数变量
my_int = 10
print(type(my_int))
# 输出:<class 'int'>
# 定义一个字符串变量
my_str = "hello"
print(type(my_str))
# 输出:<class 'str'>
# 定义一个列表变量
my_list = [1, 2, 3]
print(type(my_list))
# 继承的示例
class Animal:
pass
class Dog(Animal):
pass
my_dog = Dog()
print(type(my_dog)) # 输出: <class '__main__.Dog'>
浙公网安备 33010602011771号