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


Posted in Python onApril 12, 2020

一,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循环输出*组成的菱形实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
在Python的Flask中使用WTForms表单框架的基础教程
Jun 07 Python
django项目运行因中文而乱码报错的几种情况解决
Nov 07 Python
python将文本分每两行一组并保存到文件
Mar 19 Python
python中的文件打开与关闭操作命令介绍
Apr 26 Python
Tensorflow 实现修改张量特定元素的值方法
Jul 30 Python
详解python数据结构和算法
Apr 18 Python
Python K最近邻从原理到实现的方法
Aug 15 Python
Python 格式化打印json数据方法(展开状态)
Feb 27 Python
Python运行提示缺少模块问题解决方案
Apr 02 Python
Python基于jieba, wordcloud库生成中文词云
May 13 Python
python可迭代对象去重实例
May 15 Python
python语言中有算法吗
Jun 16 Python
Python利用for循环打印星号三角形的案例
Apr 12 #Python
Python3实现打印任意宽度的菱形代码
Apr 12 #Python
pandas使用之宽表变窄表的实现
Apr 12 #Python
python print 格式化输出,动态指定长度的实现
Apr 12 #Python
设置jupyter中DataFrame的显示限制方式
Apr 12 #Python
Python批量将图片灰度化的实现代码
Apr 11 #Python
Python Scrapy框架:通用爬虫之CrawlSpider用法简单示例
Apr 11 #Python
You might like
自动跳转中英文页面
2006/10/09 PHP
PHP UTF8编码内的繁简转换类
2009/07/20 PHP
PHP执行批量mysql语句的解决方法
2013/05/02 PHP
PHP autoload与spl_autoload自动加载机制的深入理解
2013/06/05 PHP
CodeIgniter基于Email类发邮件的方法
2016/03/29 PHP
tp5递归 无限级分类详解
2019/10/18 PHP
根据出生日期自动取得星座的js代码
2010/07/20 Javascript
一个基于jquery的文本框记数器
2012/09/19 Javascript
caller和callee的区别介绍及演示结果
2013/03/10 Javascript
javascript中的循环语句for语句深入理解
2014/04/04 Javascript
jQuery动态创建html元素的常用方法汇总
2014/09/05 Javascript
Nodejs中解决cluster模块的多进程如何共享数据问题
2016/11/10 NodeJs
实现隔行换色效果的两种方式【实用】
2016/11/27 Javascript
JS判断鼠标进入容器的方向与window.open新窗口被拦截的问题
2016/12/23 Javascript
解析ajaxFileUpload 异步上传文件简单使用
2016/12/30 Javascript
Javascript 实现匿名递归的实例代码
2017/05/25 Javascript
如何在vue里添加好看的lottie动画
2018/08/02 Javascript
解决vue-router 二级导航默认选中某一选项的问题
2019/11/01 Javascript
Vue-Ant Design Vue-普通及自定义校验实例
2020/10/24 Javascript
python在linux中输出带颜色的文字的方法
2014/06/19 Python
python机器人行走步数问题的解决
2018/01/29 Python
详解Python with/as使用说明
2018/12/13 Python
对python 多线程中的守护线程与join的用法详解
2019/02/18 Python
selenium python 实现基本自动化测试的示例代码
2019/02/25 Python
python的等深分箱实例
2019/11/22 Python
Python中的流程控制详解
2021/02/18 Python
在加拿大在线租赁和购买电子游戏:Game Access
2019/09/02 全球购物
专业实习自我鉴定
2013/10/29 职场文书
年度考核自我鉴定
2014/02/02 职场文书
公司年会抽奖活动主持词
2014/03/31 职场文书
青年教师师德演讲稿
2014/08/26 职场文书
个人创业事迹材料
2014/12/30 职场文书
参观监狱警示教育心得体会
2016/01/15 职场文书
导游词之太原天龙山
2020/01/02 职场文书
Python开发五子棋小游戏
2022/04/28 Python
Tomcat弱口令复现及利用
2022/05/06 Servers