学了就忘没动力?跟着这个游戏项目走,Python语法轻松刻进脑子
我教Python快十年了,听过最多的一句话是“老师,我学了就忘”。
翻开笔记,书上的变量类型、循环结构写得密密麻麻。一到写代码,脑袋就空了。这不是你笨,是学语法本身太枯燥了。记忆需要场景,需要感受,需要手和脑一起动。
我们换个玩法。不背语法,用Python做一个猜数字游戏。做完这个,你记住的东西比背三天书都多。
游戏目标:程序随机生成一个1到100之间的数字,你输入数字猜,程序告诉你猜大了还是猜小了,直到猜中为止。
第一步:先让程序动起来。打开你的编辑器,随便在哪写一行代码:
print('我想了一个数字,你猜猜是几?')
运行它。看到屏幕上有字了?这就是你的第一个成果。你不需要记“print”是干什么的,你只需要知道它能在屏幕上显示东西。
第二步:让电脑“记事情”。电脑要记住随机生成的数字,也要记住你输入的数字。怎么记?用变量。
target = 50
这行代码的意思是:给电脑一个盒子,盒子上贴了“target”标签,里面放了50。你写target = 50的时候,电脑就像一个听话的箱子,帮你保管着这个数字。以后你只要叫“target”,它就帮你拿出50。
第三步:真的让电脑随机生成数字。不能每次都用50,多无聊。我们让电脑自己乱选一个:
import random target = random.randint(1, 100)
第一行是跟电脑说“我要借用你的随机工具包”。第二行是从工具包里拿出“生成1到100之间随机整数”这个工具,结果存到target里。你不需要理解“import”的每一个细节,你只要知道这样写就能得到一个1到100之间的神秘数字。
第四步:让人能和电脑说话。光有数字不行,我们要让电脑能看懂你输入的数字。
guess = int(input('输入你猜的数字:'))
input()负责让你打字,但打字出来的是文字,不是数字。文字和数字在电脑里不能直接比较。“1”这个文字不能跟数字1划等号。所以用int()包一下,把文字“1”变成数字1。这就是类型转换,你不需要背这个名字,只要记住“从键盘拿到的东西要先变成数字”这个感觉。
第五步:让电脑会“判断”。你得让电脑比较你猜的数字和它藏着的数字。
if guess > target:
print('猜大了')
if guess < target:
print('猜小了')
if guess == target:
print('猜对了!')看到没?代码长得就像你说话一样。“如果猜的数字大于目标数字,就打印‘猜大了’”。语法就是“if”后面跟条件,后面加个冒号,然后缩进写要执行的代码。记不住缩进?没关系,Python强制你缩进,你写错了它会报错,你改几次就记住了。
第六步:让程序反复问,直到猜对。现在你的程序只能问一次。你得让它在没猜对的时候一直问。用循环:
while True:
guess = int(input('输入你猜的数字:'))
if guess > target:
print('猜大了')
if guess < target:
print('猜小了')
if guess == target:
print('猜对了!')
breakwhile True意思是“永远重复做下面的事情”。break意思是“赶紧停下来”。你想想,这多像你跟朋友打赌:“你一直猜,猜对了就停”。
第七步:加个小乐趣。给玩家数猜了多少次吧:
import random
target = random.randint(1, 100)
count = 0
while True:
guess = int(input('输入你猜的数字:'))
count = count + 1
if guess > target:
print('猜大了')
if guess < target:
print('猜小了')
if guess == target:
print(f'猜对了!你一共猜了{count}次')
break看到没?count = count + 1就是每次猜完,把计数器加1。print(f'...{count}次')这种写法叫格式化字符串,你不用理解为啥叫这个,你只需要知道在引号前面加个f,然后用花括号包住变量名,就能把数字嵌进句子了。
到这里你已经有自己的游戏了。试着运行它。你写了几行代码,就把变量、条件判断、循环、输入输出、模块导入都用了一遍。这些不是你背下来的,是你的手和眼睛一起走了一遍流程。
如果你觉得简单,可以自己改两样东西:把随机范围改成1到1000,让游戏更难。或者在猜对之后问一句“还要再玩吗?不想玩就输入n退出”。到网上搜一下“Python猜数字游戏改进”这种关键词,能搜到很多网友的版本。看别人的代码,改自己的代码,比看书管用多了。
好多学生跟我说,做完这个小游戏,一星期后还能记起自己是怎么一步步写出来的。因为代码是你亲手敲的,每个句子都带着你的思考。你的脑子更喜欢记住自己做过的事,而不是别人写的笔记。
学Python不需要天赋,需要你手边有一个你愿意玩的项目。这个猜数字游戏就是你的第一个项目。做完它,让语法变成肌肉记忆。下次别说你学不会,你只是还没找到动手的点。