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 相关文章推荐
pycharm 使用心得(五)断点调试
Jun 06 Python
跟老齐学Python之用Python计算
Sep 12 Python
Python中条件判断语句的简单使用方法
Aug 21 Python
python导入时小括号大作用
Jan 10 Python
详解django中自定义标签和过滤器
Jul 03 Python
Python实现查找二叉搜索树第k大的节点功能示例
Jan 24 Python
ubuntu 16.04下python版本切换的方法
Jun 14 Python
将pytorch转成longtensor的简单方法
Feb 18 Python
Python实现手绘图效果实例分享
Jul 22 Python
Python连接mysql数据库及简单增删改查操作示例代码
Aug 03 Python
通过代码简单了解django model序列化作用
Nov 12 Python
Pycharm中使用git进行合作开发的教程详解
Nov 17 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
php中时间轴开发(刚刚、5分钟前、昨天10:23等)
2011/10/03 PHP
php 中的4种标记风格介绍
2012/05/10 PHP
PHPStudy下如何为Apache安装SSL证书的方法步骤
2019/01/23 PHP
ASP小贴士/ASP Tips javascript tips可以当桌面
2009/12/10 Javascript
了解jQuery技巧来提高你的代码(个人觉得那个jquery的手册很不错)
2012/02/10 Javascript
jquery限制输入字数,并提示剩余字数实现代码
2012/12/24 Javascript
js/jquery获取文本框输入焦点的方法
2014/03/04 Javascript
ztree获取选中节点时不能进入可视区域出现BUG如何解决
2015/12/03 Javascript
javascript日期比较方法实例分析
2016/06/17 Javascript
HTML Table 空白单元格补全的简单实现
2016/10/13 Javascript
jquery实现左右滑动式轮播图
2017/03/02 Javascript
AngularJS动态菜单操作指令
2017/04/25 Javascript
微信小程序版翻牌小游戏
2018/01/26 Javascript
nodejs用gulp管理前端文件方法
2018/06/24 NodeJs
tweenjs缓动算法的使用实例分析
2019/08/26 Javascript
element跨分页操作选择详解
2020/06/29 Javascript
[01:02]DOTA2上海特锦赛SHOWOPEN
2016/03/25 DOTA
用于统计项目中代码总行数的Python脚本分享
2015/04/21 Python
Python 闭包的使用方法
2017/09/07 Python
python3实现mysql导出excel的方法
2019/07/31 Python
Python中xml和dict格式转换的示例代码
2019/11/07 Python
jupyter notebook参数化运行python方式
2020/04/10 Python
Python3.7下安装pyqt5的方法步骤(图文)
2020/05/12 Python
Python Socket TCP双端聊天功能实现过程详解
2020/06/15 Python
Python 字符串池化的前提
2020/07/03 Python
css图标制作教程制作云图标
2014/01/19 HTML / CSS
建筑实习自我鉴定
2013/10/18 职场文书
《秋姑娘的信》教学反思
2014/02/28 职场文书
七一讲话心得体会
2014/09/05 职场文书
2014年“世界无车日”活动方案
2014/09/21 职场文书
2014年向国旗敬礼活动总结
2014/09/27 职场文书
2014年社区党建工作汇报材料
2014/11/02 职场文书
实习班主任自我评价
2015/03/11 职场文书
上课讲话检讨书范文
2015/05/07 职场文书
美容院管理规章制度
2015/08/05 职场文书
nginx实现多geoserver服务的负载均衡
2022/05/15 Servers