python中多层while循环的小问题
Posted survival-save
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python中多层while循环的小问题相关的知识,希望对你有一定的参考价值。
在多层while循环时遇到的问题
百文百鸡
公鸡2 钱, 母鸡 1钱, 小鸡 0.5 钱,一共100钱 ,要买一百只鸡,且花完100钱,用while循环写出一共多少种方法,并打印每种方法,每种鸡各几种。
先写上正确的方法:
x = 0 n = 0 while x < 51: y = 0 while y <101: z = 0 while z < 201: if (2 * x) + (y) + (0.5 * z) == 100 and x + y + z == 100: print("公鸡有%d只,母鸡有%d只,小鸡有%d只" % (x,y,z)) n +=1 z +=1 y +=1 x +=1 print("一共%d种方法"%(n))
而我第一次写的是:
x = 0 y = 0 z = 0 n = 0 while x < 51: while y <101: while z < 201: if (2 * x) + (y) + (0.5 * z) == 100 and x + y + z == 100: print("公鸡有%d只,母鸡有%d只,小鸡有%d只" % (x,y,z)) n +=1 z +=1 y +=1 x +=1 print("一共%d种方法" % (n))
大致一看和上面的没什么区别,运行了好几次,就是不出结果,后来才发现,我把y和z的值,写在了循环的外面,这样造成的后果就是,先循环最内层,直到z等于200,再循环第二层,然而这个时候,却造成z的值没有归零,没有再次循环,z的值一直等于200,同理,这样y也会等于50之后,不归零,造成程序出错。
所以我们再写程序的时候一定要注意细节。
分享一些基础知识,感谢您的观看。如有错误,还望指正,一起学习。
以上是关于python中多层while循环的小问题的主要内容,如果未能解决你的问题,请参考以下文章