python循环练习题(九九乘法表、寻找水仙花数、寻找完美数、猜数字游戏、百钱

系统 1719 0

猜数字游戏

计算机出一个1~100之间的随机数由人来猜
计算机根据人猜的数字分别给出提示大一点/小一点/猜对了,并继续输入
关于这一题,因为不知道循环的次数和迭代对象,所以选择while循环
1、首先用random.randint定义一个随机数
2、第一次写的时候把输入的答案放在循环外面,后来想了一下,如果要根据提示再继续输入的话就必须把要每次输入的数字放入循环中,否则无法循环输入
3、break在循环里面的作用很重要,注意思考该把他放在哪儿。

            
              
                import
              
               random
a 
              
                =
              
               random
              
                .
              
              randint
              
                (
              
              
                1
              
              
                ,
              
              
                100
              
              
                )
              
              
count 
              
                =
              
              
                0
              
              
                while
              
              
                True
              
              
                :
              
              
    b 
              
                =
              
              
                int
              
              
                (
              
              
                input
              
              
                (
              
              
                "请输入您的答案:"
              
              
                )
              
              
                )
              
              
    count 
              
                +=
              
              
                1
              
              
                if
              
               a 
              
                <
              
              b
              
                :
              
              
                print
              
              
                (
              
              
                "小一点"
              
              
                )
              
              
                elif
              
               a
              
                >
              
              b
              
                :
              
              
                print
              
              
                (
              
              
                "大一点"
              
              
                )
              
              
                else
              
              
                :
              
              
                print
              
              
                (
              
              
                "猜对了,您一共猜了%d次"
              
              
                %
              
               count
              
                )
              
              
                break
              
            
          

九九乘法表

            
              
                for
              
               i 
              
                in
              
              
                range
              
              
                (
              
              
                1
              
              
                ,
              
              
                10
              
              
                )
              
              
                :
              
              
                for
              
               j 
              
                in
              
              
                range
              
              
                (
              
              
                1
              
              
                ,
              
              
                10
              
              
                )
              
              
                :
              
              
                print
              
              
                (
              
              
                '%d × %d = %d'
              
              
                %
              
              
                (
              
              i
              
                ,
              
              j
              
                ,
              
              i
              
                *
              
              j
              
                )
              
              
                )
              
            
          

寻找水仙花数

如果一个 3 位数等于其各位数字的立方和,则称这个数为水仙花数。例如:153 = 1^3 + 5^3 + 3^3,因此 153 就是一个水仙花数。

            
              
                for
              
               i 
              
                in
              
              
                range
              
              
                (
              
              
                100
              
              
                ,
              
              
                1000
              
              
                )
              
              
                :
              
              
                if
              
              
                (
              
              i
              
                //
              
              
                100
              
              
                )
              
              
                **
              
              
                3
              
              
                +
              
              
                (
              
              i
              
                %
              
              
                100
              
              
                //
              
              
                10
              
              
                )
              
              
                **
              
              
                3
              
              
                +
              
              
                (
              
              i
              
                %
              
              
                10
              
              
                )
              
              
                **
              
              
                3
              
              
                ==
              
              i
              
                :
              
              
                print
              
              
                (
              
              
                '%d是水仙花数'
              
              
                %
              
              i
              
                )
              
            
          

寻找完美数

果一个数恰好等于它的因子之和,则称该数为“完全数” [1] 。各个小于它的约数(真约数,列出某数的约数,去掉该数本身,剩下的就是它的真约数)的和等于它本身的自然数叫做完全数(Perfect number)。
例如:第一个完全数是6,它有约数1、2、3、6,除去它本身6外,其余3个数相加,1+2+3=6

            
              
                for
              
               i 
              
                in
              
              
                range
              
              
                (
              
              
                1
              
              
                ,
              
              
                10000
              
              
                )
              
              
                :
              
              
    a 
              
                =
              
              
                [
              
              
                ]
              
              
    b 
              
                =
              
              
                0
              
              
                for
              
               j 
              
                in
              
              
                range
              
              
                (
              
              
                1
              
              
                ,
              
              i
              
                )
              
              
                :
              
              
                if
              
               i
              
                %
              
              j 
              
                ==
              
              
                0
              
              
                :
              
              
            a
              
                .
              
              append
              
                (
              
              j
              
                )
              
              
                for
              
               m 
              
                in
              
               a
              
                :
              
              
        b 
              
                +=
              
               m
    
              
                if
              
               b 
              
                ==
              
               i
              
                :
              
              
                print
              
              
                (
              
              
                "%d是完美数"
              
              
                %
              
              i
              
                )
              
            
          

此题循环的嵌套还是比较细致的。
1、首先求约数的循环要嵌套在外层循环中,这是求各种数时候常用的套路。
2、因为它的约数非常多,所以我的想法是先把约数全存在一个表中,再利用一个遍历循环加起来,可以得到约数之和,然后在判断约数之和和数是否相等
3、本来把a ,b定义在最外侧,后来发现这样的不出来正确答案。后来在别人的帮助下才发现,a和b在第二次循环的时候把第一次循环的值保存了下来,导致结果错误。

百钱买百鸡

            
              
                print
              
              
                (
              
              
                '公鸡\t母鸡\t鸡仔'
              
              
                )
              
              
                for
              
               x 
              
                in
              
              
                range
              
              
                (
              
              
                0
              
              
                ,
              
              
                20
              
              
                )
              
              
                :
              
              
                for
              
               y 
              
                in
              
              
                range
              
              
                (
              
              
                0
              
              
                ,
              
              
                33
              
              
                )
              
              
                :
              
              
                if
              
               3x
              
                +
              
              5y
              
                +
              
              
                (
              
              
                100
              
              
                -
              
              x
              
                -
              
              y
              
                )
              
              
                /
              
              
                3
              
              
                =
              
              
                100
              
              
                :
              
              
                print
              
              
                (
              
              x
              
                ,
              
              
                "\t"
              
              
                ,
              
              y
              
                ,
              
              
                "\t"
              
              
                ,
              
              
                (
              
              
                100
              
              
                -
              
              x
              
                -
              
              y
              
                )
              
              
                )
              
            
          

在这题里面了解到了制表符的妙用
1、公鸡5钱1个,母鸡3钱1个,总共100钱,那么公鸡最多买20,母鸡最多买33,实际上买不到,只是给它限制住循环的条件
2、鸡仔1钱3个,且鸡仔可以通过x和y表示,把方程和约束条件写出来,让程序给出排列,此题非常有参考意义。
3、制表符可以保证有着上下打印的东西在一般情况保持对齐,打印的时候,如果是变量就不能像字符串一样用+来拼接。****


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论