科创科普:Python 变量与数据类型——给数据起个名字

科创科普:Python 变量与数据类型——给数据起个名字

一、为什么需要「变量」 数学课上我们常写「设 x = 5」,编程里的变量和它很像,但更像一个贴了名字标签的储物盒:盒子放在电脑内存里,标签就是变量名,盒子里装的东西就是数据。以后要用这份数据,喊一声盒子上的名字就行。

比如下面两行代码: score = 95 print(score + 5)

程序先把数字 95 装进名叫 score 的盒子;读第二行时,把盒子里的 95 取出来加 5,屏幕上就显示 100。

变量的最大好处是「数据变了,程序不用改」。如果一个月后成绩变成 98,你只要改第一行,其他所有用到 score 的地方都会自动跟着更新。

二、Python 里的四种基本数据类型 1. 整数 int:没有小数点的数,例如 12、-3、2026。 2. 浮点数 float:带小数点的数,例如 3.14、0.5、98.6。 3. 字符串 str:用一对引号包起来的文字,例如 "你好"、"Python"、"2026"。单引号和双引号都可以,但左右必须配对。 4. 布尔值 bool:只有 True 和 False 两个值,用来表示「真」和「假」。注意首字母大写,写成 true、false 是错的。

想知道一个值属于哪种类型,可以用 type(): print(type(3.14)) # print(type("3.14")) #

这两个值看起来一模一样,但一个是数、一个是文字。3.14 + 1 得到 4.14,而 "3.14" + 1 会直接报错——文字和数字不能相加。

三、变量命名:硬性规则与好习惯 硬性规则(不遵守就直接报错): · 只能用字母、数字和下划线组成; · 不能以数字开头,2num、9score 都不合法; · 区分大小写,Score 和 score 是两个完全不同的盒子; · 不能用 if、for、print、class 这类 Python 关键字。

好习惯(不遵守程序能跑,但会坑未来的自己): · 名字要说明含义,用 total_score,不要用 a1、aaa、abc; · 多个单词用下划线连接,全项目保持统一风格; · 不要中文拼音和英文混拼,例如 chengji1、scoreA 混着写。

四、input() 读进来的「永远是文字」 input() 从键盘读入内容,但它读回来的一定是字符串。所以下面这段代码会报错: name = input("请输入你的名字:") age = input("请输入你的年龄:") print(age + 1) # 报错!因为 age 里是 "12" 这样的文字

要参与计算,必须先转换类型: age = int(input("请输入你的年龄:")) print("明年你", age + 1, "岁")

常用转换函数有三个:int() 转整数、float() 转小数、str() 转文字。注意 int("12") 成功,int("十二") 会报 ValueError,因为转换只认合法的数字写法。写程序时要记住:读进来的数据先想清楚「它是文字还是要算的数」。

五、案例:一个零花钱小账本 income = float(input("本月零花钱:")) spent = float(input("本月花了:")) left = income - spent rate = left / income * 100 print("剩余", left, "元,剩余比例", round(rate, 1), "%")

这个不到十行的小程序,用到了 float 类型、减法、除法和 round() 四舍五入,也体现了变量的真正价值:left 和 rate 都是从前面的数据算出来的,改一个输入,结果全盘更新。 如果 income 输入 0,程序会报 ZeroDivisionError(不能除以零)。想更稳妥,可以先判断 if income > 0 再算比例——这正是下一课「条件判断」要讲的内容。

六、常见错误与提醒 · NameError:用了没定义过的名字,多半是拼错、大小写不一致或忘了先赋值。 · TypeError:类型不匹配,最常见的就是数字和字符串相加。 · 误把 print 当变量:print 只负责把结果显示出来,不会把它存起来,后面想再用必须写 x = ... 。 · 变量名起了却没改过值:如果一个变量从头到尾都没变,说明它其实可以写成一个固定的值,代码可以更简单。

七、练习(建议动手敲一遍) 1. 用三行代码定义 price = 12.5、num = 4,输出总价。 2. 让用户输入语文、数学、英语三科成绩,输出平均分并保留两位小数。 3. 下面哪些变量名不合法?_count、2count、my score、class、Name。 4. 写出 type(7)、type("7")、type(7.0)、type(True) 各自的结果。 5. 已知 s = input(),用户输入 25。若想让程序输出 75,应该怎么写?

参考答案思路: 1. price = 12.5;num = 4;print(price * num)。 2. 三科都用 float(input()) 读入,相加后除以 3,再用 round(..., 2)。 3. 2count(数字开头)、my score(含空格)、class(关键字)不合法。 4. 分别是 int、str、float、bool。 5. print(int(s) * 3)——先把文字转成数字,再计算。