2013-11-28 217 views
0

幀我想實現的是打印在python.It框架應打印一些像這樣的事情給出兩個整數,4和7例如字符「$」當一個函數打印在python

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

到目前爲止,我只能做到這一點

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

所以我現在的問題是如何覆蓋frame.Here的剩餘一邊是我當前的代碼

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

(Note.This是一門功課的問題,但它是獎金問題(解決它是可選))

回答

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, '*') 
****** 
* * 
* * 
* * 
****** 
+0

這真的幫我縮短了我的代碼和解決,我已經忘記了altogether.This問題,特別是,打印(C * M)真的打開了我的心,謝謝 – Emma