Python练习题详解之while循环(⼩⽩友好)
Python练习题详解之while循环(⼩⽩友好)
你好!欢迎来到Python练习题详解系列。为了让⼩⽩(也就是我本⼈)更好的理解代码,打好编程基础,我决定仔细地解说⼀些练习题。欢迎观看!奥利给!
在开始练习题详解前,我们来复习⼀下,while究竟是什么东东呢~
知识点:
while循环,在给定的判断条件为 true 时,执⾏循环体,如果不符合条件,则退出循环体。
看完了概念,让我们马上开始做题吧!
题⽬1:猜数字
要求:系统随机⽣成⼀个1-10之间的数字,玩家来猜,猜错了系统会提⽰⼤了还是⼩了,每局有三次机会,机会⽤完则游戏结束。
思路:
要求随机⽣成,所以应该 import random,并⽣成⼀个变量secret来代表这个随机⽣成的数字。python⾥⾯随机⽣成⼀个整数的⽅法是 random.randint(最⼩值,最⼤值)。
要求玩家来猜,这说明我们应该设计⼀个让玩家输⼊的地⽅,也就是要⽤到input函数!input函数是从标准输⼊流中读取⼀个字符串。他有⼏种⽤法,这⾥有两种⽅法介绍给⼤家。
⽅法1: 也就是我的答案写的那样~ ⽤⼀个print函数开头,然后让input函数来读取这个玩家输⼊的字符串
⽅法2: 直接在input的括号⾥⾯写,把输⼊的字符串直接赋值给temp,int()的意思就是把temp的值转换成整数,然后再赋值给guess~
要求⼤和⼩有提⽰,对啦,你猜对了~这个简单的事情就交给我们的if函数吧~ 这⾥就不赘述啦
要求有三次机会,所以应该做⼀个while循环。循环⾥应该有⼀个可以控制次数的。所以在⼀开始把times变量设置为3,接下来进⼊循环的时候写⼀⾏代码:times = times - 1, 代表每次while运⾏,times都会减去1。这是因为在编程世界⾥⾯,等号的右边会被赋值给左边。也就是说,第⼀次运⾏,times = 2, 第⼆次运⾏,times = 1,第三次运⾏,times = 0.
机会⽤完则游戏结束,那么我们应该设置⼀个东东,让系统能做到,当times = 0,出现“机会⽤完”的提醒。怎么做呢?恭喜你,猜对啦,就是⽤⼀个if函数来实现这个简单的条件。就像第20⾏写的那样,我们告诉系统,当times = 0,就跟玩家说,机会⽤完啦,并告诉玩家,真正的答案是什么。注意!!
这⾥引出secret变量的时候要⽤逗号,⽽不是加号,加号就会失败啦!这是因为print函数⾥⾯字符串和变量不能⽤加号连在⼀起~
答案(仅供参考):
在这个while循环⾥⾯,有⼀个⼩巧思,⼀开始就设定⼀个guess等于0,然后while的条件是(guess 不等于 secret,和, times ⼤于0),所以⼀开始就让程序进⼊循环,进⼊循环之后来到第11⾏,我们去提取第七⾏输⼊的guess数字,然后运⾏下⾯的if函数。
这个if 函数的逻辑是这样的:(画图有点⿇烦,试图⽂字说明555,虽然画图真的很清晰)
如果猜对了- “哇你赢了” - “游戏结束”
如果猜错了 - 判断⼤⼩并给出结论 - 判断次数并给出“再试⼀次”或“机会⽤完” ,接下来有⼏种情况
如果重新输⼊猜对了- “哇你赢了” - “游戏结束”
如果重新输⼊猜错了 - 判断⼤⼩并给出结论 - 判断次数并给出“再试⼀次”或“机会⽤完”
如果机会⽤完-“游戏结束”
这⾥附上⼀个没有限制次数的答案,也不需要随机数的答案,是我男朋友⽺哥⼀开始写给我的,写的很好很简洁,(不愧是我的⽼师),可以加深我们对while循环对理解,我们⼀起来看看。
这个就是另外⼀个思路,⼀开始就判断玩家输⼊的等不等于我们设置的数字8,如果等于8,就直接win了,如果不等于,再引⼊while循环(把循环放在else⾥⾯)
这⾥重点来看倒数两⾏代码。由于while循环的意思是,当条件符合,他会⼀⾏⼀⾏的循环运⾏。
那么就会先运⾏⼀个if,然后给出⼤⼩的提⽰,然后出现⼀句,enter again:,让玩家再输⼊,也就是重新给guess赋值。
赋值好了之后⾃动来到while的那⼀⾏。此时,当这个guess的新值等于8,那就跳出了这个循环,来到最后⼀⾏:win。当这个guess的新值不等于8,那就继续运⾏这个循环。
看懂了吗~我的⼩伙伴!说了这么多,相信你也看累了吧~休息⼀下啦,回来之后让我们继续看看还有什么题⽬吧~
题⽬2:数字倒数
要求玩家输⼊⼀个数字,回车之后,系统⾃动⽣成⼀串连续的倒数。(eg. 输⼊7,回车按下之后,系统返回 7,6,5,4,3,2,1)
思路:
要求玩家输⼊⼀个数字,那就是要⽤到我们的input函数来读取玩家输⼊的数字啦,然后再⽤int来整型,再赋值给number。python新手代码你好
要求连续的倒数,我们怎么才能控制这个数越来越⼩呢, 聪明的你可能已经想到,我们可以让number = number - 1,那每次出来的number就会⽐上⼀个少1。
于此同时我们还要控制循环什么时候结束,所以我在while后⾯的条件上写,number⼤于0,⽬的就是为了让循环来到1的时候停⽌。答案:
题⽬3:数字正数shǔ
刚刚那道题是不是很简单呢,那么,如果我按下7,我想要1,2,3,4,5,6,7的正数⽽不是倒数该怎么办呢?
思路1:
正数的实现 在这⾥,我们出现⼀个问题,如果延续上⼀道题的思维,做⼀个number = number + 1,那是⽆法实现的,只会让数字越来越⼤。
那我们不妨试想⼀下,转变⼀下思维。是不是可以⼀个数,让他⼀开始等于1,在慢慢循环到最后的那个数呢。是的!
所以我们在这⾥做⼀个变量 i ,⼀开始先让 i = 1 。在循环的条件中,我们设 i ⼩于或等于 number的时候,循环开始。然后我们print ⼀个 i,再写⼀个 i = i + 1 的式⼦来实现 i 的递增。那么,他就会 1, 2 ,3,4 ……直到 input 的那个 number。
答案1:
思路2:
在这⾥还有另⼀种做法。如下图答案2所⽰,第四⾏中while number的意思就是让while的条件变成 number 不等于 0。(while number 就是 while number != 0 )
接着在while⾥⾯写上跟答案1⼀样的两⾏代码,最后⼀⾏加上 number = number - 1. 这样,当number就会在每⼀次中减少1,⽽ i 会在每⼀次循环中增加,直到number递减变成0,while循环就会结束。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。