我想实现一个在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 = " ")
(注意。这是一个作业问题,但它是一个奖金问题(解决它是可选的))
答案 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, '*')
******
* *
* *
* *
******