一、程序执行
前言:
你是否好奇,手机里的视频是如何播放的?微信消息是怎么发送给好友的?游戏中的人物为何能灵活移动?这一切的魔法,都源于编程——一种让计算机听懂我们指令的神奇语言!
本章节让你了解到计算机与人类处理信息方式有何不同?你会看到,无论是聊天记录、音乐旋律,还是五彩斑斓的图片,本质上都是由数字和符号组成的。本章节主要探索数据类型、运算符、变量和程序执行过程!
1. 基本数据类型
1.1. 概述
我们每天在手机、电脑等电子设备上所看到的图片、听到的声音、观看的视频,表面上丰富多彩,但在计算机的世界里,它们本质上都是由二进制专数据表示,并通过数字和字母等编码方式存储和传输!
像微信、抖音这样的应用程序,都是通过编程来处理这些数字信息,让我们可以聊天、看视频、玩游戏。编程的本质,就是告诉计算机如何操作这些数据,让它按照我们的想法去工作!
1.2. 定义
1.3. 基本数据类型
1.3.1. 整数(int)
编辑
1.3.2. 浮点数(float)
- 定义: 浮点数是任何带有小数点的数字。“浮点数”名称的由来是因为小数点可以在数字之间“浮动”。如:1.5、3.59、-1.7、0.0 和 -1.0 都是浮点数,即使小数部分为零,计算机也识别为浮点数。生活常见有身高1.5米、冰淇淋价格3.5元。
- 与数学比较:
浮点数比较繁琐,为了能快速理解,可以认为“浮点数近似表示实数”,关于实数会在初一上学期接触到,下面简单说明:
有理数: 有理数包含整数、分数以及循环小数。
无理数: 无理数是小数部分无限不循环的数 ,比如π ≈ 3.1415926535...(无限不循环) 。
实数: 指的有理数和无理数的统称(所有可以想象到的数)。其特点是:
| 比较项 | 浮点数(编程) | 实数(数学) |
| 概念 | 计算机存储和运算格式 | 数轴上的数,可无限精确 |
| 精度 | 有限精度,可能丢失精度 , 在编程中,浮点数是 计算机对实数的一种近似表示,但不能完美表示所有实数(如 π) | 连续的 , 可以无限精确(如 π) |
| 运算 | 可能产生舍入误差 | 严格数学运算,无误差 |
1.3.3. 布尔值(bool)
- 定义: 布尔值是表示真( True)或假(False) 的数据类型, 通常用于逻辑判断和条件控制。在Python中,True 和 False 的首字母一定是大写。生活常见有“判断题的√和×”。
- 编程与数学对比(可不讲)
| 方面 | 数学中的布尔值 | 编程中的布尔值 |
| 取值 | 只有 0和 1 | True 和 False,有时也支持 1 和 0 |
| 应用 | 逻辑推理、集合运算等 | 条件判断、循环控制、位运算等 |
| 是否允许非布尔值 | 只允许 0 和 1 | 允许隐式转换,如 0、""、null 可能视为 false |
| 在数学中,布尔值严格限定在 0 和 1,而在编程中,布尔值通常用于控制逻辑,还可能涉及类型转换 |
1.3.4. 字符串(str)
-
定义: 字符串是一串由字符组成的序列,字符可以是字母、数字、符号或空格。 在编程中,通常用引号(单引号 ' 或双引号 " )括起来。 如:"z"、"python@ai.com"、":)"和"-12"、"98.5"、"True"都是字符串。 即使部分引号内容看起来像数字或布尔值,但因引号的存在计算机仍然会把它当作字符串,而不是数值或逻辑值。生活常见有微信消息、游戏ID。
Python 官方建议优先使用双引号 " ,但实际使用时,按避免转义的规则选择即可。
| 情况 | 推荐用法 |
| 一般字符串 | 'hello' 或 "hello" 都可以 |
| 字符串里有双引号 | '"Python is fun!"' ✅ (避免转义 ") |
| 字符串里有单引号 | "It's easy" ✅ (避免转义 ') |
| 多行字符串 | 使用三重引号'''多行文本''' 或 """多行文本""" |
1.4. 复杂数据组合
复杂数据是由基本数据类型组合而成。 仅靠这些基本数据类型,如何构成微信、歌曲或照片这样的复杂内容呢?实际上,计算机通过数值编码的方式来表示和存储各种复杂数据。
- 微信: 页面包含了浮点数、字符串、布尔值。
详见“声音波形演示.mp4”
1.5. 为什么要把这一切搞得这么复杂?
计算机只能理解0和1,也就是二进制。 这源于计算机的硬件工作原理,它基于电子开关(编辑
可想象为计算机是由很多开关组成),开关只有两种状态:开(1)和关(0)。 因此,所有数据在计算机中最终都会被转换为二进制形式,以便计算机的硬件能够进行处理和存储。
- 示例: 数据到二进制的转换
编辑
想象一下,你写了一封信, 而计算机只懂二进制(0和1)。 为了让计算机理解你的信,你需要把它翻译成这种“语言”。整个过程可以分为以下几个步骤:
-
- 编写代码(类似写信) 用人类能懂的语言写了一段代码,就像写一封信。
- 语法分析(分析句子) 编译器按照规则把分析每个句子。
- 语义分析(检查意思) 编译器还会检查这些句子的意思是否对,就像老师检查你的作文有没有写错或逻辑不通。
- 生成二进制数据(翻译成电脑的秘密语言) 然后,编译器把这些句子一步步翻译成电脑能懂的语言,也就是一串串0和1。
- 加载和运行(电脑执行) 最后,计算机将这段翻译好的二进制程序加载到内存中,并按照程序指令运行。
2. 表达式与计算机“说话”
2.1. 运算符
- 定义: 用来对数据进行操作的符号。Python提供了多种运算符,包括算术运算符、比较运算符、逻辑运算符、赋值运算符等。因课程需要本节只介绍算术运算符“+”,其余的会在其他章节讲解。
2.2. 表达式
- 定义: 是由数据和运算符组成而成。
可以将表达式看作是一个“短语”, 它虽然不是完整的句子,但它能够表达一定的含义。比如“苹果和香蕉” 只是两个词语的组合成了短语,如果要完整的描述可以说 “我买了苹果和香蕉”。
当计算机在程序中遇到一个表达式时,它会将该表达式计算为一个单一的值。 这和人类的思维方式类似:当你看到5+2时,就会在脑海中进行计算,并得出结果7。计算机也是如此。它将每个表达式简化为最简单的形式。
我们来看运算符 “+” 在不同数据类型相加时会发生什么?
-
-
-
字符串 + 字符串(字符串连接)
- 结果:一个新的字符串
- 示例: "Hello" + "World" → "HelloWorld"
- 解释:在 Python 里,字符串相加并不会像数字那样做数学运算,而是把两个字符串直接拼接在一起。这种操作被称为字符串连接(concatenation)。
-
-
-
-
-
- 结果:错误(TypeError)
- 示例:5 + "hello" (错误)
- 解释:计算机无法理解该如何把一个数字和一个文字拼在一起,所以会报错。同样数学中也无法计算“5+hello”等于什么。
-
-
-
-
-
- 结果:整数
- 示例:True + 1 = ?,False + 1 = ?
- 解释:实际的程序中很少这样做,这里不讲解。但希望你能自己试试,然后补充答案,并给出解释。
-
-
2.3. 让计算机“说话”
在代码编辑器的第一行,我们写下一个表达式1 + 1。计算机看到后,会立刻计算它的结果为2。但运行程序后,屏幕上什么都没有,这是为什么呢?
这是因为计算机就像一个“听话但呆萌的机器人”,它只会执行你明确告诉它的指令。虽然它计算出了1 + 1 = 2,但你并没有告诉它要“说出来”,所以它只是默默地把结果放在心里,没有显示出来。
如果你想让计算机把结果告诉你,就需要使用print() 函数。print() 就是让计算机“开口说话”的方法,它会把括号内的内容打印到屏幕上。例如:
就像你在学校做数学题,如果老师问你“1 + 1 等于多少?”
你心里算出2但不说出来,老师就不会知道答案。这时,如果你大声说“2”,老师才知道你算对了!计算机也是一样的道理!
2.4. 编写代码的规则
- 一行一个指令 : 每个指令需要单独写在一行,否则计算机会“晕头转向”。✅ 正确写法:
❌ 错误写法:
print(1 + 1) print("你好") # 计算机会报错!
- 顺序执行 : 计算机会从上到下依次执行指令。例如:
3. 程序的执行过程
-
在学习编程时,我们不仅要学会写代码,还要学会像计算机一样思考,理解它是如何一步步执行程序的。这种方式称之为 “ 跟踪式学习 ” 注跟踪代码,好处如下:
- 提高代码阅读和编写能力
- 预测程序的运行结果,减少试错
- 逐步在脑中模拟代码的执行过程
-
-
- 计算机首先将程序的第一行加载到内存
- 识别表达式,将其简化为单一的值,结果为2。
- 计算机会查看括号外的内容,括号外内容print指令,将结果3.5显示在控制台中。
- 打印完成后,计算机会优化自己“大脑”,它不再需要记住这条指令,也不需要这些信息,所以它只是清空“大脑记忆”(工作内存)并忘记,这为下一条指令腾出了空间。
-
-
-
- 第二行加载到工作内存中
- 识别表达式,将其简化为单一的值,结果为5。
- 因该行只有表达式,上一步已完成了任务,计算机会优化自己“大脑”,清空工作内存,忘记5,继续下一行。
-
-
-
- 第三行加载到工作内存中
- 识别表达式,表达式有两个运算符,则计算机分为两个步骤从左到右求值,并简化为单一的值,即"hello word"
- 计算机会查看括号外的内容,括号外内容print指令,将结果显示在控制台中。
- 打印完成后,计算机会优化自己“大脑”,它不再需要记住这条指令,也不需要这些信息,所以它清空工作内存并忘记,这为下一条指令腾出了空间。
-
4. 如何辨别错误
4.1. 定义:
在编程中,常见的错误类型有三种:语法错误、运行时错误和逻辑错误。
4.2. 三种错误类型
4.2.1. 语法错误:
- 定义: 语法错误是指程序代码不符合Python语言的规则。
就像“饭吃了吗”不符合中文语法一样,如果代码的语法不正确,程序将无法运行。
4.2.2. 运行时错误
- 定义: 运行时错误是指程序在运行过程中出现的错误。这类错误的代码语法是正确的,但在执行某条指令时,计算机无法完成操作。
类似数学计算过程错误:10 ÷ 0 ,数学中任何数字都不能除以 0。同样这个在计算机中也会报错。
4.2.3. 逻辑错误
- 定义: 逻辑错误是指程序虽然能够正常运行,但结果与预期不符。这类错误是最难发现的,因为计算机不会报错,程序会正常执行完毕。
数学中的计算方法错误:例如小明有5颗糖,又得到了2颗,现在他有多少颗糖?