小计
本人是一名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)
运行结果: