Python 从列表中获取数字并绘制图案
我有以下列表Python 从列表中获取数字并绘制图案,python,python-3.x,python-2.7,Python,Python 3.x,Python 2.7,我有以下列表[2,7,4]。我需要从列表中获取数字,并希望得到如下输出: * * * * * * * * * * * * * [2, 7, 4] 我写了以下内容: a=eval(input()) for j in range(len(a)): print(a[j],end=" ") for i in range(0,a[j]): print(" *
[2,7,4]
。我需要从列表中获取数字,并希望得到如下输出:
*
*
*
* *
* *
* * *
* * *
[2, 7, 4]
我写了以下内容:
a=eval(input())
for j in range(len(a)):
print(a[j],end=" ")
for i in range(0,a[j]):
print(" *",end=" ")
print()
但当我给出这个列表时,我得到了这个输出:
2**7******
4****
打印总是从上到下进行的,因此您需要在数组中找到最大的数字,以便能够从上到下打印 然后你必须从这个数字循环回到零,并在适当的地方打印一个星号。您可以将本例中的数字视为高度。例如,如果高度为6,则必须仅在第二列中打印星号(因为7>=6),如果高度为3,则需要在最后两列中打印星号(因为7>=3和4>=3)。这是它在代码中的外观:
arr=[2,7,4]
最大值=最大值(arr)
#根据数组确定是否需要打印星号或空格
#元素和当前高度。
def calc_输出(阵列元素、当前高度):
如果数组元素>=当前高度:
返回“*”
返回“”
#从max_num循环到1。
对于范围内的x(最大数量,0,-1):
line=“”
#对于arr中的每个元素,确定是否需要打印星号。
对于arr中的元素:
行+=“{}”。格式(计算输出(elem,x))
打印(行)
#打印用空格分隔的arr元素。
打印(*arr)
这将产生:
*
*
*
* *
* *
* * *
* * *
2 7 4
它也适用于任何其他数字列表。例如,使用arr=[4,1,3,0,4]
:
* *
* * *
* * *
* * * *
4 1 3 0 4
如果你考虑以下问题,你可以解决这个问题:
a=eval(input())
for j in range(len(a)):
print(a[j],end=" ")
for i in range(0,a[j]):
print(" *",end=" ")
print()
[2,7,4]
是您的列表,7
是最大值
max\u value
)的值轻松打印以下图案:
7
6
5
4
3
2
1
i
,则在每行打印'*'
。否则,将打印''
l=l=[2,7,4]
最大值=最大(l)
对于范围内的i(最大值,0,-1):
对于l中的e:
打印(“*”如果e>=i else“”,则结束=“”)
打印()
打印(*l)
最大值=最大(l)#1
对于范围内的i(最大值,0,-1):#2
对于l中的e:
打印('*'如果e>=i else',end='')#3
打印()#4
打印(*l)#5
输出
*
*
*
* *
* *
* * *
* * *
2 7 4
请记住,这将适用于
0
和9
(包括)之间列表中的元素。它不写空格,而是不写空格。可能是因为我用python 3编写的。如果您将这一行line+=“{}”格式(calc_输出(elem,x))
更改为这一行line+=%s”%calc_输出(elem,x)
?修复了,谢谢…我已经为您的问题添加了一个答案,希望它是清楚的。