用python打印帧

2024-04-26 06:06:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我想实现一个打印帧的函数Python。它当给定两个整数,例如4和7和字符“$”时,应该打印类似的内容

$$$$$$$
$     $
$     $
$$$$$$$

到目前为止我只能这么做

^{pr2}$

所以我现在的问题是如何覆盖框架。这里是我当前的代码

def print_frame(n, m, c):
    for i in range(1,m):
         print(c,end = " ")


    for d in range(1,n):
        print(c)

    for i in range(1,m+1):
        print(end = "")


    for i in range(1,m+1):
         print(c,end = " ")

在(注意。这个是一个家庭作业问题,但它是一个额外的问题(解决它是可选的)


Tags: 函数代码in框架内容fordefrange
1条回答
网友
1楼 · 发布于 2024-04-26 06:06:28

对于中间部分,添加一些间距:

for d in range(1, n - 1):
    print(c + ' ' * (m - 2) + c)

或使用:

^{pr2}$

请注意,您还需要循环n - 2次,顶部和底部的行不应该是计数的一部分。在

print(end='')循环是完全冗余的;它只是不打印任何内容。在

完整功能:

def print_frame(n, m, c):
    print(c * m)
    for i in range(1, n - 1):
        print(c, ' ' * (m - 2), c, sep='')
    print(c * m)

快速演示:

>>> def print_frame(n, m, c):
...     print(c * m)
...     for i in range(1, n - 1):
...         print(c, ' ' * (m - 2), c, sep='')
...     print(c * m)
... 
>>> print_frame(5, 6, '*')
******
*    *
*    *
*    *
******

相关问题 更多 >