Python3 根据命令行给的参数打印图像

油毡瓦公司最近建立了一个新的在线商店,并展示其进入数字空间,它希望允许其成员创建自定义数字瓷砖。 数字图块的示例如下。
图片说明
tile(磁贴)公司已要求您编写一个程序,该程序将根据某些命令行参数输出数字磁贴。

第一个命令行参数是tile(磁贴)的高度

第二个命令行参数是成员的名称,应该包含在磁贴中心的大写字母中

有一些限制要记住瓷砖的大小。

图块的高度必须是奇整数。

瓷砖的宽度恰好是瓷砖高度的3倍

成员的名称必须符合图块的宽度,否则无法生成图块

您可以假设将提供所有命令行参数,并且可以将第一个参数强制转换为整数。
图片说明

图片说明
图片说明

我已经写的:

import sys
height = int(sys.argv[1])
name = sys.argv[2]
width = 3 * height
print("---"*(height//2)+)

import sys

if len(sys.argv) == 1:
    print("Error: Usage like python a.py 5 tommy")
    exit(0)

height = int(sys.argv[1])
if height%2 == 0:
    print("Error: title height must be an odd number")
    exit(0)

width = 3 * height
name = sys.argv[2]
if(len(name) > width or len(name) == width or (width-len(name))%2 != 0):
    print("Error: name must fit within %d characters"%width)
    exit(0)


for i in range(1,(height-1)//2+1,1):
    print("-"*((width-3*(2*i-1))//2) + "+|+"*(2*i-1) + "-"*((width-3*(2*i-1))//2))

print("-"*((width-len(name))//2) + name + "-"*((width-len(name))//2))

for i in range((height-1)//2,0,-1):
    print("-"*((width-3*(2*i-1))//2) + "+|+"*(2*i-1) + "-"*((width-3*(2*i-1))//2))
import sys

height = int(sys.argv[1])
name = sys.argv[2].upper()

# 测试
# height = 13  # 高度
# name = 'xianxian'  # 姓名

num = int((height - 1) / 2)  # +|+的个数
width = 6 + (2*num) * 3
for i in range(num):
    print(("+|+" * (2*i + 1)).center(width, '-'))
print(name.center(width, '-'))
for i in range(num):
    print(("+|+" * ((2*num-1) - 2*i)).center(width, '-'))

图片说明

# encoding: utf-8


n = 7
name = 'samuel'

for i in range(1, n / 2):
    print(('-' * (3 + (n / 2 - i - 1) * 3)) + ('+|+') * (i * 2 - 1) + ('-' * (3 + (n / 2 - i - 1) * 3)))
print(('-' * ((n / 2) * 3 / 2 + len(name) / 2 + len(name) % 2)) + name.upper() + ('-' * ((n / 2) * 3 / 2 + len(name) / 2)))
for i in range(1, n / 2):
    print(('-' * (3 + (n / 2 - (n / 2 - i + 1) - 1) * 3)) + ('+|+') * ((n / 2 - i + 1) * 2 - 1) + ('-' * (3 + (n / 2 - (n / 2 - i + 1) - 1) * 3)))