Python打印下面的图形: * *** ***** ******* ***** *** *
时间: 2023-11-14 16:12:56 浏览: 170
这是一个常见的打印菱形的问题,可以使用Python编写代码来实现。以下是三个不同版本的代码,可以根据需要选择其中一个使用:
1. 简单版本:
layer = int(input("请输入你要打印的行数:"))
for i in range(1,layer+1):
#计算空格的个数
spce_num = layer - i
for j in range(0,spce_num):
print(" ",end="")
#计算*个数
star_num = 2 * i - 1
for j in range(0,star_num):
print("*",end="")
print("")
2. 带有输入检查的版本:
layer = int(input("请输入你要打印的行数:"))
while layer % 2 == 0:
layer = int(input("请输入正确的要打印的行数,注意是奇数行:"))
#上半部分
for i in range(1,layer // 2 + 2):
#计算空格的个数
spce_num = layer - i
for j in range(0,spce_num):
print(" ",end="")
#计算*个数
star_num = 2 * i - 1
for j in range(0,star_num):
print("*",end="")
print("")
#下半部分
for i in range(layer // 2 ,0,-1):
#计算空格的个数
spce_num = layer - i
for j in range(0,spce_num):
print(" ",end="")
#计算*个数
star_num = 2 * i - 1
for j in range(0,star_num):
print("*",end="")
print("")
3. 带有空心效果的版本:
layer = int(input("请输入你要打印的行数:"))
while layer % 2 == 0:
layer = int(input("请输入正确的要打印的行数,注意是奇数行:"))
#上半部分
for i in range(1,layer // 2 + 2):
#计算空格的个数
spce_num = layer - i
for j in range(0,spce_num):
print(" ",end="")
#计算*个数
star_num = 2 * i - 1
for j in range(0,star_num):
#判断是不是第一个和最后一个
if j == 0 or j == star_num - 1:
print("*",end="")
else:
print(" ",end="")
print("")
#下半部分
for i in range(layer // 2 ,0,-1):
#计算空格的个数
spce_num = layer - i
for j in range(0,spce_num):
print(" ",end="")
#计算*个数
star_num = 2 * i - 1
for j in range(0,star_num):
#判断是不是第一个和最后一个
if j == 0 or j == star_num - 1:
print("*",end="")
else:
print(" ",end="")
print("")
阅读全文