zoukankan      html  css  js  c++  java
  • python while 循环打印九九乘法表

    方向一

    i = 1       

    while i <= 9:

      j = 1

      while j <= i

        print('%d*%d = %2d'%( j,i ,i*j),end='')

        j += 1

      print()

      i += 1

    思路:先写出列,从一到九,再写出列,每次行=列的时候换行,行数增加一,所以里面的while循环是 j <= i,当行数小于列数时,执行换行代码,进行下一轮的循环,end = ‘’  表示不换行继续往下写

    方向一打印结果示例

    1*1 = 1
    1*2 = 2 2*2 = 4
    1*3 = 3 2*3 = 6 3*3 = 9
    1*4 = 4 2*4 = 8 3*4 =12 4*4 =16
    1*5 = 5 2*5 =10 3*5 =15 4*5 =20 5*5 =25
    1*6 = 6 2*6 =12 3*6 =18 4*6 =24 5*6 =30 6*6 =36
    1*7 = 7 2*7 =14 3*7 =21 4*7 =28 5*7 =35 6*7 =42 7*7 =49
    1*8 = 8 2*8 =16 3*8 =24 4*8 =32 5*8 =40 6*8 =48 7*8 =56 8*8 =64
    1*9 = 9 2*9 =18 3*9 =27 4*9 =36 5*9 =45 6*9 =54 7*9 =63 8*9 =72 9*9 =81

    方向二 

    i = 1       

    while i <= 9:

      k = 1

      while k <= 9 - i:

        print('        ',end = ' ')

        k += 1

      j = 1

      while j <= i

        print('%d*%d = %2d'%( j,i ,i*j),end='')

        j += 1

      print()

      i += 1

     思路:方向二相对于方向一,需要在前面打印空格,且每次打印的空格跟行数有关,这时就需要一个循环,使得前面的空格被打印出来

    方向一打印结果示例

                                  1*1 = 1
                                1*2 = 2 2*2 = 4
                             1*3 = 3 2*3 = 6 3*3 = 9
                       1*4 = 4 2*4 = 8 3*4 =12 4*4 =16
                   1*5 = 5 2*5 =10 3*5 =15 4*5 =20 5*5 =25
                1*6 = 6 2*6 =12 3*6 =18 4*6 =24 5*6 =30 6*6 =36
             1*7 = 7 2*7 =14 3*7 =21 4*7 =28 5*7 =35 6*7 =42 7*7 =49
          1*8 = 8 2*8 =16 3*8 =24 4*8 =32 5*8 =40 6*8 =48 7*8 =56 8*8 =64
    1*9 = 9 2*9 =18 3*9 =27 4*9 =36 5*9 =45 6*9 =54 7*9 =63 8*9 =72 9*9 =81

    方向三

    i = 9

    while i >= 1:

      j = 1

      while j <= i

        print('%d*%d = %2d'%( j,i ,i*j),end='')

        j += 1

      print()

      i -= 1

    思路:方向三中的i是从9到1,然后再是把i一个一个往下减

    方向三打印结果示例

    1*9 = 9 2*9 =18 3*9 =27 4*9 =36 5*9 =45 6*9 =54 7*9 =63 8*9 =72 9*9 =81
    1*8 = 8 2*8 =16 3*8 =24 4*8 =32 5*8 =40 6*8 =48 7*8 =56 8*8 =64
    1*7 = 7 2*7 =14 3*7 =21 4*7 =28 5*7 =35 6*7 =42 7*7 =49
    1*6 = 6 2*6 =12 3*6 =18 4*6 =24 5*6 =30 6*6 =36
    1*5 = 5 2*5 =10 3*5 =15 4*5 =20 5*5 =25
    1*4 = 4 2*4 = 8 3*4 =12 4*4 =16
    1*3 = 3 2*3 = 6 3*3 = 9
    1*2 = 2 2*2 = 4
    1*1 = 1

    方向四

    i = 9

    while i >= 1:  

      k = 1

      while k <= 9-i:

        print('        ', end = ' ')

        k += 1

      j = 1

      while j <= i

        print('%d*%d = %2d'%( j,i ,i*j),end='')

        j += 1

      print()

      i -= 1

    思路:和方向二类似,在方向三的基础上,在前面根据行数打印一定量的空格就可以了

    方向四打印结果示例

    1*9 = 9 2*9 =18 3*9 =27 4*9 =36 5*9 =45 6*9 =54 7*9 =63 8*9 =72 9*9 =81
                 1*8 = 8 2*8 =16 3*8 =24 4*8 =32 5*8 =40 6*8 =48 7*8 =56 8*8 =64
                              1*7 = 7 2*7 =14 3*7 =21 4*7 =28 5*7 =35 6*7 =42 7*7 =49
                                            1*6 = 6 2*6 =12 3*6 =18 4*6 =24 5*6 =30 6*6 =36
                                                         1*5 = 5 2*5 =10 3*5 =15 4*5 =20 5*5 =25
                                                                       1*4 = 4 2*4 = 8 3*4 =12 4*4 =16
                                                                                     1*3 = 3 2*3 = 6 3*3 = 9
                                                                                                  1*2 = 2 2*2 = 4
                                                                                                              1*1 = 1

     

  • 相关阅读:
    手机浏览器
    一招封住360流氓
    原来在Delphi中的类型是严格匹配的
    Windows 7下面3389远程连接时“超出最大连接数”解决办法
    大家开发过淘宝商城API应用的么?
    adodb.recordset 添加记录后无法取得ID
    VBATrack Picture
    java web后台开发SSM框架(Spring+SpringMVC+MyBaitis)搭建与优化
    VBATrack MsgBox
    VBATrack 暂停3秒运行
  • 原文地址:https://www.cnblogs.com/zhangboblogs/p/7821652.html
Copyright © 2011-2022 走看看