python 使用while循环输出*组成的菱形 - Go语言中文社区

python 使用while循环输出*组成的菱形


一,python输出*组成的菱形(实心):

python代码:
x = int(input('请输入最长行的*的个数:'))
y = int(input('请输入每个*之间的间隔:'))
i = 1
while i<= x:    #第一个while组成菱形上半部
    j = 1
    k = 1
    while k <= x-i:
        print(' '*y,end = '')  #每一行最左边到第一个*之间的空格
        k += 1
    while j <= i:
        print('*', end=' '*(2*y-1))  #每一行*的个数和*与*之间的间隔,要计算好才能上下对齐
        j += 1
    print('n')
    i += 1
while i <= 2*x-1:    #第二个while组成菱形下半部
    a = x+1
    b = 2*x-1
    while a <= i:
        print(' '*y, end='')
        a += 1
    while b >= i:
        print('*', end=' '*(2*y-1))
        b -= 1
    print('n')
    i += 1

运行结果:

二,python输出*组成的菱形(空心):

代码
x = int(input('请输入最长行的*的个数:'))
y = int(input('请输入每个*之间的间隔:'))
i = 1
#前两个while组成上半部
while i <= 1:       #菱形上顶点单独列出
    k = 1           #写出最左边到*的空格和第一个*
    while k <= x - i:    
        print(' ' * y, end='')
        k += 1
    print('*')
    print('n')
    i += 1
while i<= x:    
    k = 1
    j = 1
    while k <= x-i:      #这个while写出最左边到左边*的空格数
        print(' '*y,end = '')
        k += 1
    print('*', end=' '*(2*y-1))  #这写出左边*,*相当于占一个空格,所以*后面的空格少一个,才能上下对齐
    while j <= i-2:             #这个while写出左边*到右边*的空格数
        print(' '*2*y,end='')
        j += 1
    print('*')               #这写出右边*
    print('n')
    i += 1
#后两个while组成下半部
while i <= 2*x-2:      
    k = x+1
    j = 2*x-2
    while k <= i:
        print(' '*y, end='')
        k += 1
    print('*', end=' '*(2*y-1))
    while j-1 >= i:
        print(' ' *2* y, end='')
        j -= 1
    print('*',end='')
    print('n')
    i += 1
while i <= 2*x-1:     #菱形下顶点单独列出
    k = 2 * x - 1
    while k >= i+2 - x:
        print(' '*y, end='')
        k -= 1
    print('*')
    print('n')
    i += 1

运行结果:

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/qq_38775473/article/details/82589870
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2020-06-30 08:16:10
  • 阅读 ( 1418 )
  • 分类:

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢