Python新手在PyCharm写if总报错?5个坑90%人踩过,看完修复
前言
写Python的if语句时,新手常踩5个坑:忘写冒号、缩进不对、用了中文标点、条件写反了、变量没定义。PyCharm报错变红别慌,看懂提示就能改。本文手把手教你识别这些错误,让你告别代码一运行就崩溃的绝望
if 语句的概述?
if语句是代码的"分岔路口":条件成立就执行,不成立就走else。它让代码会"思考",是实现登录验证、库存提醒等功能的基础,也是从简单脚本到复杂程序的必经之路。
准备工作:在Pycharm中创建 Python 文件
打开 PyCharm 后,你会看到如下图所示的启动界面。
这时候你有两种选择来创建 Python 文件。
第一种方式:先新建项目(Project),然后在项目里新建 .py 文件并命名。
第二种方式:在已有项目中直接新建 .py 文件并命名。
如果你不会创建.py文件,请阅读如下文章。
如何使用PyCharm?0基础新手必看!七大核心功能+越用越有意思
这两种方式有什么区别吗?
先建项目 = 搭完整仓库,有独立环境,适合正经开发或系统学习。直接加文件 = 随手记笔记,适合快速测试代码。给.py文件和项目文件夹起名时要见名知义,如"python爬虫"别叫"aaa",方便后期查找。
接下来,我带大家熟悉一下 PyCharm 的使用界面。具体的功能区域介绍请参考下面这两张示意图,我在图中讲解每个区域的作用。
if 语句入门
语法讲解
if条件表达式:# 条件为真时执行的代码语句块Python中if语句格式:if 条件:后接缩进代码。条件为真则执行,为假则跳过。冒号不可少,缩进区分代码块,是Python特有语法。
例子:判断手机电量是否充足
我用一个超简单的例子带你看懂,你也可以跟着敲一遍。
battery=50#先定义变量,把值50赋给定义好的变量,为了表示当前手机电量ifbattery>0:#然后判断定义后的变量的值是否大于0,即判断手机电量是否大于0print("手机电量充足。")#如果满足定义好的变量的值大于0的条件,即满足手机电量大于0,那么就显示手机电量充足。运行结果如下图所示。
把battery改为0时条件不成立,如下图所示,代码跳过无输出。
避坑指南(新手必看)
先定义变量且给变量赋值;if小写;条件后加冒号;语句缩进;相等用==。
条件二选一:if 与 else
语法讲解
想象你在玩一个"二选一"的游戏:如果满足某个条件,就做A事;否则就做B事。Python里的if和else就是这个逻辑。
基本结构长这样:
if条件:执行这里(条件为真时)else:执行这里(条件为假时)什么是布尔值? 就是"真"或"假":True(真)或False(假)。比如age >= 18这个判断,结果要么是真(成年了),要么是假(未成年)。
下面我举例子来讲解if-else,你也可以跟这敲一下代码并试着运行。
例子:今天要不要带伞?
# 定义一个变量,存储天气情况,变量类型为字符串weather="下雨"# 判断:weather是否是"下雨"?== 表示"等于",用来比较两个值是否相同ifweather=="下雨":print("记得带伞出门!")# 如果条件成立(为真),执行这行代码,前面有4个空格缩进else:print("今天不用带伞。")# 如果条件不成立(为假),执行这行代码运行结果如下图所示。
试试把 weather = “晴天”,看看会打印哪句话?
改变量看效果: 把weather = "下雨"改成weather = “晴天”,如下图所示,程序就会跳过if下面的代码,直接去执行else下面的print(“今天不用带伞。”)。
避坑指南(新手必看)
忘记冒号:if和else行尾必须有英文冒号:,写成分号;或中文冒号:都会报错。
缩进错误:这是新手最常犯的错!print前面一定要有空格(按一下Tab键或4个空格),不能顶格写,也不能和if对齐。
else单独写:else前面必须有对应的if,不能孤零零自己存在。
混淆=和==:= 是用来给变量赋值的(如age=20),==是用来判断是否相等的(如age == 20),判断条件时用错程序会出bug。
条件表达式:除了比较数字,还能判断字符串、布尔值等,只要结果是True或False都行。
记住:if是入口,else是备胎,缩进是生命线!
多分支判断:if-elif-else
语法讲解
Python条件判断让程序"看情况办事"。if意思是"如果",条件成立就执行代码。elif是"否则如果",前面不满足时判断新条件。else是"否则",前面都不满足时执行。Python用缩进(4个空格)区分代码块。
if-elif-else的基本结构如下。
if条件表达式:# 条件为真时执行的代码语句块elif条件表达式:#上述条件不满足,这个条件却满足执行的代码语句块else:#上述所有条件都不满足的代码语句块下面我通过例子来讲解if-elif-else,你可以手敲代码并试着运行。
案例:学生成绩评级
my_score=85# 定义变量来存储分数ifmy_score>=90:# 判断≥90?85不满足print("你的成绩优秀")# 跳过elifmy_score>=80:# 判断≥80?满足!print("你的成绩良好")# 执行这行elifmy_score>=60:# 已经满足,跳过print("你的成绩及格")else:# 已经满足,跳过print("你的成绩不及格")流程:85分问"够90?"不够→"够80?“够了→打印"良好”,后面停止。运行结果如下图所示。
避坑指南(新手必看)
必须缩进。
判断用==不是=。
elif不能写成else if。
小范围条件放前面。
别忘了冒号:。
避坑指南:if 语句 5 大常见错误
遗漏末尾的冒号 :
如下图所示,未在if 条件表达式后面加冒号,会出现SyntaxError错误。
应该在if 条件表达式后面加冒号,如下图所示。这一点新手写代码着急时容易忘。新手应该在if 条件表达式写完后检查冒号是否加了。
IndentationError: 缩进错误
如下图所示,在if 条件表达式下面执行的语句的前面没有缩进,直接报IndentationError错误。
Python 靠缩进区分代码块。这一点新手容易忽略,怎么办?没事,等打完if语句代码后用快捷键Ctrl + Alt + L自动格式化代码。
中英文标点混用
如下图所示,if 条件表达式后面的冒号是中文标点符号,不是英文标点符号,就报SystaxError错误。
这是新手打代码时常犯的错误。怎么预防呢?等分别打完if 条件表达式和冒号后,检查冒号下面是否有红波浪线,如果有,那么红波浪线就是中文标点符号,否则就是英文标点符号。
条件判断逻辑颠倒
如下图所示,if后面的条件表达式逻辑混乱,所以没有输出结果。
把if后面的条件表达式的逻辑校正后如下图所示。
新手打代码时急于验证功能,没有检查意识,所以就把if后面的条件表达式的逻辑颠倒了。这怎么避免呢?我就是在打完if 条件表达式后,检查一下条件表达式的逻辑,或者大声朗读if 条件表达式的代码,这样就不会出现条件表达式逻辑颠倒的问题了。新手可以用我的方法试试。
变量未声明就调用
如下图所示,没有定义变量就进行if条件判断,会出现NameError错误。
在if语句前,加上定义变量的语句,运行后如下图所示。
新手打代码时,想到哪打哪,没有顺序思维,所以就容易犯变量未定义就进行判断的错误。这怎么杜绝呢?新手打代码前,应该先构思如何先声明后使用的顺序编打代码,然后检查一下代码是否按先声明后使用的顺序打。或者新手先写完所有的变量声明,再写逻辑。
总结
本章详解if、if-else、if-else-elif语法,盘点新手写if语句5大易错点:缩进错误、变量未定义、遗漏冒号、中英文标点混用、条件逻辑颠倒,附避坑指南。建议新手多敲多练,熟能生巧。
相关阅读
如果你对库存管理和开发库存管理系统感兴趣,那么请阅读以下文章。
Python新手&库管:IF语法实战终结金额出库库存3错
专栏下篇剧透:在PyCharm写Python字典:新手必避7大坑
专栏下篇预告:《在PyCharm写Python字典:新手必避7大坑》。
如果你觉得本文有用,那么请你动一动你宝贵的手指进行点赞、收藏、关注。我将持续更新PyCharm实战内容+Python基础语法痛点突破的干货,带你少走弯路。如果你有疑问,那么欢迎你在评论区留言。
