python 使用while循环输出*组成的菱形实例

2020-09-27 0 919

一,python输出*组成的菱形(实心):

python代码:

x = int(input(\'请输入最长行的*的个数:\'))
y = int(input(\'请输入每个*之间的间隔:\'))
i = 1
while i<= x: #第一个while组成菱形上半部
 j = 1
 k = 1
 while k <= x-i:
  print(\' \'*y,end = \'\') #每一行最左边到第一个*之间的空格
  k += 1
 while j <= i:
  print(\'*\', end=\' \'*(2*y-1)) #每一行*的个数和*与*之间的间隔,要计算好才能上下对齐
  j += 1
 print(\'\\n\')
 i += 1
while i <= 2*x-1: #第二个while组成菱形下半部
 a = x+1
 b = 2*x-1
 while a <= i:
  print(\' \'*y, end=\'\')
  a += 1
 while b >= i:
  print(\'*\', end=\' \'*(2*y-1))
  b -= 1
 print(\'\\n\')
 i += 1

python 使用while循环输出*组成的菱形实例

二,python输出*组成的菱形(空心):

代码

x = int(input(\'请输入最长行的*的个数:\'))
y = int(input(\'请输入每个*之间的间隔:\'))
i = 1
#前两个while组成上半部
while i <= 1:  #菱形上顶点单独列出
 k = 1   #写出最左边到*的空格和第一个*
 while k <= x - i: 
  print(\' \' * y, end=\'\')
  k += 1
 print(\'*\')
 print(\'\\n\')
 i += 1
while i<= x: 
 k = 1
 j = 1
 while k <= x-i:  #这个while写出最左边到左边*的空格数
  print(\' \'*y,end = \'\')
  k += 1
 print(\'*\', end=\' \'*(2*y-1)) #这写出左边*,*相当于占一个空格,所以*后面的空格少一个,才能上下对齐
 while j <= i-2:    #这个while写出左边*到右边*的空格数
  print(\' \'*2*y,end=\'\')
  j += 1
 print(\'*\')    #这写出右边*
 print(\'\\n\')
 i += 1
#后两个while组成下半部
while i <= 2*x-2:  
 k = x+1
 j = 2*x-2
 while k <= i:
  print(\' \'*y, end=\'\')
  k += 1
 print(\'*\', end=\' \'*(2*y-1))
 while j-1 >= i:
  print(\' \' *2* y, end=\'\')
  j -= 1
 print(\'*\',end=\'\')
 print(\'\\n\')
 i += 1
while i <= 2*x-1:  #菱形下顶点单独列出
 k = 2 * x - 1
 while k >= i+2 - x:
  print(\' \'*y, end=\'\')
  k -= 1
 print(\'*\')
 print(\'\\n\')
 i += 1

python 使用while循环输出*组成的菱形实例

补充知识:Python — 使用循环语句永 “ * ” 输出一个对线菱形

#使用循环语句输出一个对线菱形
layer = int(input(\"请输入要打印的层数:\")) 
#保证输入的数字是奇数
while layer % 2 == 0:
	#偶数
	layer = int(input(\"输入层数,必须是一个奇数:\"))
#上半部分
for x in range(1, layer // 2 + 2):
	# 先打印空格
	space_num = layer - x
	for y in range(1, space_num + 1):
		print(\" \", end=\"\")

	# 在打印*
	star_num = 2 * x - 1
	for y in range(1, star_num + 1):
		if y == 1 or y == star_num or x == layer // 2 + 1 or y == star_num // 2 + 1:
			print(\"*\", end=\"\")
		else:
			print(\" \", end=\"\")
	# 换行
	print(\"\") 
#下半部分
for x in range(layer // 2, 0, -1):
	# 先打印空格
	space_num = layer - x
	for y in range(1, space_num + 1): 
		print(\" \", end=\"\")

	# 在打印*
	star_num = 2 * x - 1
	for y in range(1, star_num + 1):
		if y == 1 or y == star_num or x == layer // 2 + 1 or y == star_num // 2 + 1:
			print(\"*\", end=\"\")
		else:
			print(\" \", end=\"\")
	# 换行
	print(\"\")

输出举例:

python 使用while循环输出*组成的菱形实例

以上这篇python 使用while循环输出*组成的菱形实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持自学编程网。

遇见资源网 Linux python 使用while循环输出*组成的菱形实例 http://www.ox520.com/29511.html

常见问题

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务