定义一个名为 print_pyramid(number_of_rows) 的函数,它以整数为参数,并使用数字打印特定的金字塔图案。注意:您可以假设行数总是 > 1 且 < 10,并且您必须使用嵌套的 for 循环。
例如:
以上是我的问题以及我需要得到什么,但我不确定如何完成以下是我的代码尝试和结果。 这是我的代码:
def print_pyramid(number_of_rows):
for row in range(number_of_rows):
for column in range(row, number_of_rows):
print("", end="")
for column in range(row+1):
print(row+1, end="")
for column in range(row, number_of_rows-1):
print(" ", end= "")
for column in range(row+1):
print(row+1, end="")
print()
但是我的代码给了我这个: Pyramid I'm meant to get
答案 0 :(得分:1)
这是一个使用 for 循环生成金字塔模式的列表推导式
print_pyramid = lambda x : print("\n".join([(" "*(x-i))+(str(i)*(i*2-1))+(" "*(x-i)) for i in range(1,x+1)]))
print_pyramid(9)
给出:
1
222
33333
4444444
555555555
66666666666
7777777777777
888888888888888
99999999999999999
答案 1 :(得分:1)
Jared 的回答是正确的,而且绝对更优雅,但无论如何这是另一种解决方案。对初学者更友好,希望一目了然更容易理解。
def pyramid(number_of_rows):
for i in range(1, number_of_rows + 1):
indent = ' ' * (number_of_rows - i)
row = str(i) * (i * 2 - 1)
print(indent + row)
答案 2 :(得分:0)
您可以定义一个函数来以这种方式打印您的金字塔
const data = [
{
key: '1',
title: 'Title 1',
desc: 'Desc 1',
image: 'http://192.168.0.22:3000/build/photo_1621612104216_d747ced4-b313-4687-b9ac-ab5bcd78501d.jpg'
},
{
key: '2',
title: 'Title 2',
desc: 'Desc 2',
image: 'http://192.168.0.22:3000/build/photo_1621612230526_f49f2be8-6fd6-420d-b0b0-b39216418924.jpg'
},
{
key: '3',
title: 'Title 3',
desc: 'Desc 3',
image: 'http://192.168.0.22:3000/build/photo_1621612230526_f49f2be8-6fd6-420d-b0b0-b39216418924.jpg'
},
{
key: '4',
title: 'Title 4',
desc: 'Desc 4',
image: 'http://192.168.0.22:3000/build/photo_1621612104216_d747ced4-b313-4687-b9ac-ab5bcd78501d.jpg'
},
];
const updatePropertyByKey = (key, name, value) => {
return data.map(el => el.key === key ? {
...el,
[name]: value
} : el);
};
const newData = updatePropertyByKey('3', 'title', 'Title 3 New');
console.log(newData[2]);
然后调用函数
def pyramid(rows: int) -> str:
if rows < 1 or rows > 9:
raise ValueError
pyramid_string = ""
for i in range(1, rows + 1):
pyramid_string += f" " * (rows - i) + f"{i}" * (i * 2 - 1) + "\n"
return pyramid_string
或者你可以使用一个变量来存储函数的结果
print(pyramid(rows=5))
输出
five_rows_pyramid = pyramid(rows=5)
print(five_rows_pyramid)