数据类型(重要)
| 什么是数据类型? |
| 视频文件 音频文件 表格文件 图片 等等这些都是保存数据的方式 |
| |
| |
| 数据类型的种类? |
| - 数字类型 |
| - 整数类型(int) |
| - 浮点类型(float) |
| - 字符串类型(str) |
| - 列表类型(list) |
| - 字典类型(dict) |
| - 布尔类型(bool) |
| - 元祖类型(tuple) |
| - 集合类型(set) |
数据类型之整型(int)
| 作用:记录年龄、出生年份,学生人数等整数相关的状态 |
| 定义: |
| age = 18 |
| student_count = 48 |
| year = 2001 |
| 数据类型的关键字: |
| print(type(age)) |
浮点型(float)
| 作用:用来记录人的身高,体重,薪资等小数相关的状态 |
| 定义: |
| height = 1.8 |
| weight = 120.5 |
| salary = 2800.5 |
| 数据类型的关键字: |
| print(type(height)) |
数字类型的应用
(1)数字运算
- 整数和浮点数可以进行常见的数学运算,包括加法、减法、乘法、除法等。
| a = 10 |
| b = 3.5 |
| result = a + b |
| |
| |
| print(result) |
| print(type(result)) |
(2)比较大小
- 我们可以使用比较运算符(如
<
、>
、<=
、>=
)来比较数字的大小,得到布尔类型的结果
| a = 5 |
| b = 2 |
| compare_result = a > b |
| |
| |
| print(compare_result) |
| print(type(compare_result)) |
数据类型之字符串(str)
| 作用:用来记录人的名字,家庭住址,性别等描述性质的状态 |
| 定义: |
| 方式一: |
| username = 'kevin' |
| 方式二: |
| username = "kevin" |
| 方式三: |
| username = '''kevin''' |
| 方式四: |
| username = """kevin""" |
| print() |
| 总结:就是引号引起来的部分都是字符串! |
| |
| 为什么需要有这么多定义的方式? |
| res = '李老师说:'趁年轻,学技能,养活自己'' |
| |
| res = '李老师说:"趁年轻,学技能,养活自己"' |
| res = "李老师说:'趁年轻,学技能,养活自己'" |
| print(res) |
| |
| |
| |
| |
| res1 = 'hello' |
| |
| |
| |
| |
| |
| print(res1 * 20) |
数据类型之列表(list)
| 作用:列表类型就是专门用来记录多个同种属性的值(比如同一个班级多个学生的姓名、同一个人的多个爱好等),并且存取都十分方便 |
| |
| 定义: |
| stu_names = ['张三','李四','王五'] |
| |
| |
| stu_names = [1, 2, 1.1, 1.2, '张三','李四','王五'] |
| |
| 存起来如何取值: |
| |
| |
| l = [1, 2, 3, ['kevin', 'tony', ['a', 'b', [11, 22, 'kevinNB', [111, 222, 333, 4444, 555, 666]]]]] |
| |
| |
| |
| l1 = l[3] |
| print(l1) |
| |
| |
| l2 = l1[2] |
| print(l2) |
| |
| |
| l3 = l2[2] |
| print(l3) |
| |
| l4 = l3[2] |
| print(l4) |
| |
| |
| |
| l5 = l[3][2][2][3][5] |
| print(l5) |
数据类型之字典(dict)
| 作用: |
| 如果我们需要用一个变量记录多个值,但多个值是不同属性的比如人的姓名、年龄、身高,用列表可以存,但列表是用索引对应值的,而索引不能明确地表示值的含义;这就用到字典类型,字典类型是用key:value形式来存储数据。 |
| 其中key可以对value有描述性的功能,能够明确的描述详细信息。 |
| 定义: |
| d = {'username':'kevin', 'age':18, 'gender':'male', 'salary':2000} |
| |
| 字典就是使用大括号括起来,内部存放多个元素值,元素与元素之间使用逗号隔开,但是,元素类型是key:value的形式,key是对value的解释型信息,value才是真正的变量值 |
| |
| 取值: |
| |
| info = { |
| 'username': 'jerry', |
| 'addr': [1, 2, 3, {'age': 18, 'gender': 'male', 'hobby': ['tangtou', 'xijio', 'anmuo', 'niejiao', {'a': 'kevinNB'}]}] |
| } |
| |
| |
| |
| l1 = info['addr'] |
| print(l1) |
| |
| |
| l2 = l1[3] |
| print(l2) |
| |
| |
| l3 = l2['hobby'] |
| print(l3) |
| |
| l4 = l3[4] |
| print(l4) |
| |
| l5 = l4['a'] |
| print(l5) |
| |
| |
| l6 = info['addr'][3]['hobby'][4]['a'] |
| print(l6) |
| |
| |
| info = { |
| 'name': 'Dream', |
| 'addr': { |
| '国家': '中国', |
| 'info': [666, 999, {'编号': 466722, 'hobby': ['read', 'study', 'music']}] |
| } |
| } |
| |
| |
| d1 = info['addr'] |
| print(d1) |
| |
| |
| |
| d2 = d1['info'] |
| print(d2) |
| |
| |
| |
| d3 = d2[2] |
| print(d3) |
| |
| |
| |
| d4 = d3['hobby'] |
| print(d4) |
| |
| |
| |
| d5 = d4[2] |
| print(d5) |
| |
| |
| |
| d6 = info['addr']['info'][2]['hobby'][2] |
| print(d6) |
| |
| |
| |
| name = name_dict['name'] |
| print(name) |
| |
| name = name_dict.get('name') |
| print(name) |
| |
| age = name_dict.get('age', 18) |
| print(age) |
| print(type(age)) |
数据类型之布尔类型(bool)
| 作用:布尔类型用于表示逻辑值,只有两个取值:True 和 False。在编程中,布尔类型经常用于控制程序的流程,例如条件判断、循环等。 |
| 定义: |
| a = True |
| b = False |
| |
| |
| is_right = True |
| is_ok = False |
| is_delete = True |
| |
| |
| name age gender phone is_delete |
| kevin 18 male 110 1 |
| |
| |
| |
| 你只需要记住哪些是假的情况,其余都为真 |
| 哪些是假? |
| 0、''、None、[]、{}、等 |
数据类型之元组(tuple)
| |
| 定义: |
| t = (1,2,3,4,5) |
| 元组就是使用小括号括起来,内部存放多个元素值,元素与元素之间使用逗号隔开,它不能够修改,其余的跟列表都一样,也是索引(下标)来取值 |
| |
| 取值: |
| print(t[0]) |
元组的使用
(1)元组的不可变性
- 由于元组是不可变的,不能对元素进行修改、删除或添加。
| |
| my_tuple[0] = 42 |
| |
| |
| del my_tuple[1] |
| |
| |
| my_tuple.append('new_element') |
(2)元组的基本操作
| |
| sliced_tuple = my_tuple[1:3] |
| print(sliced_tuple) |
| |
| |
| new_tuple = my_tuple + ('world', False) |
| print(new_tuple) |
(3)元组解包
- 元组解包是一种将元组中的元素分配给多个变量的方法。
| |
| a, b, c, d = my_tuple |
| |
| print(a) |
| print(b) |
| print(c) |
| print(d) |
(4)元组的应用场景
- 用于函数返回多个值
- 保持数据的不可变性,适用于一些常量集合的场景
- 元组作为字典的键(因为元组是不可变的)
| |
| def get_coordinates(): |
| return 10, 20, 30 |
| |
| x, y, z = get_coordinates() |
| print(x, y, z) |
| |
| |
| coordinates_dict = {(1, 2, 3): 'Point A', (4, 5, 6): 'Point B'} |
| print(coordinates_dict[(1, 2, 3)]) |
- 元组是一个灵活且强大的数据类型,适用于许多场景,特别是需要不可变性的情况。
数据类型之集合(set)
| 作用:集合(set)是一种无序、不重复的数据类型,用于存储多个独立的元素。集合主要用于:去重、关系运算 |
| 定义: |
| s = {1, 2, 3, 4} |
| 使用大括号括起来,内部存放多个元素值,元素与元素之间使用逗号隔开,但是不是key:value的形式 |
| |
| 集合的特点:去重 |
| |
| l = [1, 2, 3, 4, 1, 2, 3, 4] |
| |
| |
| s = set(l) |
| |
| print(s) |
| |
| ll = list(s) |
| print(ll) |
| |
| |
| |
| |
| d = {} |
| print(d, type(d)) |
| |
| s = set() |
| print(s, type(s)) |
集合运算
| set_a = {1, 2, 3, 4} |
| set_b = {3, 4, 5, 6} |
| |
| |
| union_set = set_a.union(set_b) |
| |
| |
| intersection_set = set_a.intersection(set_b) |
| |
| |
| difference_set = set_a.difference(set_b) |
格式化输出
1. %输出
使用 %
运算符进行格式化输出,可以在字符串中插入占位符,然后通过 %
运算符传入相应的值。
| |
| name = "xiao" |
| age = 18 |
| height = 175.5 |
| |
| |
| print("My name is %s." % name) |
| |
| |
| |
| print("My age is %d." % age) |
| |
| |
| |
| print("My height is %f." % height) |
| |
| |
| |
| print("My height is %.2f." % height) |
| |
| |
| |
| number = 255 |
| print("Number in hex: %x." % number) |
| |
| |
| |
| print("My name is %s; My age is %d" % (name, age)) |
| |
使用 format
方法进行格式化输出,通过花括号 {}
表示占位符,然后调用 format
方法传入实际值
| name = "xiao" |
| age = 18 |
| |
| print("My name is {}; My age is {}".format(name, age)) |
| |
在这个例子中,{}
是占位符,它会按顺序依次填充传入 format
方法的值。
3. f + {}输出
使用 f-string(f + {}
)进行格式化输出,通过在字符串前加上 f
或 F
前缀,然后在字符串中使用 {}
表示占位符,并在 {}
中直接引用变量。
| name = "xiao" |
| age = 18 |
| |
| print(f"My name is {name}; My age is {age}") |
| |
字符串转义
在字符串中,转义字符用于表示一些特殊字符或执行一些特殊操作,常用的转义字符如下:
转义字符 |
说明 |
\n |
换行符,将光标位置移到下一行开头。 |
\r |
回车符,将光标位置移到本行开头。 |
\t |
水平制表符,也即 Tab 键,一般相当于四个空格。 |
\a |
蜂鸣器响铃。注意不是喇叭发声,现在的计算机很多都不带蜂鸣器了,所以响铃不一定有效。 |
\b |
退格(Backspace),将光标位置移到前一列。 |
\ |
反斜线 |
' |
单引号 |
" |
双引号 |
\ |
在字符串行尾的续行符,即一行未完,转到下一行继续写。 |
| |
| print("Hello\nWorld") |
| |
| |
| |
| |
| print("Name\tAge") |
| |
| |
| |
| print("This is a backslash: \\") |
| |
| |
| |
| print("I'm a programmer.") |
| |
| |
| |
| print("He said, \"Hello.\"") |
| |
| |
| |
| print("One\rTwo\bThree") |
| |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏