开始之前
上一课中,print() 显示了写在引号里的文字。在 Python 中,这种文字叫作字符串,英文全称是 String,Python 用较短的类型名称 str 表示它。本课会把字符串和数字等数据保存起来,供程序之后使用。
变量的英文是 variable,意思是一个值可以变化的名字。Python 用变量给数据加上标签;看到变量名时,程序会取出这个名字当前对应的值。
概念 01
先区分数字和字符串
程序必须知道一个值是用来计算的数字,还是用来表达文字的字符串,才能决定可以对它做什么。
String(字符串)表示文字,Python 的类型名称是 str,是 string 的缩写。字符串必须放在成对引号中,例如 "Python";代码 print("Python") 会显示这段文字。
Integer(整数)表示没有小数部分的数,Python 的类型名称是 int,是 integer 的缩写。例如 6 是 int,代码 print(6) 会显示整数 6。
Floating-point number(浮点数)用来表示带小数部分的数,Python 的类型名称是 float。例如 2.5 是 float,代码 print(2.5) 会显示 2.5。这里先把 float 简单理解为“小数类型”。
字符串也可以包含数字字符,例如 "6",但它仍然是 str 文字。初学时最稳妥的判断方法是:有引号的 "6" 是字符串,没有引号的 6 是整数。
- String / str:引号中的文字
- Integer / int:没有小数部分的整数
- Floating-point number / float:带小数部分的数
- "6" 是 str,6 是 int
比较文字、整数和小数
三行注释标出了 Python 的类型名称。前两行看起来都显示 6,但第一行是 str,第二行是 int;只看输出外观不能确定数据类型。
点击“运行”后,程序输出会显示在这里。
概念 02
用清楚的变量名保存数据
当一个值会被重复使用或以后可能改变时,用清楚的变量名保存它,会比到处重复写同一个值更容易理解。
赋值的英文是 assignment,意思是把一个值交给变量保存。赋值语句由三部分组成:左边是变量名,中间是等号,右边是值。例如 score = 90,就是把整数 90 赋给变量 score。这里的等号不是数学中的“左右相等”。
变量名不能包含空格,也不能以数字开头。需要连接多个单词时,推荐使用小写字母和下划线,例如 student_name;这种写法英文叫 snake case,Python 代码中通常写成 snake_case(蛇形命名法)。
Python 区分大小写,所以 StudentName、studentname 和 student_name 是三个不同的名字。前两个可以运行,但容易造成风格不一致或不易阅读;本课程统一使用含义清楚的 snake_case。
- 变量名在等号左边,值在右边
- 不能有空格,也不能以数字开头
- Python 区分大小写
- 推荐使用有意义的 snake_case
用 snake_case 保存活动信息
student_name 用下划线连接两个单词,score_1 没有以数字开头。两行赋值只负责保存值,print() 才会产生输出。
点击“运行”后,程序输出会显示在这里。
概念 03
Boolean 用来表示“是”或“否”
许多程序都需要记录一个状态,例如是否完成或开关是否打开。Boolean 正是为这种只有两种答案的情况设计的;以后学习条件判断时会真正用它选择执行路径。
Boolean(布尔值)表示只有“真”或“假”两种可能的状态。Python 的类型名称是 bool,是 Boolean 的简写;它只有两个值:True 表示真,False 表示假。
True 和 False 的首字母必须大写,而且不能加引号。例如 is_ready = True 会把一个 bool 状态保存到变量 is_ready。
"True" 带有引号,因此只是由四个字符组成的字符串;True 没有引号,才是真正的布尔值。这两者对程序来说完全不同。
- Boolean / bool:只有 True 或 False
- True 和 False 首字母大写
- bool 值不加引号
- 布尔值适合保存两种状态
记录学习状态
lesson_finished 和 needs_review 是变量;True 和 False 是 bool 值。变量名描述问题,Boolean 值保存“真”或“假”的答案。
点击“运行”后,程序输出会显示在这里。
概念 04
变量可以更新,type() 可以帮你检查
程序运行时,学习进度、分数或状态都会变化。重新赋值让变量保存新值,type() 则帮助你确认当前数据是什么类型。
同一个变量可以再次出现在等号左边。新的赋值会替换旧值;之后读取变量时,只会得到最新值。
type 是英文“类型、类别”的意思,Python 中写成 type()。把一个值或变量放进括号,例如 type(study_hours),Python 就会告诉你它当前的数据类型。
输出中的 str 来自 String,表示引号中的文字;int 来自 Integer,表示整数;float 来自 Floating-point number,表示带小数的数;bool 来自 Boolean,表示 True 或 False。
你会看到类似 <class 'int'> 的结果。class 的英文意思是“类别”;这里整行只是在告诉你这个值属于 int(整数)这一类,并不是要求你现在学习 class 语法。
- 后一次赋值会替换旧值
- type() 用来查看数据类型
- str / int / float / bool 是四种基础类型名称
更新学习时长并检查类型
第一次输出旧值 2,重新赋值后输出新值 5。最后的 <class 'int'> 表示 study_hours 当前属于 int(整数)这一类。
点击“运行”后,程序输出会显示在这里。
常见错误
这些写法为什么不工作
错误不是失败,而是 Python 告诉你“这部分我无法理解”。先找到差异,再一次只改一个问题。
变量名无效或风格混乱
student name 含有空格,1score 以数字开头,因此不能作为变量名。StudentName 和 studentname 虽然可以运行,但它们与 student_name 是不同变量,也不符合本课程推荐的清晰 snake_case 风格。
student name = "Tom" 1score = 90 StudentName = "Tom" studentname = "Tom"
student_name = "Tom" score_1 = 90
忘记给文字加引号
没有引号时,Python 会把 Python 基础当作代码而不是一段文字,因而无法理解。字符串必须放在一对引号中。
course_name = Python 基础
course_name = "Python 基础"
把布尔值写成小写
Python 区分大小写。true 不是 Python 的布尔值;正确写法是首字母大写的 True。
is_ready = true
is_ready = True
把需要计算的数字放进引号
"3" 是字符串。虽然 print() 看起来仍然输出 3,但它不是可以直接参加算术计算的整数。
completed_lessons = "3"
completed_lessons = 3
引导修改
观察变量如何从旧值变成新值
这不是正式练习。跟着步骤修改已有代码,观察每次改变如何影响程序。
- 1先运行代码:第一次 print() 会显示 weekly_hours 的旧值 4。
- 2在注释下方新增 weekly_hours = 6,再次运行,观察第二次输出为什么变成 6。
- 3保留 type(weekly_hours),确认更新后的值仍然属于 int(整数)类型。
完成后:依次看到 4、6 和 <class 'int'>。这说明重新赋值替换了旧值,但数据仍然是整数。
修改这段代码
先运行,再按左侧步骤逐项修改。你的草稿会保存在这个浏览器中。
点击“运行”后,程序输出会显示在这里。
正式练习
现在独立完成 2 道练习
先运行代码观察问题,再点击“检查答案”。检查只关心题目要求的结果,不要求你照抄参考写法。
正式练习
记录天气变化
从注释下方开始独立编写程序:创建 city_name,保存字符串“墨尔本”;创建 temperature,保存整数 18;创建 is_raining,保存布尔值 True。依次输出这三个变量。然后把 temperature 重新赋值为 21,再输出它的新值,最后用 type() 输出 temperature 的类型。输出必须正好是五行:墨尔本、18、True、21、<class 'int'>。
点击“运行”后,程序输出会显示在这里。
需要一点提示?
先自己尝试一次;卡住时再逐级打开提示。
本课总结
本课小结
- 1变量用名字保存值;变量名不能包含空格或以数字开头,推荐使用含义清楚的 snake_case。
- 2Python 区分大小写,重新赋值会更新这个名字所对应的值。
- 3数字用于计算,字符串表示文字,Boolean 用 True 和 False 表示两种状态。
- 4不确定数据类型时,使用 type() 检查,而不是凭输出的外观猜测。