今天学习了 Python 里的流程控制语句,主要分为分支 if 语句和循环 for、while 语句,同时对比了 Java 的写法,收获挺多,整理一下学习内容。
首先是分支语句 if。程序默认是从上到下顺序执行的,if 可以让代码根据条件,选择走不同分支。
Python 里用if、elif、else,依靠缩进划分代码块;而 Java 是用大括号{}包裹代码。课堂上写了一个课堂答题计分的小例子:输入题目、正确答案和学生答案,判断学生答对加分、答错扣分,else 作为兜底分支。这里也发现一个知识点:elif 是依次判断条件,条件成立就执行对应代码。
然后是循环结构,有 for 循环和 while 循环两种。
for 循环适合知道循环范围、遍历内容的场景。我们先用它遍历字符串,逐个取出字符打印;又学习了range()函数,range 是左闭右开的规则,range(start,stop,step),stop 这个数字是取不到的。用 range 实现了打印 0 到 4、3 到 9、0~10 之间偶数的练习。
除了直接遍历字符串,也可以配合 range + 下标去访问字符串里每一个字符,两种写法效果等价。
while 循环是先判断条件,条件满足才执行循环体。我们写了两个 while 案例:第一个遍历字符串,定义一个下标变量,不断自增,直到下标超过字符串长度就停止;第二个是累加求和,计算 1 到 10000000 的总和。while 适合不知道循环多少次,只看终止条件的场景。
简单总结三者区别:
if 分支:做选择,只执行一次;
for 循环:适合确定范围、遍历序列;
while 循环:条件满足就重复执行,先判断后执行。
写代码的时候也踩了小坑,比如 while 求和一开始忘记单独定义总和变量,还有 range 左闭右开很容易写错边界,end=""可以让 print 输出不换行,这些细节都需要多敲代码熟悉。
流程控制是写代码的基础,学会分支和循环之后,程序不再是死板的顺序执行,可以实现判断、重复运算,后续还要多练习巩固。


