gpt4 book ai didi

python - 在 Python 中迭代绘制 'Bow Tie'

转载 作者:太空宇宙 更新时间:2023-11-04 09:00:46 25 4
gpt4 key购买 nike

我正在尝试编写一个代码,用给定的输入绘制一个领结。

领结:

 *        *
*** ***
**********
*** ***
* *

我在这里研究 2 种方法。谁能告诉我我走的路是否正确?我好像迷路了……

num = int(input("Enter an odd number greater than 4: "))

row = 1
row_space = row*2-1
space_tot = num*2 - row_space*2
stars = int((num*2 - space_tot)/2)

space = ""

for x in range(num):
print("*"*stars+" "*space_tot+"*"*stars)
row += 1
space_tot -= 2


def triangle(n):
for x in range(n,0,2):
print ('*'*x)
for x in range(n,0,-2):
print ('*'*x)
n -= 1


triangle(num)

最佳答案

num = int(input("Enter an odd number greater than 4: "))
center = (num - 1)//2
for row in range(num):
nspaces = 2*abs(row - center)
nstars = num - nspaces
print nstars*'*' + 2*nspaces*' ' + nstars*'*'

工作原理

让我们看一下 num=5 情况下所需的输出(添加了行号):

0 *        *
1 *** ***
2 **********
3 *** ***
4 * *

让我们将其视为左半边和右半边。观察每一半的中间行有 num 颗星。中心行中的空格数为零。对于我们从中心移开的每一行,每一半中的空格数增加两个。用数学表示:

nspaces = 2*abs(row - center)

每一半都是 num 列宽。所以,如果一半有 nspaces 个空格,那么那一半的星星数是:

nstars = num - nspaces

计算完这两个之后,只需将其全部打印出来即可:

print nstars*'*' + 2*nspaces*' ' + nstars*'*'

每行执行一次。

关于python - 在 Python 中迭代绘制 'Bow Tie',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25696309/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com