Python 数据类型详解(可变类型 和 不可变类型)

文章目录

  • 1 概述
  • 2 标准数据类型 6 种
    • 2.1 不可变数据:number、string、tuple
    • 2.2 可变数据:list、set、dictionary
  • 3 数据类型判断
    • 3.1 type、isinstance 区别

1 概述

Python 数据类型详解(可变类型 和 不可变类型)_第1张图片

2 标准数据类型 6 种

  • 扩展 - 菜鸟教程 - 各数据类型特性
  • 标准数据类型的特性

Python 数据类型详解(可变类型 和 不可变类型)_第2张图片

2.1 不可变数据:number、string、tuple

  • 该类型中的元素 不能被修改 -> 若强行赋值,则报错
var_number = 123
var_string = "abc"
var_tuple = (1, 2, 3)

print(id(var_number))
print(id(var_string))
print(id(var_tuple))

# var_string[0] = 'A'  # 报错,字符串中的元素不能被修改
# var_tuple[0] = (11)  # 报错,元祖中的元素不能被修改

2.2 可变数据:list、set、dictionary

  • 该类型中的元素 可以被修改 -> id() 不变
var_list = [1, 2, 3]
var_set = {'a', 'b', 'c'}
var_dictionary = {'name': 'YoYo', 'age': 18}

print(id(var_list))
print(id(var_set))
print(id(var_dictionary))

var_list[0] = '111'
var_set.add('d')
var_dictionary.pop('age')

print('------- 万恶的分割线 -------')
print(id(var_list))
print(id(var_set))
print(id(var_dictionary))

print(var_list)  # ['111', 2, 3]
print(var_set)  # {'d', 'b', 'c', 'a'}
print(var_dictionary)  # {'name': 'YoYo'}

3 数据类型判断

3.1 type、isinstance 区别

相同点:一般情况下,都可以用来判断变量的类型

a = 1

print(type(a))  # int
print(isinstance(a, int))  # True

不同点:

1. type() 不会认为 '子类' 是一种 '父类' 类型
2. isinstance() 会认为 '子类' 是一种 '父类' 类型
class Father:
    pass


class Son(Father):
    pass


print(isinstance(Father(), Father))  # True
print(isinstance(Son(), Father))  # True

print(type(Father()) == Father)  # True
print(type(Son()) == Father)  # False

你可能感兴趣的:(Python,python,标准数据类型)