加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python中多层while循环的小问题

发布时间:2020-12-20 12:56:08 所属栏目:Python 来源:网络整理
导读:在多层while循环时遇到的问题 百文百鸡 公鸡2 钱, 母鸡 1钱, 小鸡 0.5 钱,一共100钱 ,要买一百只鸡,且花完100钱,用while循环写出一共多少种方法,并打印每种方法,每种鸡各几种。 先写上正确的方法: x = 0n = 0 while x 51 : y = 0 while y 101 : z =

在多层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,z))
                n +=1
            z +=1
        y +=1
    x +=1
print("一共%d种方法" % (n))

  

大致一看和上面的没什么区别,运行了好几次,就是不出结果,后来才发现,我把y和z的值,写在了循环的外面,这样造成的后果就是,先循环最内层,直到z等于200,再循环第二层,然而这个时候,却造成z的值没有归零,没有再次循环,z的值一直等于200,同理,这样y也会等于50之后,不归零,造成程序出错。所以我们再写程序的时候一定要注意细节。分享一些基础知识,感谢您的观看。如有错误,还望指正,一起学习。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读