Python打印“菱形”星号代码

小计

本人是一名python初学者,刚刚看到一道有趣的python问题,“用python如何在编译器中打印出菱形图案?”
因此决定尝试一下,代码不多,仅供参考。

代码

def printStar(intNum):               # 打印星号
    s = "*"
    spaceLength = intNum             # 空间长度(循环打印次数)
    blockCount = int(intNum/2+1)     # 第一个星号左边的空格数

    for i in range(spaceLength):     # 开始循环并打印
        result = s.rjust(blockCount) # rjust(i)方法:设定一个字符串长度i,不足则向左填充空格
        if i >= int(spaceLength/2):  # 菱形下方
            print(result)
            s = s[2:]
            blockCount -= 1
        else:                        # 菱形上方
            print(result)
            s = s+(2*"*")
            blockCount += 1


def oddOReven(intNum):               # 判断是否是奇数(偶数打印六边形,非菱形)

    if intNum%2 == 0:                
        print("please input a odd num data!!!")
    else: 
        printStar(intNum)

if __name__ == '__main__':
    
    while True:
        try:
            intNum = eval(input("please input a odd num data\n"))
            oddOReven(intNum)
        except BaseException as e:
            print("Please input as 1/2/3... Errorcode:%s" % e)

            
            

运行结果:

《Python打印“菱形”星号代码》

    原文作者:JohnnyLeaf
    原文地址: https://segmentfault.com/a/1190000013138757
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞