weixin_42338831 2019-09-02 14:14 采纳率: 50%
浏览 254
已采纳

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

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

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

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

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

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

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

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

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

图片说明
图片说明

我已经写的:

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

  • 写回答

3条回答 默认 最新

  • J4cks0n 2019-09-02 17:22
    关注
    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))
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?