Python 如何将4个三角形while循环组合在一起形成一个“while”;钻石;?
我想做这个“钻石”: 我可以使用while循环制作钻石的4个三角形: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' % ('
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