python里两个星号_Python,中间有两条线和三个星号

通常,当你想解决ASCII-art问题时,你可以从分析图像开始。我们在这里看到的是每个图像:第一行有一行有2*n+3星号

后跟n行,这些行有一个星号,n个空格,一个星号,n个空格,还有一个星号;和

带有2*n+3星号的行。在

所以我们可以简单地利用这样一个事实:一个序列(list,str,tuple)乘以一个数是一个相同类型的序列,它将序列重复给定的次数。

所以对于第一行和最后一行,我们可以简单地写'*'*(2*n+3)。中间的行可以用'*'+' '*n+'*'+' '*n+'*'构造,我们需要重复n次。因此,我们可以用以下内容构建一个行列表:['*'*(2*n+3)]+['*'+' '*n+'*'+' '*n+'*']*n+['*'*(2*n+3)]

# ^ first ^ middle line ^ last line

然后使用'\n'.join(..)将这些行连接在一起:

^{pr2}$

这将产生:>>> print_pattern(1)

*****

* * *

*****

>>> print_pattern(2)

*******

* * *

* * *

*******

>>> print_pattern(3)

*********

* * *

* * *

* * *

*********

>>> print_pattern(4)

***********

* * *

* * *

* * *

* * *

***********

>>> print_pattern(5)

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

* * *

* * *

* * *

* * *

* * *

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

您还可以通过使用for循环使其更具前硬性(尽管这通常被认为不太像Python):def print_pattern(n):

print('*'*(2*n+3))

for _ in range(n):

print('*'+' '*n+'*'+' '*n+'*')

print('*'*(2*n+3))

或在有用户输入的程序中:def print_pattern(n):

print('*'*(2*n+3))

for _ in range(n):

print('*'+' '*n+'*'+' '*n+'*')

print('*'*(2*n+3))

n = int(input("Eliga un número: "))

print_pattern(n)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值