1.题目

根据您想输入菱形的层数,在显示屏上输出相应层数的菱形

2.代码

layer = int(input("请输入正确的要打印的行数,注意是奇数行:"))  #因为只有奇数行才能实现上面比下面多一层,依此来实现菱形
#上半部分 
#由于菱形必须要是奇数层数且娶不到+1的
for i in range(1,layer // 2 + 2): 
#计算空格的个数 
#由于空格数是根据输入的层数减去遍历到的层数来实现
	spce_num = layer // 2 + 1 - i 
	#从空格来打印空格的层数
	for j in range(0,spce_num):#如果输入space_num + 1则会导致空格抢占了数字的位置
		print(" ",end="") 
 #计算*个数
	star_num = 2 * i - 1
	for j in range(0,star_num):
		print("*",end="") 
	print("") 
#下半部分 
#由于for是前闭后开 即用整除后的取不到并且菱形必须是奇数 奇数整除(舍去余数,保留整除的数)而且下半部分比上面一层少以此来实现菱形的打印
for i in range(layer // 2 ,0,-1): # (3,0,-1)
#计算空格的个数 
#找空格的规律:用输入要打印的层数,减去当前的层数
	spce_num = layer // 2 + 1 - i 
	#从0到空格
	for j in range(0,spce_num):
		print(" ",end="")
   #计算*个数 
	star_num = 2 * i - 1
	#然后从0开始到星号个数来进行遍历
	for j in range(0,star_num): 
		print("*",end="") 
	print("")

3.结果

 

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐