使用此起点:
size_in = input('Please enter the size: ')
size = int(size_in)
char = input('Please enter the drawing character: ')
print('')
row = 1
我已经想出如何制作一个正方形:
while row <= size:
col = 1
while col <= size:
print(char, '', end = '')
col = col + 1
print('')
row = row + 1
print('')
还有一个三角形:
row = 1
while row <= size:
col = 1
while col <= row:
print (char, '', end = '')
col = col + 1
print ('')
row = row + 1
print ('')
但我无法找出对角线
X
X
X
X
X
或反向三角形
xxxxx
xxxx
xxx
xx
x
我为反向三角形提出的最好的是:
row = 1
while row <= size:
col = size - row + 1
while col <= row:
print (' ',)
col = col + 1
col = 0
while col <= size-row:
print (char, '', end = '')
col = col + 1
row = row + 1
print ('')
print ('')
但即使这样也不安静,它只是翻转并且有额外的空间。我无法弄清楚如何做到这些。
答案 0 :(得分:2)
您不需要使用while
循环和许多额外操作。只需使用range
功能并正确使用start
,end
和step
参数。
In [26]: for i in range(10, 0, -1):
print((' ' * (10-i)) + (i * '+'))
....:
++++++++++
+++++++++
++++++++
+++++++
++++++
+++++
++++
+++
++
+
In [27]:
In [27]: for i in range(10, 0, -1):
print((' ' * (10-i)) + '+')
....:
+
+
+
+
+
+
+
+
+
+
然而,从算法的角度来看,打印此类形状所需的所有内容都是从最高级别开始倒计时,然后以相反的方式(从最低级别到最高级别)向每行的前导添加空间。