例,猜数游戏:
课本上有个例题要求:在程序中预设一个的整数,e.g. 0到9,让用户通过键盘输入所猜的数,如果大于预设的数,显示“遗憾,太大了”;小于预设的数,显示“遗憾,太小了”,如此循环,直至猜中该整数范围,显示“预测X次,你猜中了!”其中X是用户输入数字的次数。
没有找到答案,并且费时较多,故记录解体思路如下:
解决的关键点在于:循环在满足停止条件前,用户可以连续输入而程序不推出;
思路&方法:
首先,使用if,elif和else把循环列出来,
然后,将程序自己套入到if和elif语句中,使得在输入的数值落入0到9前,不断自我循环;
最后,解决问题。
代码及注释如下:
def xxx(b): # 写出循环,并将其 起名/定义 为 “xxx(b)”; a =int(input('请输入数字')) # 运行后窗口提示“请输入数字”,并将其格式由 str/字符串 转换为 int/整数; if a > 9: print('遗憾,太大了') b+=1 # b代表输入的次数。等价于b=b+1,表示用户输入的次数,即把右边b+1的值,赋给(新的)b; xxx(b) # python读到该处,会重新开始我们定义的xxx(b)条件判断循环; elif a < 0: print('遗憾,太小了') b+=1 xxx(b) else: print('预测{}次,你猜中了!'.format(b+1)) b=0 # 运行时,b=0,此时用户还没有进行任何输入。 xxx(b) # 作用是,让python运行我们开头定义的循环xxx(b)
注:或者将 a 的取值改由系统random()随机产生。
改动1:a= randint(0,100) # 随机产生一个0到100之间的数,包括0和100;
改动2:增加 "from random import *"语句。