用for循环来写九九乘法表

首先可以看成是两个1到10的for循环的嵌套,两个10到10的数组的笛卡尔集,去除掉重复的部分,就是第二个循环range返回变成从1取到i(外层循环)但是这里要注意,range是一个半开半闭的区间,所以右边最后一个数取不到,所以是i+1,end=" "代表的是每一行中的乘式之间都有一个空格相连,print()代表没执行一次外层循环就空一格!
代码如下:

for i in range(1,10):
    for j in range(1,i+1):
        print("{}*{}={}".format(i,j,i*j),end=" ")
    print()

结果如图所示:

for循环久久乘法表 python python for循环写九九乘法表_九九乘法表算法


如果不能理解上述所说的range的取值范围,则可以用一个if函数来进行判断,结果与上述一致,代码如下:

for i  in range(1,10):
    for j in range(1,10):
        if i>=j:
            print("{}*{}={}".format(i,j,i*j),end=" ")
        else:
            break
    print()

同样if的作用也是去除了重复部分!

用while循环来写九九乘法表

x = 1
while x <10:
    y = 1
    while y <= x:
        print("{}*{}={}".format(x,y,x*y),end = ' ')
        y += 1
    print()
    x += 1

首先应该给予外层循环的一个初值 x = 1,而第二个循环是在第一个循环之中,所以y的初始值不应该定义在外面,是局部变量,不然就无法执行while i 的第二轮以后的循环,啦啦啦啦,很简单是不是。。。
同样的,要注意去除掉重复的部分,所以第一层循环的x要大于或者等于y.我们也可以用一个if判断来实现,但是就显得有点啰嗦啦
代码如下:

x = 1
while x<10:
    y = 1
    while y<10:
        if x>=y:
            print("{}*{}={}".format(x,y,x*y),end=" ")
            y+=1
        else:
            y+=1
            break
    print()
    x+=1

介绍几种九九乘法表的其他表现形式

下面将介绍九九乘法表几种其他有趣的表现形式(当然参照了一下广大网友的智慧,嘿嘿嘿)
第一形式:

i = 1
while i <= 9:
    k = 1
    while k <= 9 - i:         #判断应该用多少个空格来填充前面的空白
        print(' '*6,end = ' ')
        k += 1
    j = 1
    while j <= i:
        print("%d*%d=%2d"%(i,j,i*j),end = ' ')
        j += 1
    print()
    i += 1

for循环久久乘法表 python python for循环写九九乘法表_九九乘法表算法_02

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

这句语句中的%号是格式化字符串的一种方法,2d是X乘以y 的结果值向右对齐,占两个长度单位。

print(' '*6,end = '')

这个输出语句是一个空格乘以6,因为一个算式,两个因数,一个乘号,一个等于号,还有结果占位两个,加起来刚好是6

第二种形式:

i = 9
while i >= 1:
    k = 1
    while k <= 9-i:
        print(' '*6,end = ' ')
        k += 1
    j = 1
    while j<= i:
        print("%d*%d=%2d"%(i,j,i*j),end = ' ') #正数为右对齐,负数为左对齐
        j += 1
    print()
    i -= 1

for循环久久乘法表 python python for循环写九九乘法表_2d_03


第三中形式:

i = 9
while i >= 1:
    j = 1
    while j <= i:
        print("%d*%d=%2d"%(i,j,i*j),end = ' ')
        j += 1
    print()
    i -= 1

for循环久久乘法表 python python for循环写九九乘法表_九九乘法表_04

这几种形式和上面的写法其实都是大同小异,有些是调换了一计算的顺序,从最大9开始算起,然后依次递减,有的是在开始先计算并填充了空格,然后再用2d调整格式,使得结果对其看起来更加美观。总结在一起呢,是想让大家深入浅出,多多开拓思维思考思考。

如果你觉得文章还行,就点个关注吧,可以一起探讨更加有趣的问题,互相学习进步,嘿嘿嘿。。。