今天是我学习 AI 的第二天。
如果说第一天学的是 Python 里的运算符和字符串,那么第二天,我开始进入两个真正让程序“动起来”的知识点:
分支 和 循环。
这两个词看起来很基础,但它们其实很重要。因为从这里开始,程序不再只是机械地接收输入、输出结果,而是开始具备两种能力:
这也是写程序最核心的基本功之一。
今天我做了 3 道题,分别是:
输入年份,判断该年是否为闰年
输出 10 行星号,每一行比上一行多一个星号
输出所有的水仙花数
题目都不难,但每一道题背后,其实都在练一种很基础、很关键的编程思维。
第一题:判断闰年
题目要求很明确:
输入一个年份,判断该年是否为闰年。
闰年的条件是:
能够被 4 整除,但不能被 100 整除
或者能够被 400 整除
对应的 Python 代码是:
year = int(input("请输入年份:"))if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0): print("是闰年")else: print("不是闰年")
这道题看起来是在做“日期判断”,但本质上,它练的是 条件分支。
也就是:
满足条件,走一个分支;不满足条件,走另一个分支。
这里我重新熟悉了几个基础点:
if...else... 的使用
% 取余判断整除
and、or 逻辑运算符的组合
这道题还提醒我一点:很多时候,程序里的规则并不是单一条件,而是 多个条件组合起来的逻辑判断。
这和真实业务也很像。现实中的业务判断,很少是“一个条件决定一切”,更多时候都是多条件组合。
第二题:输出 10 行星号图案
第二题是输出下面这样的内容:
*******************************************************
对应代码很简洁:
for i in range(1, 11): print("*" * i)
这道题主要练的是 循环。
for 循环的意思就是:让程序按照某个规则,重复执行一段代码。
这里的逻辑不复杂:
第 1 次循环,输出 1 个星号
第 2 次循环,输出 2 个星号
第 3 次循环,输出 3 个星号
...
第 10 次循环,输出 10 个星号
其中 * 这个字符串乘法我觉得挺有意思:
"*" * 3
输出就是:
***
这让我感受到 Python 的一个特点:很多操作写起来非常直接,非常适合快速表达。
这道题虽然简单,但它让我真正开始体会到:
循环,本质上就是让程序自动重复做事。
以后无论是遍历列表、批量处理数据、循环调用接口,背后都离不开循环。
第三题:输出所有的水仙花数
第三题是输出所有的水仙花数。
什么叫水仙花数?
就是一个三位数,它的各位数字的立方和,等于它本身。
比如:
153 就是一个典型的水仙花数,因为:
1³ + 5³ + 3³ = 153
对应代码如下:
for num in range(100, 1000): a = num // 100 b = num // 10 % 10 c = num % 10 if a**3 + b**3 + c**3 == num: print(num)
这道题比前两题稍微综合一点,因为它同时用到了:
这里最关键的一步,是把一个三位数拆成百位、十位、个位。
比如数字 153:
百位:153 // 100 = 1
十位:153 // 10 % 10 = 5
个位:153 % 10 = 3
拆出来之后,再判断:
a**3 + b**3 + c**3 == num
如果成立,就说明这个数是水仙花数。
这道题让我有一个比较深的感受:
程序其实特别擅长做“穷举 + 判断”这类事情。
如果靠人脑一个个算 100 到 999 哪些是水仙花数,会很烦。但程序只要写好规则,它就会老老实实全部跑一遍,然后把结果找出来。
这其实已经有一点“让机器代替人做重复判断”的味道了。
第二天学完,我对分支和循环的理解更清楚了
今天这三道题做下来,我对 Python 里分支和循环的理解,比昨天更扎实了一点。
我会发现:
分支,是让程序会判断
比如闰年题。程序需要根据条件不同,输出不同的结果。
循环,是让程序会重复
比如星号题。程序按照规则,一次一次把结果打出来。
分支 + 循环结合起来,程序就开始变得“像程序了”
比如水仙花数题。先循环遍历所有三位数,再在循环里做条件判断,最后输出符合要求的数。
这其实已经是很多程序逻辑的雏形了。
作为一个 Java 程序员,我学 Python 的一点体会
我本身是 Java 出身,所以在学 Python 的时候,会不自觉拿两者做对比。
这两天最大的感受就是:
Python 写起来真的很轻。
很多逻辑,如果放在 Java 里,可能要写更完整的类型声明、类结构、方法定义。但在 Python 里,它更适合快速把逻辑本身表达出来。
这也让我越来越理解,为什么 AI 生态里大家这么喜欢 Python。
因为在很多场景里,它不是“更高级”,而是“更高效”。
尤其是:
Python 的表达成本确实低很多。
今天的学习总结
今天虽然只做了 3 道题,但我觉得很值。
因为它们刚好对应了 3 个很基础、也很核心的能力:
1. 条件判断
让程序根据不同情况做不同处理。
2. 重复执行
让程序自动完成重复性的任务。
3. 组合使用
循环里套判断,判断里处理数据,这才是程序真正开始解决问题的方式。
很多人学编程时,容易觉得基础题太简单。但我这两天越来越觉得,真正重要的,不是题目难不难,而是你有没有借这些题把基础打牢。
今天只是第二天。内容不深,但很关键。
后面继续往下学函数、列表、字典的时候,我会更明显地感觉到:前面的这些基础,其实都是在为后面铺路。
最后
第二天,我学的是 分支和循环。
听起来很基础,但我越来越觉得,编程很多时候就是这样:
先让程序会算,再让程序会判断,再让程序会重复,最后再让程序组合起来解决更复杂的问题。
这两天学下来,我没有急着去碰那些很大的概念,而是先把最基础的东西重新过一遍。
对现在的我来说,这种节奏是对的。
先把地基打稳,后面再往 AI 的方向走,心里才更踏实。
如果你也是传统开发出身,也在关注 AI,也在尝试重新搭建自己的技术体系,欢迎一起交流。