Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何将4个三角形while循环组合在一起形成一个“while”;钻石;?_Python_Python 2.7_While Loop - Fatal编程技术网

Python 如何将4个三角形while循环组合在一起形成一个“while”;钻石;?

Python 如何将4个三角形while循环组合在一起形成一个“while”;钻石;?,python,python-2.7,while-loop,Python,Python 2.7,While Loop,我想做这个“钻石”: 我可以使用while循环制作钻石的4个三角形: x = 10 while 0 < x < 11: print '%10s' % ('*' * x), x = x - 1 print x = 0 while x < 11: print '%10s' % ('*' * x), x = x + 1 print x = 10 while 0 < x < 11: print '%0s' % ('

我想做这个“钻石”:

我可以使用while循环制作钻石的4个三角形:

x = 10
while 0 < x < 11:
    print '%10s' % ('*' * x),
    x = x - 1
    print

x = 0
while x < 11:
    print '%10s' % ('*' * x),
    x = x + 1
    print

x = 10
while 0 < x < 11:
    print '%0s' % ('*' * x),
    x = x - 1
    print

x = 0
while x < 11:
    print '%0s' % ('*' * x),
    x = x + 1
    print
x=10
当0

我能把这4个while环放在一起做成钻石吗?或者我必须用另一种方式吗?

我建议您使用字符串格式(您可以尝试使用参数):

上面的代码首先创建一个列表
a
,其中包含每行的空格数。然后字符串格式为长度
30
列表中的每个元素打印一行(
{:^30}
的30部分,居中
^
,两边用
*
填充。希望对您有所帮助

或者只是为了好玩:一行:
对于范围(1,20,2)+范围(19,-1,-2)中的i:打印“{:*^30}”。格式(''*i)

非常简单的方法是使用两个循环:

def diamond(n):
    for i in range(n, 0, -1):
        print '*' * i + (' ' * (n-i) * 2) + '*' * i
    for i in range(1, n+1):
        print '*' * i + (' ' * (n-i) * 2) + '*' * i

聪明,但你确实需要解释一下为什么这样做(我理解得很好,但很多人不知道
*^30
格式在这里做什么)。您还可以添加一个包含两个
while
循环的版本,以匹配OP自己所寻找的内容。非常好,我将使用此方法,非常感谢。@user2357,很高兴我能提供帮助!我如何才能学习更简洁和高效?我写了20行代码,一行代码就可以完成……非常感谢,我太喜欢这个了。你也可以在一行中完成:范围(10,0,-1)+范围(2,11)中的I的D:print'*I+(''*(10-I)*2)+''*I
a = range(0,20,2)+range(20,-1, -2)

for i in a:
    print '{:*^30}'.format(' '*i)

[OUTPUT]
******************************
**************  **************
*************    *************
************      ************
***********        ***********
**********          **********
*********            *********
********              ********
*******                *******
******                  ******
*****                    *****
******                  ******
*******                *******
********              ********
*********            *********
**********          **********
***********        ***********
************      ************
*************    *************
**************  **************
******************************
def diamond(n):
    for i in range(n, 0, -1):
        print '*' * i + (' ' * (n-i) * 2) + '*' * i
    for i in range(1, n+1):
        print '*' * i + (' ' * (n-i) * 2) + '*' * i