Python 如何绘制';x';形状如下

Python 如何绘制';x';形状如下,python,Python,我是python新手,请有人帮我画一个像下面这样的形状。程序必须将星号作为输入 星数=7 * * ** ** *** *** ******** *** *** ** ** * * 我的代码: count = int(input('star count : ')) pattern_size = count + 1 for t in range(1, pattern_size): pattern = list(" " * pattern_size)

我是python新手,请有人帮我画一个像下面这样的形状。程序必须将星号作为输入

星数=7

*      *
**    **
***  *** 
********
***  *** 
**    **
*      *
我的代码:

count = int(input('star count : '))
pattern_size = count + 1
for t in range(1, pattern_size):
    pattern = list(" " * pattern_size)
    pattern[:t] = "*" * t
    pattern[-t:] = '*' * t
    print(''.join(pattern))

star count :  9
*        *
**      **
***    ***
****  ****
**********
**********
**********
**********
**********

这里有一个简单易懂的例子,在您的方法中使用了两个for循环:一个是另一个的倒数

count = int(input('star count : '))
pattern_size = count + 1
for t in range(1, int(pattern_size/2)):
    pattern = list(" " * pattern_size)
    pattern[:t] = "*" * t
    pattern[-t:] = '*' * t
    print(''.join(pattern))

for t in range(int(pattern_size/2), 0, -1):
    pattern = list(" " * pattern_size)
    pattern[:t] = "*" * t
    pattern[-t:] = '*' * t
    print(''.join(pattern))
更高级的方法是使用字符串方法
.center()
,如下所示:

count = int(input('star count : '))
pattern_size = count + 1
for t in range(1, int(pattern_size/2)):
    print((" " * (pattern_size-t*2)).center(pattern_size, '*'))
for t in range(int(pattern_size/2), 0, -1):
    print((" " * (pattern_size - t * 2)).center(pattern_size, '*'))

就像我的评论一样,这是完整的代码:

count = int(input('star count : '))
pattern_size = count + 1
for t in range(1, pattern_size):
    pattern = list(" " * pattern_size)
    len_t = t if t <= (pattern_size / 2) else (pattern_size - t)
    pattern[:len_t] = "*" * len_t
    pattern[-len_t:] = '*' * len_t
    print(''.join(pattern))
count=int(输入('star count:'))
图案大小=计数+1
对于范围内的t(1,图案尺寸):
图案=列表(“*图案大小)

len_t=t如果您没有向我们展示您尝试过的代码。如果你被困在某个地方,人们会很乐意帮助你。count=int(输入('star count:')pattern\u size=count+1表示范围内的t(1,pattern\u size):pattern=list(“*pattern\u size)pattern[:t]=”*t pattern[-t:=''*t print(t.)。join(pattern))你能在你的问题中添加这个代码吗?提示:如果你使用两个独立的循环来迭代和打印星号,会更简单??