中空盒子里面的文字

时间:2017-01-31 01:04:10

标签: python format

我写了一些代码,制作了一个任何大小的空心框:

_char = input('Please enter a character: ')
width = int(input('Please enter a positive integer between 1 and 15: '))
height = int(input('Please enter a positive integer between 1 and 15: '))
for row in range(width):
    for col in range(height):
         print( _char if row in(0,width-1) or col in(0,height-1) else ' ', end=' ')
    print()
print(width, 'x', height, sep='')

输出:

$ $ $ $ $ $ $ 
$           $ 
$           $ 
$           $ 
$ $ $ $ $ $ $ 
5 x 7

但是我想把'5x7'放在盒子里面:

$ $ $ $ $ $ $ 
$        5x7$ 
$           $ 
$           $ 
$ $ $ $ $ $ $

以及程序运行的任何其他大小 使用python 3.5.2

2 个答案:

答案 0 :(得分:0)

您可以使用python具有的重复字符串函数(即“x”* 3转换为“xxx”)执行此类操作。

while True:
  _char = str(input('Please enter a character: '))
  if len(_char)==1: break
  print("sorry, that's more than one character")
width = min(15,max(6,abs(int(input('Please enter a width between 6 and 15: ')))))
height = min(15,max(3,abs(int(input('Please enter a height between 3 and 15: ')))))

lng=len(str(width))+len(str(height))+1
print(_char*width)
print(_char + ' '*(width-lng-2) + "%ix%i"%(width,height)+ _char)
print((_char + ' '*(width-2) + _char +"\n")*(height-3),end="")
print(_char*width)

你必须将盒子的宽度限制为6,因为你可以输入一个两位数的高度,你现在需要担心额外的数字。或者你可以在接受他/她的输入之前检查用户输入的内容是否适合 - 但是必须实现(即宽度为5将允许文本适合框,只要高度小于10 - 可以轻松检查的条件。)

请注意,这使用的是python 3.5。附加到第2个到最后一个打印的end =“”构造确保打印不会以回车/换行符结束。

它适用于我尝试过的所有内容。

答案 1 :(得分:0)

_char = input('Please enter a character: ')
width = int(input('Please enter a positive integer between 1 and 15: '))
height = int(input('Please enter a positive integer between 1 and 15: '))
for row in range(width):
    for col in range(height):
         if row in(0,width-1) or col in(0,height-1):
             print(_char, end=' ')
         elif row == 1 and col == 1:
             print(width, end = 'x')
         elif row == 1 and col == 2:
             print(height, end = ' ')
         else:
             print(' ', end=' ') 
    print()
print(width, 'x', height, sep='')

打印在左上角的框中。它可以很容易地改变,将其转移到右上角。