Untitled

 avatar
unknown
python
2 years ago
796 B
5
Indexable
import argparse
from ast import parse

class WidthAction(argparse.Action):
    def __call__(self, parser, args, values, option_string=None):
        if values % 2 == 0:
            raise ValueError('width must be odd number!')
        setattr(args, self.dest, values)

parser = argparse.ArgumentParser(description='Stars printing program')
parser.add_argument('-w', '--width', type=int, required=True, help='Maximum width of the drawing, must be odd number',action=WidthAction)
args = parser.parse_args()

WIDTH = args.width

def star_line_string(stars, width):
    spaces = (width - stars) // 2
    return f"{' ' * spaces}{'*' * stars}{' ' * spaces}"

for i in range(1, WIDTH + 1, 2):
    print(star_line_string(i, WIDTH))

for i in range(WIDTH - 2, 0, -2):
    print(star_line_string(i, WIDTH))
Editor is loading...