我写了一些代码,制作了一个任何大小的空心框:
_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
答案 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='')
打印在左上角的框中。它可以很容易地改变,将其转移到右上角。