概述猜数游戏是一个很经典的例子,要开发一个完整的猜数游戏,需要用到编程中的变量、循环、分支,获取用户输入等基本知识,还要对逻辑运算有一定的了解。 当然还可以更加复杂比如加入时间限制,因为复杂度高一些就不用了。 分解其实各国在中小学引入编程教育,更多的是让孩子们从以计算机的方式来考虑问题,培养逻辑思维能力和编程思维,并非是要把所有人都培养成程序员。 那么我们就把这个任务分解为以下步骤:
下面我们按照这个思路来实现这个程序 具体实现积分变量首先我们要新建一个变量,保存分数,并且初始化为0分 新建score变量 讲变量值设置为9 从现在开始我们就要感受到python的简洁之美了,在scratch我们新建积分变量并设定为0,需要好几步操作,而在python中只需要一句命令就好了 score = 0 这也是高级语言的特点,Python作为高级语言,代码量可以说是Java的十分之一,c语言的百分之一;当然对于初学者来说还是是诚然比较容易理解 声明积分变量之后,我们就要生成要猜测的目标数字了. 生成目标数字目标数字是个随机数,是一定范围之内的随机数,所以我们先来看Scratch和Python都是怎么生成随机数的 Scratch随机数积木块 这次Python就需要费点脑筋了,Python有许多别人写好的完成特定功能的代码,成为代码库,生成随机数的代码库叫做random,换句话说我们要用生成随机数的功能,就需要引入random库,然后库中有函数,调用对应的函数就可以完成相应的功能 我们要用到的是 好,背景交代完毕,下面我们就上手来实现生成随机数 target变量 然后把target的值设定为1到10之间的随机数 接下来,我们看Python是如何实现的 import randomscore = 0target = random.randint(1, 10)print(score, target) Python的实现 现在,积分变量也有了,也生成要猜测的数字了,接下来就要提示用户猜数字了,用户不输入数字也就没得玩了,不过似乎可以写一个猜数的机器人,用随机数来猜测,这又是另外一个程序了 获取用户输入我们还是以Scratch为例进行讲解,在Scratch获取用户输入要用到侦测代码分类中共的两个代码块 得到用户的输入 获取用户输入 当然我们需要新建一个变量,并把用户的回到放到这个变量里 获取用户输入 而Python中则要用到 import randomscore = 0target = random.randint(1, 10)print(score, target)guess_number = int(input('请输入你要猜的数字:')) 判断用户输入对错在这里我们就要用到分支结构了,所谓分支结构简单的来说就是满足某个条件的时候做某个事情,比如你高考分数大于700,只要你运气不是特别被,长得不是特别丑,也不作死基本就能去北大清华了;而如果天气预报说明天下雨的话,十有八九你是会选择带伞出门的,毕竟有的人喜欢淋雨不是. 这里我们就要进行判断,如果用户输入的大于目标数,就提示大了,否则提示小了,这里要用到控制模块中的分支模块 分支模块
比大小 这里涉及了逻辑运算和分支结构两个知识点,大家还记得吗? 猜数程序结构 这样,用户第一次输入的时候,会判断用户输入的数也就是猜的数跟目标数字孰大孰小,如果大了就会提示'大了',如果相等就恭喜,如果小了,就提示'你猜的数太小了',问题是实际猜测中很难一次就猜中的,所以我们需要反复不停的猜测,如果猜错了就要重新获取用户的输入,一直到猜对 不停猜测知道猜对
if expr: 注意到了吗,expr和else后面的语句是有四个空格的,同时:冒号是必不可少的,expr代表的是逻辑表达式,关于逻辑表达式呢,随便找一本关于编程的书都能够讲个五六七八页,简单的说就是大小相等的判断,这里呢就是判断我们猜的数和目标数的大小 import randomscore = 0target = random.randint(1, 10)print(score, target)guess_number = int(input('请输入你要猜的数字:'))if guess_number > target: print('too big')elif guess_number = target: print('right')else: print('too small')guess_number = int(input('请输入你要猜的数字:')) 猜数字
循环日常生活中,我们会说把课文抄10遍,我们就知道需要重复执行抄课文10次,那么在Scratch是有循环的结构的 重复执行
重复执行直到
改动之后的程序 我对程序做了一些修改,改动了哪里?为什么?这个程序是否可以继续优化呢? 这里是分割线,思考上述问题5分钟.然后我们来看Python要怎么做: while expr: pass 下面是代码 import randomscore = 0target = random.randint(1, 10)print(score, target)guess_number = int(input('请输入你要猜的数字:'))while guess_number != target: if guess_number > target: print('too big') elif guess_number == target: print('right') else: print('too small') guess_number = int(input('请输入你要猜的数字:'))print('恭喜你蒙对了') 程序运行结果 判断用户是否继续玩 |
|
来自: 小曾4om1ilfwen > 《scratch》