资讯详情

Python入门语言元素:变量、数据类型与运算符实战

📅 2026/10/13 3:03:41 | 华诺云谱 👁 阅读
Python入门语言元素:变量、数据类型与运算符实战
如果你是从D1一路跟过来的昨天你应该已经亲自动手装好了Python环境也敲出了人生第一个Hello World。今天D2的主题是“语言元素”听起来有点抽象说白了就是四件事变量、数据类型、运算符、输入输出。别小看这四个词它们几乎是你之后写的每一行代码的骨架。学完今天这一篇你会发现自己已经能写出“有点用”的程序而不是只会打印一句固定的话。这一篇面向的是零基础自学的人就算你昨天刚装好Python、今天第一次听说“变量”这个概念也完全没关系。我会尽量用大白话讲清楚每个知识点背后的道理再配合可以直接抄下来运行的小案例。有基础的朋友也能跳过废话直接看代码和避坑清单。1. 语言元素到底学的是什么1.1 为什么D2就要碰这些“枯燥”的概念很多自学的人D1跑通Hello World之后觉得编程不过如此结果D2一上来就遇到变量、类型、表达式瞬间被劝退。我当年也差点栽在这里。其实换个角度想就通了学编程跟学做菜是一模一样的逻辑。你第一天学会了开火、倒油D2要学的就是认识食材——哪些是蔬菜、哪些是肉类、哪些调料能放一起、炒菜的火候怎么控制。不把食材搞明白后面再花哨的菜谱都做不出来。Python里的“语言元素”就是这门语言的基础词汇和语法规则变量相当于给数据贴个标签方便随时取用。数据类型区分数字、文字、真假状态决定数据能做什么运算。运算符让数据之间产生关系加减乘除、大小比较、逻辑判断。输入输出让程序能跟用户对话接收外面的信息再把结果反馈出去。这四样东西组合起来就已经能覆盖一个完整小程序的全部流程拿数据、算数据、给结果。后面学循环、学函数、学文件操作全都是在这些地基上盖楼。1.2 学完D2之后你能做什么给自己定一个可衡量的目标很重要。D2结束的时候你应该能独立写出下面这类程序输入一个摄氏温度自动换算成华氏温度输出输入商品单价和数量算出总价并保留两位小数输入姓名和年龄程序自动跟用户打招呼并判断是不是成年人输入一个数字判断它是奇数还是偶数。这些程序都不需要循环和函数但已经具备“输入-处理-输出”的完整结构。换句话说从今天起你写的就不再是“脚本片段”而是真正能解决的小工具。2. 变量给数据贴个名字2.1 用“贴了标签的盒子”理解变量变量这个概念教科书里喜欢定义为“存储数据的容器”但光这么记住没用。我更喜欢把它理解成一个贴了标签的盒子你把一个值放进去再给盒子起个名字以后想用这个值就直接喊名字不用每次都掏出值本身。age 18这行代码干了什么在内存里开了一个盒子把数字18放进去然后在盒子上贴了张标签叫age。等你想用这个数字的时候写age就行不用再写18。而且盒子里的东西能随时换age 18 age 20 print(age) # 输出20Python里变量不用提前声明类型给什么类型的值都接得住这就是所谓的动态类型。这对新手其实是好消息少写很多啰嗦的类型声明。但好处背后有个代价你必须自己心里清楚盒子里装的是什么。我见过太多新手把数字和字符串混在一起算然后一脸茫然地看着报错这个坑后面第五节会专门讲。2.2 Python常用的四种基础数据类型D2阶段你只需要掌握四种类型已经够应付绝大多数入门场景。类型名称例子说明int整型3、-5、0整数不带小数点float浮点型3.14、-0.5带小数点的数就是数学里的小数str字符串你好、abc文本单引号双引号都行bool布尔型True、False只有两个值表示真假用type()函数可以随时查看一个变量的类型a 100 b 3.14 c Python d True print(type(a)) # class int print(type(b)) # class float print(type(c)) # class str print(type(d)) # class bool这里有两个容易迷糊的点。第一True和False必须大写小写true会直接报错。第二字符串和数字看起来可能像比如100和100在Python眼里完全是两回事——一个是文本一个是数值。后面做类型转换的时候这个区别是重灾区。2.3 变量命名取名字也有规矩给变量起名字看似自由其实有几个硬性规则只能由字母、数字、下划线组成不能用空格、减号、中文标点不能以数字开头1var不合法var1合法不能跟Python关键字冲突比如if、for、class这些词有特殊含义不能当变量名。光记规则不够我还强烈建议你从现在开始就养成两个习惯命名要有意义price比p好user_age比a好用蛇形命名法多个单词用下划线连接比如total_price这是Python社区的主流风格。我见过不少同学图省事变量名写作a、b、c结果代码写到三十行自己都忘了哪个是哪个。改个有意义的命名十分钟的麻烦换来以后三十天的清醒这笔账非常划算。3. 运算符与表达式让数据动起来3.1 算术运算符加减乘除之外还有好东西Python的算术运算符比小学数学多几个先看一张表运算符含义例子结果加7 310-减7 - 34*乘7 * 321/除7 / 32.3333333333333335//整除7 // 32%取余7 % 31**幂2 ** 38其中//和%是很多新手第一回接触的东西。整除就是只取商的整数部分丢掉小数取余就是算除法剩下的余数。判断一个数是奇数还是偶数、判断一个年份是不是闰年都是靠%完成的以后你会发现它在很多场景下出镜率极高。顺便说一句7 / 3的结果末尾带了一串3333335。这是浮点数在计算机里二进制存储带来的精度问题不是Python特有的bug所有编程语言都有。日常使用影响不大做金融计算的时候才需要特殊处理D2阶段你知道这回事就行别纠结。3.2 比较运算符与逻辑运算符程序判断的依据程序之所以能“聪明”靠的就是比较和逻辑判断。比较运算符比较两个值返回布尔类型True或Falseprint(5 3) # True print(5 3) # False注意是两个等号 print(5 ! 3) # True print(3 3) # True这里有个经典翻车点判断相等要用双等号单个等号是赋值。我见过不止一个新手在条件判断里写if age 18程序直接报语法错误。你可以这样记在Python的世界里“把东西放进盒子”是“问两边是不是相等”是。逻辑运算符用and、or、not三个英文单词分别表示“并且”“或者”“取反”age 25 print(age 18 and age 60) # True两个条件都满足才为True print(age 18 or age 60) # False两个条件都False所以为False print(not age 18) # False先把True取反成False为什么要单独把逻辑运算符拿出来讲因为它是后面学if条件分支的基石。今天你不需要写分支但你需要先认识这些运算符的结果长什么样等到D3学条件判断的时候就顺理成章了。3.3 赋值运算符代码提速的小技巧除了普通的Python还提供一组复合赋值运算符。它的逻辑是先对变量做运算再把结果存回同一个变量。n 10 n 5 # 等价于 n n 5结果 15 n - 3 # 等价于 n n - 3结果 12 n * 2 # 等价于 n n * 2结果 24 n / 4 # 等价于 n n / 4结果 6.0第一次看到n 5的时候很多人会懵这写的到底是什么我建议你心里默默翻译成“把n加5再放回n里面”。这种写法在真实项目里非常常见因为它简洁、可读性好还能避免重复写变量名。今天熟练它后面写计数器、累加器的时候会特别轻松。3.4 运算优先级数学课的记忆还管用混合运算的优先级跟数学课学的差不多先乘除后加减括号优先幂运算最优先。Python完整的优先级顺序以后会遇到更多层级D2阶段记住这三条就够用了。真要说什么容易出错是写复杂表达式时“过于自信”。比如result 2 3 * 4 ** 2你能算出是50吗4 ** 2先算得16再3 * 16得48最后2 48得50。答案没错但我建议你在代码里不要依赖这种隐式顺序。拿不准就加括号2 (3 * (4 ** 2))虽然多敲几个字符但是一眼就能看懂也减少出错的可能。编程的首要目标是让人看懂其次才是让机器运行。4. 输入与输出程序和用户之间的第一座桥4.1 input()让用户开口说话到目前为止程序的流程都是单向的——代码里写了什么就输出什么。但真实世界的程序必须能接收用户输入input()函数就是用来干这个的name input(请输入你的名字) print(你好 name)运行以后程序会先在屏幕上显示提示文字然后停下来等待你输入。你敲完内容按回车输入的内容就以字符串的形式存进了变量name。这里有一个D2阶段最重要的知识点input()返回的一定是字符串。哪怕用户输入的是18Python也把它当成文本18不是一个数字。如果你试图直接拿它做算术运算就会报错age input(请输入年龄) print(age 1) # TypeError: can only concatenate str (not int) to str这个报错信息也许你现在还看不懂没关系记住结论就好input()拿到的数据要用之前先判断类型、必要时做转换。4.2 print()输出的花样比你想象的多print()除了打印一个值还能一次打印多个值中间用逗号分隔Python会自动用空格隔开name 小明 age 18 print(我叫, name, 今年, age)如果想自定义分隔符或者去掉末尾默认的换行可以这样print(a, b, c, sep-) # 输出a-b-c print(不换行, end) # 末尾不加换行 print(接着写) # 紧接着上一行输出这些参数不常用但关键时刻能救命。比如你想在一行里输出循环进度end就比默认换行舒服得多。4.3 f-string格式化输出的最佳选择如果你用字符串拼接来组织输出写多了就会发现又笨又容易错。很早就该拥抱Python 3.6开始支持的f-string用法就是在字符串前面加一个f然后用花括号把变量名嵌进去name 小红 score 92.5 print(f{name}的考试成绩是{score}分)花括号里甚至可以写表达式price 9.9 count 3 print(f总价{price * count}元) # 总价29.700000000000003元看到了吧浮点数精度问题在这里也会冒头。处理办法是给字段加上格式化控制比如保留两位小数print(f总价{price * count:.2f}元) # 总价29.70元: .2f的意思是“显示成浮点数保留两位小数”。这个语法第一次见会陌生但我跟你保证这一个技巧比花里胡哨的文档都实用以后写数据报告、做财务计算你会天天用到它。而且f-string的性能在Python 3.12之后还有明显提升老方法format()和字符串拼接都能被它替代你直接从最新最顺手的开始学就行。5. 类型转换给数据“换衣服”5.1 为什么非要转换类型因为不同类型的数据不能随便混用尤其是字符串和数字。你想让用户输入数字算出“明年年龄”直接相加报错转换一下就好age_str input(请输入你的年龄) age int(age_str) print(f明年你就{age 1}岁了)这还不够你完全可以把转换写得更紧凑age int(input(请输入你的年龄)) print(f明年你就{age 1}岁了)先转类型再存变量两件事合成一行代码干净利落。这是我个人非常推荐给新手的写法因为它在产生变量的第一刻就保证了变量的类型正确避免后面用的时候才发现弄混了。5.2 常用转换函数和必须知道的陷阱Python提供了几个内置的转换函数D2阶段掌握这三个就够函数作用例子结果int()转成整型int(18)18float()转成浮点型float(3.14)3.14str()转成字符串str(100)100几个高频坑提前帮你排掉坑一转字符串数字没问题转别的文本直接报错。int(abc) # ValueError: invalid literal for int()...坑二int()能处理带小数的字符串吗不能。int(3.14) # ValueError虽然看着像数字但int()不接受小数点字符串 int(3.14) # 结果是3直接截断小数不是四舍五入这个区别很多人会搞混。建议记住一句话int()只处理“整数字符串”或“数字”处理浮点数时直接砍掉小数部分。坑三True和False也能转成数字。print(int(True)) # 1 print(int(False)) # 0平时用不到但看别人代码时遇到别觉得奇怪这是布尔类型的标准行为。6. 综合实操两小时亲手写出第一个“真正有用”的程序学编程不看代码光看概念必忘。这一节我准备了两个完整的实战案例请你务必亲手敲一遍不要复制我的代码。敲的时候注意感受每一行在干什么哪怕敲完运行报错也别慌照着报错信息改。6.1 实战一华氏温度与摄氏温度互转温度换算是练手语言元素的经典案例因为它公式清晰、数据类型齐全、还有用户交互和格式化输出把所有知识点都串起来了。需求很简单输入摄氏温度输出对应的华氏温度。换算公式是F C * 9 / 5 32。celsius float(input(请输入摄氏温度)) fahrenheit celsius * 9 / 5 32 print(f摄氏{celsius:.1f}度对应的华氏温度是{fahrenheit:.1f}度)运行效果大概是这样的请输入摄氏温度25 摄氏25.0度对应的华氏温度是77.0度注意我在input()外面套了一层float()。为什么因为输入的温度很可能是25.6这种小数用int()转会直接报错或者截断用float()就能兼容整数和小数两种输入。遇到“既能输入整数又能输入小数”的场景优先用float()这是职业选手的默认选择。6.2 实战二商品总价计算器第二个案例模拟一个很常见的场景超市收银。用户输入商品的单价和数量程序算出总价。这属于最简单的“输入-处理-输出”业务逻辑是以后所有业务系统的最小原型。unit_price float(input(请输入商品单价)) quantity int(input(请输入购买数量)) total unit_price * quantity print(f商品总价{total:.2f}元)这里单价用float()数量用int()——因为数量不可能是小数。这就是刚才强调的“按数据类型选择转换方式”的实际体现。单价和数量的类型选对了乘法运算才符合预期选反了比如数量变成3.0虽然也能算出结果但总价显示成29.70和29.70看着一样可背后的数据形态不一样后面做条件判断时容易出意外。顺手还能加一个需求如果总价满100元就送一个小赠品并提示用户。虽然D3才正式学条件判断但你已经可以用布尔变量先感受一下is_special total 100 print(f是否获得赠品{is_special})输出会是是否获得赠品True或False是不是已经有“程序在判断”的雏形了6.3 这两个案例的扩展思路做完一定要做扩展练习别做完就扔。我建议你按下面的梯度给自己出题给温度换算加一个反向换算输入华氏温度输出摄氏温度公式是C (F - 32) * 5 / 9给商品计算器加上折扣逻辑满100打9折满200打8折先用布尔运算去组合条件把总价结果同时输出“元”和“角分”两种单位练习格式化控制故意输入一个“abc”字符串记录程序报什么错再想想怎么避免。每做完一个扩展你对语言元素的理解就深一层。这套“案例改造自问自答”的学习方法我建议用在整个100天计划里效果远比跟着教程敲一遍强得多。7. 今天最容易踩的坑提前帮你排雷7.1 高频报错速查表D2阶段运行代码报错是日常不是异常。我把最常见的报错整理成了一张速查表遇到问题可以对号入座报错信息出现原因解决办法NameError: name xxx is not defined变量名拼写错误或没定义就使用检查变量名拼写一致确认赋值语句已执行TypeError: can only concatenate str字符串和数字用拼接用str()转换数字或者改用f-stringValueError: invalid literal for int()int()转换了非数字字符串先确认输入确实是数字或用float()兼容小数SyntaxError: invalid syntax语法错误最常见是少了括号、冒号、引号不匹配顺着报错行号找重点检查标点符号IndentationError: unexpected indent多打了空格或Tab缩进保持同一代码块缩进一致Python通常用4个空格7.2 新手最容易犯的5个错误总结我这些年陪新手排查的经验下面这些错误出现频率最高你也可以拿来自查第一和混用。是赋值是判断相等。判断条件里用了单等号要么报语法错要么逻辑完全不对。这个错误从D2开始会一路陪伴你很久越早记住越省事。第二input()结果忘记转换。拿到用户输入直接去做运算报TypeError。记住一个口诀输入默认是字符串要算数先转换。第三打印多个值时拼错。print(总价 total)字符串加数字直接报错。我建议你从一开始就习惯用f-string它自动帮你处理类型问题省心得多。第四缩进混乱。Python用缩进区分代码块现在你可能只在if里遇到但缩进问题会伴随整个生涯。建议编辑器里把Tab键自动替换成4个空格能省掉一半缩进报错。第五变量名乱起。我见过有人把数字类型叫text字符串类型叫number代码自己都能被自己骗了。命名不要求多文雅但至少要诚实表达内容。7.3 提高学习效率的三个小建议走到D2你大概率已经感受到自学的难点不是“看不懂”而是“记不住”和“坚持不下去”。分享三个亲测有效的方法先敲后读。很多教程喜欢先讲理论再给代码但我的经验是反着来先把代码敲出来运行成功再回头看理论解释。你会发现概念瞬间变具体。代码作为一种知识身体记忆非常可靠。刻意犯错。故意把代码改成错误版本观察报错信息。比如把int(abc)放在代码里跑一次亲眼看看ValueError长什么样。报错信息就像游戏里的关卡提示多死几次就熟悉套路了。一天一个小程序。不用贪多每天写一个能运行的小程序就足够。D2的两个实战案例你今天写明白明天学完新东西回来把它改造一遍后天再学新东西再改造一遍。同一个程序反复迭代三次比写三个一次性程序有效得多。说句实在话D2的内容在Python的版图里确实是最基础的一块但恰恰是这块地基决定你后面能盖多高的楼。我自己当年就是在学到类型转换的时候栽了跟头用input()拿了个数字却怎么都算不对白白卡了一晚上。那次之后我学老实了每写一行代码都先问自己这个变量是什么类型它的运算结果又是什么类型带着这个问题往后学你会发现后面所有的坑今天这篇文章都已经帮你铺好了路。
📝

华诺云谱内容团队

资深建站顾问 · 行业研究员

10年+企业数字化服务经验,专注智能建站、SEO优化与品牌营销,持续输出建站技巧、行业洞察与营销干货,已帮助5000+企业实现数字化增长。

你可能需要的服务

订阅华诺云谱资讯周报

每周一封,精选建站技巧、SEO与营销干货,直达邮箱。已有 8,000+ 企业主订阅,助你少走弯路。

↑