如何理解数据类型
eg:
日常生活中
表示姓名用文本 表示年龄用整数 表示体重用小数
视频文件 文本文件 表格文件 pdf文件 程序文件
代码程序中
也需要有不同的数据类型来表示不同的数据状态
储备知识
如何查看数据的数据类型
type()
ps:数据类型的学习就相当于在学习英语的字母、单词
数据类型:
1.整数(int)
2.浮点型(float)
3.字符串(str)
4.列表(list) []
5.字典(dict){}
6.布尔值 (bool)(True,False)
7.元组(tuple)()
8.集合(point){}
其实就是整数!!!
主要应用场景:年龄 学生人数 年份
基本使用:
age = 18
stu_num = 38
year = 2022
表达关键字:int
核心语法:直接写整数即可
2.数据类型之浮点型 (float)
其实就是小数!!!
主要应用场景:体重 身高 薪资待遇
基本使用:
weight = 76.8
height = 1.83
salary = 3.1
表达关键字:float
核心语法:直接写小数即可
其实就是文本信息!!!
主要应用场景:描述性性质的信息 姓名 住址 爱好
基本使用:
name = 'jason'
addr = "上海"
hobby = '''读书\写字'''
info = """你们好呀 准备好起飞了吗"""
表达关键字:str
核心语法:引号引起来的部分
疑问1:为什么定义字符串需要有这么多种方式???
"jason老师说:"只要下定决心好好学 你肯定不会失望"" # 报错
原因:我们在定义字符串的内部可能也需要使用引号 如果冲突了会报错
所以定义字符串给出了多种方式 避免冲突
核心:明确定义字符串的符合和内部文本的符号(不冲突即可)
疑问:三引号前面学习的是注释 为什么又变成了字符串
当三引号左边没有赋值符号和变量名的时候 意思是注释
当三引号左边有赋值符号和变量名的时候 意思是字符串
多引号可以写多行字符串
"""
好好学习
天天向上
"""
数字可以进行加减乘除等运算,字符串呢?也可以,但只能进行"相加"和"相乘"运算。
>>> name = 'jason'
>>> age = '18'
>>> name + age #相加其实就是简单的字符串拼接
'jason18'
>>> name * 5 #相乘就相当于将字符串相加了5次
'jasonjasonjasonjasonjason'
1.本质
能够存储多个数据 并且能够方便的获取整体或者局部
2.基本使用
l1 = [1, 2, 3, 4, 5]
3.语言描述
中括号括起来 内存可以存放多个数据值 数据值与数据值之间逗号隔开
数据值可以是任意数据类型
l2 = [11, 11.11, ‘jason’, [11, 22, 33]]
4.索引取值
# name_list = [‘陈志燕’, ‘沈月’, ‘李五’]
‘’‘索引取值:在IT领域数字的起始位置通常是从0开始 现实生活中是从1开始’‘’
# print(name_list)
# print(name_list[1]) # 沈月
# print(name_list[0]) # 陈志燕
# print(name_list[100]) # 索引超出范围直接报错
l1 = [11, 22, [111, 222, 333, [123, 321, 666], 444]]
‘’‘遇到复杂构造的数据 先明确整体有几个数据值 然后再一步步拆分’‘’
# 1.先获取666所在的小列表
# print(l1[2]) # [111, 222, 333, [123, 321, 666], 444]
# l2 = l1[2] # 将索引取值获取到的数据绑定给l2
# print(l2) # 之后就可以通过l2获取列表
# 2.再获取666所在的小小列表
# print(l2[3]) # [123, 321, 666]
# l3 = l2[3] # 将索引取值获取到的数据绑定给l3
# 3.变成了最简单的索引取值情况
# print(l3[2])
‘’‘熟练之后 上述可以简写成一步完成’‘’
print(l1[2][3][2])
1.本质
能够存储多个数据 并且能够方便的获取整体或者局部 并且数据具有对于解释
2.基本使用
info_dict = {‘姓名’: ‘jason’, ‘年龄’: 18, ‘爱好’: ‘read’}
3.语言描述
大括号括起来 内部可以存放多个数据 数据的组织形式是K:V键值对
K是对V的描述性性质的信息 一般是字符串
V是真实的数据值 可以是任意数据类型
4.按K取值
info_dict = {'姓名': 'jason', '年龄': 18, '爱好': 'read'}
'''字典取值:字典无法使用索引取值(因为字典是无序的) 可以使用按K取值'''
print(info_dict['姓名']) # jason
print(info_dict['年龄']) # 18
print(info_dict['家产']) # K不存在直接报错
5.取值练习题
取值年纪
data = {'name': 'jason','others': [111, 222, {'a1': '嘿嘿','a2': '哈哈','a3': [
123,{'name': 'jason1','age': 18}]}]}
# 1.先获取大列表
l1 = data['others']
# print(l1) # [111, 222, {'a1': '嘿嘿', 'a2': '哈哈', 'a3': [123, {'name': 'jason1', 'age': 18}]}]
# 2.获取大列表中的字典
d1 = l1[2]
# print(d1) # {'a1': '嘿嘿', 'a2': '哈哈', 'a3': [123, {'name': 'jason1', 'age': 18}]}
# 3.获取字典的值
l2 = d1['a3']
# print(l2) # [123, {'name': 'jason1', 'age': 18}]
# 4.获取列表的数据
l3 = l2[1]
# print(l3) # {'name': 'jason1', 'age': 18}
# 5.按k取值
# print(l3['age'])
"""上述可以简写成一步"""
print(data['others'][2]['a3'][1]['age'])
1.本质
用来表示事物是否可行 是否正确 是否合理
总共就两个值
2.基本使用
is_right = True # 真 可以 正确
is_delete = False # 假 不可以 错误
3.详细介绍
布尔值看似很简单 很少见 其实在程序中是最多的 也是使用频率最高的
存储布尔值的名字一般使用is开头 # 君子协定
4.布尔值类型转换
程序中所有的数据类型都可以转成布尔值
布尔值为False的数据有
0 None 空字符串 空列表 空字典 …
除上述之外所有的数据对于的布尔值都是True
5.所有的编程语言都有布尔值 只不过关键字和值可能有变化(了解)
typeof true
‘boolean’ # js中就不一样
1.本质
能够存储多个数据 并且能够方便的获取整体或者局部
与列表的区别在于元组内数据值不能"直接修改" 而列表可以
所以元组有一个小外号>>>:不可变的列表
2.作用
一般用于存储一些只能看不能改的数据
3.基本使用
t1 = (111, 222, 333)
4.语言描述
小括号括起来 内存可以存放多个数据值 数据值与数据值之间逗号隔开
数据值可以是任意数据类型
5.与列表对比
l1 = [11, 22, 33]
t1 = (11, 22, 33)
# print(l1[0])
# print(t1[0])
# l1[0] = 'jason' # 将列表索引0重新绑定数据值jason
# print(l1) # ['jason', 22, 33]
t1[0] = 'tony' # 将元组索引0重新绑定数据值tony 直接报错!!!
print(t1)
1.本质
集合只用于去重和关系运算
去重:自动去除重复的数据
关系运算:判断两个集合之间数据的关系(共同好友 共同点赞)
2.基本使用
s1 = {1, 2, 3, 4, 5}
3.定义空集合
d1 = {}
s1 = {}
print(type(d1)) # dict
print(type(s1)) # dict
ss = set() # 必须使用关键字才能定义空集合
print(type(ss))
1.获取用户信息并打印出下列格式
------------ info of XXX -----------
Name : XXX
Age : XXX
gender : XXX
Job : XXX
------------- end -----------------
#1.确定输出格式
info = """
------------ info of XXX -----------
Name : %s
Age : %s
gender : %s
Job : %s
------------- end -----------------
"""
#2.获取用户信息
name = input('请输入您的姓名>>>:').strip()
age = input('请输入您的年龄>>>:').strip()
gender = input('请输入您的爱好>>>:').strip()
job = input('请输入您的工作>>>:').strip()
#3.格式化输出
print(info%(name , age , gender , job))