《从信息学发展史到 Python 循环:我的一天学习记录》
今天学的东西比我想象中要连贯。
上午先看的是信息学的发展历史。以前我一直觉得计算机发展史离我很远,直到我读到图灵、ENIAC 和冯·诺依曼,才慢慢明白计算机不是突然出现的,而是人类为了处理越来越多信息一步一步造出来的。图灵提出可计算理论的时候,很多人可能还没有意识到,那些纸上的问题最终会变成今天的人工智能。ENIAC 是早期的电子计算机,体型巨大,处理能力却远不如现在的一台手机。后来冯·诺依曼提出把程序和数据一起存进存储器,计算机才真正变成可以根据指令自动运行的工具。读到这里我有点触动,原来我们今天写的每一行代码,都建立在这些很早就被想清楚的问题之上。
下午开始学进制换算,一开始我觉得挺枯燥,明明写十进制也很方便,为什么非要转成二进制。后来才明白,计算机的电路只能表示高电平和低电平,所以用 0 和 1 来表达信息是最自然的方式。比如 13 这个数,可以拆成 8 加 4 加 1,写成二进制就是 1101。我试着把几个十进制数换到二进制,又试着把二进制数换回来,慢慢找到了一点手感。十六进制也很有意思,短短两位就能表示 255,写起来比一长串 0 和 1 舒服得多。学完之后我突然觉得,进制换算不是单纯的计算题,而是我在学习怎么理解计算机的语言。
晚上打开 Python,想把自己学的东西真正用起来。我先是写了这样一段代码:
for i in range(1, 6): print(f"第{i}次循环")运行之后,程序输出了五次内容。我第一次真切地感觉到,循环不是书上的概念,而是让电脑帮我重复做事情。range(1, 6)包含 1,但不包含 6,这一点如果不运行代码,可能很难记得牢。后来我又试着用循环计算 1 到 100 的和:
total = 0 for i in range(1, 101): total += i print(total)当结果真的输出出来的时候,我觉得特别有成就感。以前我以为输出就是最简单的东西,今天才意识到,print()其实是程序和我的对话窗口。没有输出,程序在电脑里做了什么我根本看不见;有了输出,我才能一步步确认代码是不是按我想的那样运行。
这一天过完,我发现自己对计算机和 Python 的喜欢更具体了。以前觉得人工智能是很遥远的事,现在明白它也是从二进制、循环、输出这些很小的地方慢慢长出来的。我不想一下子学得很快,只想每天认真弄懂一点,再把这些想法记下来,等到以后回头看,应该会很有意思。