数据类型基础

数据类型

  1. 什么是数据类型
    在日常生活中数据的表现形式多种多样 在程序中也是如此
  2. 为何学习数据类型
    针对不同的数据采用最佳的数据类型来表示出该数据的价值
  3. 本次学习数据类型仅仅是了解
    只要看到每个数据类型能够叫出它们的名字以及代码如何编写即可
  4. 学前必会
    如何查看数据值的数据类型 type()
name = 'jack'
print(type(name))

1.整型int

大白话的意思其实就是整数
应用场景:年龄 班级人数 年份

age = 18
num = 56
year = 2022

int类型属于python中的数字类型,数字类型有int float complex

2.浮点型float

大白话的意思其实就是小数

height = 1.83
weight = 75.5
salary = 3.1

3.字符串str

在 Python 中处理文本数据是使用 str 对象,也称为 字符串

字符串是 序列类型,支持序列类型的各种操作。

字符串支持引索切片

python字符串不能修改,是不可变对象

# 定义字符串有四种方式
name = 'jason'
name1 = "jason"
name2 = '''jason'''
name3 = """jason"""

用引号将文本包裹起来python才能识别出来:

name = 'jason # 这样识别不出来

文本中包含引号的情况:

print("Isn't, they said.")
# 会输出:Isn't, they said.

使用\转义引号:

print('"Isn\'t," they said.')

不希望\作为转义符号使用的情况,添加r

print(r'C:\some\name')

4.列表list

和字符串一样是序列类型 ,序列类型支持引索和切片,序列类型是一种可迭代对象

name_list = ['jason', 'tony', 'kevin', 'oscar', 'jerry']

列表中每个元素都会在内存中开辟一块空间,如上有5个元素,这五个元素开辟完后,内存中会再开辟一个列表对象,然后将name_list绑定到这个列表对象的内存地址。

引索取值:

2.索引取值
	起始数字是从0开始 
print(name_list[0]) # jason

什么是切片?

切片可以对大多数序列类型选取子集。

image

  1. name_list[0:4] 这里面的0、4都是引索
  2. 结束位置的引索不包含,你想切到引索3,就必须输入4。

省略引索的切片:

[:5] = [0:5]

name_list = ['jason', 'tony', 'kevin', 'oscar', 'jerry']
print(name_list[3:])
print(name_list[3:5])
print(name_list[0:4])
print(name_list[:4])

步进值step:

list[start:stop:step]意思是每隔多少数取一个值

image

负数引索和步进值搭配:

image

引索越界会报错、切片越界会自动处理:

image

5.字典dict

字典属于映射类型,字典本质是含有两个元素的元祖的集合。字典是无序的。

字典文字描述:
大括号括起来 内部可以存放多个数据 数据的组织形式是K:V键值对
键值对与键值对之间逗号隔开
K是对V的描述性性质的信息(解释说明) 一般都是字符串类型
V是真正的数据值 可以是任意数据类型

info_dict = {
        'username': 'jason', 
        'age': 18, 
        'hobby': 'read', 
	}

字典的键必须是不可变对象,如果字典的键是元祖,元祖里也不能含有可变对象!

可以用hash函数检查一个对象是否可以作为字典的键,不符合要求会报错。

6.基本数据类型之布尔值bool

1. bool类型的作用:用来判断事物的对错 是否可行 用于流程控制中

2. 只有两种状态
	True	对的 真的 可行的
  	False	错的 假的 不可行的
	
3. python中所有数据都自带布尔值
	布尔值为False的数据有:0 None '' [] {}
	布尔值为True的数据有:除了上面的都是True
	
4. 存储布尔值的变量名一般推荐使用is开头
	is_delete = False
 	is_alive = True

很多程序中提供的注销账户的功能 其实底层并没有删除数据 而是修改了数据的状态
id		username	password           phone          is_delete
1		jason		123		   110     	  1
2		kevin		321		   120		  0   

用户的数据以上表的形式存储在硬盘中,用户进行注销操作时,只是把 is_delete从 1 改成了 0 ,
并且其他信息也没有删除。

7.基本数据类型之元组tuple

1.也称为'不可变'的列表
	元组内索引绑定的内存地址不能修改
2.小括号括起来 内部存放多个数据值 数据值与数据值之间逗号隔开 数据值可以是任何数据类型
3.代码实现
	t1 = (11, 22, 'jason')
4.修改列表的元素
     l1 = [11, 22, 33]
     print(l1[0])  # 获取索引0对应的数据值
     l1[0] = 666
     print(l1)  # [666, 22, 33] # 对于列表可以通过索引修改他的元素

5.无法修改元祖的元素
     t1 = (11, 22, 33)
     print(t1[0])
     t1[0] = 999
     print(t1)
会产生报错 # TypeError: 'tuple' object does not support item assignment

6.可以修改元祖内部列表的元素
    t1 = (11, 22, [111, 222])
    t1[2][1] = 666
    print(t1)
    """
    A.直接报错 ×
    B.(11, 22, [111, 666]) √
    C.不知道 超出了我的认知 ×
    """

7.元组内如果只有一个数据值
# 定义只有一个数据值的元祖,请不要省略逗号!
    t1 = (1,)
    t2 = (11.11,)
    t3 = ('luna',)
    print(type(t1), type(t2), type(t3)) # <class 'tuple'> <class 'tuple'> <class 'tuple'>

    t1 = (1)
    t2 = (11.11)
    t3 = ('luna')
    print(type(t1), type(t2), type(t3))  # <class 'int'> <class 'float'> <class 'str'>

    """
    建议:以后在使用可以存放多个数据值的数据类型时 如果里面暂时只有一个数据值 那么也建议你加上逗号
    """
	比如: list_a = [1,]
	      list_b = [11.1,]
	      list_c = ['luna',]

总结:

  • 元祖和列表都是用索引来绑定、管理数据。
  • 元祖所谓的不可变 指的是索引跟值的绑定关系不能改

元祖的更多知识:

1.元组由多个用逗号隔开的值组成 
t = 12345, 54321, 'hello!'  # 输入时,圆括号可有可无,不过经常是必须的  # 这也称为元祖打包
print(t)  # (12345, 54321, 'hello!')

2.创建空元祖
empty = ()
print(len(empty),type(empty))  # 0 <class 'tuple'>

8.基本数据类型之集合set

集合(set)是一个无序的不重复元素序列。

1.集合只能用于去重和关系运算
	后面再讲 暂且忽略
2.集合内数据只能是不可变类型
	后面再讲 暂且忽略
3.大括号括起来 内部存放多个数据值 数据值与数据值之间逗号隔开 数据值不是k:v键值对
4.代码实现
	s1 = {1, 2, 3, 4, 5, 6}
5.定义空集合与空字典	
	{}  	默认是字典
 	set()	定义空集合
posted @ 2022-09-26 16:16  passion2021  阅读(50)  评论(0编辑  收藏  举报