关于“python打出星号这件事”


列题

1.使用循环输出正是三角型(由上到下)

'''
*
**
***
****
*****
'''

1.用while方法:

#定义i初始值为1
i = 1
#开始执行,while条件小于6,满足执行代码。
while i < 6:
    #设置j的初始值为1
    j = 1
    #开始小while循环,开始j为1,小于i,打印出一个*在第一行,再自增为j=2。
    #后面继续小while循环,j=2 > i=1,不符合,则不执行小while循环代码,跳出小while循环,执行下面代码。
    
    while j <= i:
        j += 1
        print('*', end='')
    #跳出小while代码打印出星号并自增,i=2。
    #再循环到大while循环来判断条件。符合则往下执行,依次往复,打印第二行星号。
    i += 1
    print('')
   


2.用for方法:
#让i=[1,2,3,4,5]
for i in range(1, 6):
    #再嵌套一个for循环,使 j=[1,x,y,z,i+1]
    #刚开始i=1,所以循环到j=1,[1,2)
    #运行在for j后打印*在第一层
    #j取完值后直接退出小for循环,执行下面操作。
    #回到第一个大for循环, i = 2,接下轮到小for循环,j=[1,2,3)
    #第二次循环时j=2,则打印2颗星号在第二层,依次反复,就是一个正三角形。
    for j in range(1, i+1):
        print('*', end='')
    #换层,换下一层。
    print()
           
    
3.'''i和j共进退'''i=j,在同层次。前面小while因为i小所以正常结束循环到下面i自增,而for因为本身性质取到了就会继续往下取,但是i如果值不自增的话,就会跳出小for循环,返回大for循环,将i往后取值。

2.使用循环输出倒是三角型(由左到右)

'''
*****
****
***
**
*
'''
1.用while方法:
#先定义一个i 的初始值为5,因为开始就是与j作比较运算。
i = 5
#先防止i最后为0,最好要大于0
while 0 < i < 6:
    #定义一个j初始值为1
    j = 1
    #当 i=5  时,循环到小while循环,满足条件,打印*在第一层,然后自增,将继续在小while内判断是否满足条件
    #如果满足条件,这继续在第一行打印第二个星号,直到j>i为止,也就是说j最多等于5
    #打印5个星号在第一层。结束小while循环,执行后面i自增操作。然后执行大while循环,又到了,小while循环后,补充第二层,后面以此类推,反反复复,就得出来了。
    while j <= i:
        print("*", end='')
        j += 1
    i -= 1
    print()

2.用for方法:
# i = [1, 2, 3, 4, 5]
# j = [i, 'x1', 'x2', 'x3', 5]
#开始i = 1,
for i in range(1, 6):
    #j[1,6),j=1,打印一个*在第一层。
    for j in range(i, 6):
        #后面j判断,可以取第二值,所以继续循环小for,j=2
        #打印第二个*在第一层,依次往复,直到打印5个*在第一层位为止就结束了循环,因为j它取不到值了,后面就循环到大for, i[2,5]。
        #来到第二层,j[2,6),一遍遍取值打印,第二层,只能打印2->1,3->2,4->3,5->4,打印四个*在第四层。
        print('*', end='')
    print()

3.打印9*9乘法表:

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


#\t为制表符,代表四个空格也就是tab。
# 它的写法是“\t”,是反斜杠和t字母的组合,t取的是table之意。
# 它的作用是对齐表格数据的各列,在不使用表格的情况下可以上下对齐。
for i in range(1, 10):
    for j in range(1, i+1):
       # \t为制表符,代表四个空格也就是tab。
       # 它的写法是“\t”,是反斜杠和t字母的组合,t取的是table之意。
       # 它的作用是对齐表格数据的各列,在不使用表格的情况下可以上下对齐。
        print("%d * %d= %-2d   " % (i, j, i*j), end='\t')
    print(" ")

4.使用while输出等边三角形


*
* *
* * *
* * * *
* * * * *
* * * *
* * *
* *
*
整体的方法思路就是拆两个部分来看,一个是前5次循环,下面是后4次循环,一共9次循环。
方法一:
#定义i的初始值为1
i = 1
#设置循环,当i循环9次就结束循环
while i < 10:
    #判断i是否大于5,如果小于,则执行if代码,第一层打印一个星号。
    # 如果大于, 则执行else代码。打印出四个星号,
    if i <= 5:
        print('*'*i)
    else:
        print('*'*(10-i))
    i += 1
方法二:
i = 1
while i < 10:
    #先考虑上部分的,当i小于5时,
    if i <= 5:
        #定义j的初始值为1
        j = 1
        #当j小于或者等于时就加1,当j大于i时就退出这个小循环。直到,i自增1,
        #再循环到if是否小于或等于i。如此往复,就打印完了上半部分。
        while j <= i:
            print('*', end='')
            j += 1
    #判断i大于5时,也就是第六次循环,则执行else代码。
    else:
        #定义一个k值,初始化k值为1。
        k = 1
        #当前i为6,则k小于4,则符合条件,打印* 号,再循环三次后,第六层的星号已经打满4个
        #当k为6时,则不符合小while循环的条件,则跳出循环,到i自增1
        #再回到大while循环,后回到else内代码,将k初始化为1,打印di7层的*号。
        #如此往复,一层一层打满,后最后到i=10时不符合大while循环的条件就结束循环
        while k <= (10-i):
            print('*', end='')
            k += 1
    print()
    i += 1

方法三(结合打出正三角形和倒三角形的方法)
i = 1
while i <= 5:
    j = 1
    while j <= i:
        print('*', end='')
        j += 1
    print()
    i += 1
i = 4
while 0 < i <=4:
    j = 1
    while j <= i:
        print('*', end='')
        j +=1
    print()
    i -= 1