在python中打印框架

时间:2013-11-28 10:52:46

标签: python python-3.x

我想实现一个在python中打印框架的函数。当给出两个整数,4和7以及char'$'时,它应该打印一些这样的东西

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

到目前为止,我只能这样做

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

所以我现在的问题是如何覆盖框架的剩余部分。这是我目前的代码

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 = " ")

(注意。这是一个作业问题,但它是一个奖金问题(解决它是可选的))

1 个答案:

答案 0 :(得分:1)

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

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

或使用:

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

请注意,您还需要循环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, '*')
******
*    *
*    *
*    *
******