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处理JSON数据并生成条形图
Aug 05 Python
详解python中的json的基本使用方法
Dec 21 Python
Python cookbook(数据结构与算法)从序列中移除重复项且保持元素间顺序不变的方法
Mar 13 Python
解决Python2.7中IDLE启动没有反应的问题
Nov 30 Python
BP神经网络原理及Python实现代码
Dec 18 Python
python使用zip将list转为json的方法
Dec 31 Python
解决Django Static内容不能加载显示的问题
Jul 28 Python
tornado+celery的简单使用详解
Dec 21 Python
python 实现多维数组(array)排序
Feb 28 Python
python中的selenium安装的步骤(浏览器自动化测试框架)
Mar 17 Python
jupyter notebook 恢复误删单元格或者历史代码的实现
Apr 17 Python
Django生成数据库及添加用户报错解决方案
Oct 09 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
推荐几部必看的DC动画电影
2020/03/03 欧美动漫
单一index.php实现PHP任意层级文件夹遍历(Zjmainstay原创)
2012/07/31 PHP
PHP生成Gif图片验证码
2013/10/27 PHP
php中常见的sql攻击正则表达式汇总
2014/11/06 PHP
支持png透明图片的php生成缩略图类分享
2015/02/08 PHP
thinkphp在php7环境下提示Cannot use ‘String’ as class name as it is reserved的解决方法
2016/09/30 PHP
PHP 文件上传后端处理实用技巧方法
2017/01/06 PHP
Yii2实现UploadedFile上传文件示例
2017/02/15 PHP
thinkphp自定义权限管理之名称判断方法
2017/04/01 PHP
使用Javascript和DOM Interfaces来处理HTML
2006/10/09 Javascript
javascript学习笔记(八) js内置对象
2012/06/19 Javascript
JS+ACTIVEX实现网页选择本地目录路径对话框
2013/03/18 Javascript
setInterval,setTimeout与jquery混用的问题
2013/04/08 Javascript
js获取本机的外网/广域网ip地址完整源码
2013/08/12 Javascript
jQuery调用RESTful WCF示例代码(GET方法/POST方法)
2014/01/26 Javascript
javascript动态向网页中添加表格实现代码
2014/02/19 Javascript
node.js中的fs.openSync方法使用说明
2014/12/17 Javascript
JS+CSS实现简单滑动门(滑动菜单)效果
2015/09/19 Javascript
如何提高Dom访问速度
2017/01/05 Javascript
Angular的$http的ajax的请求操作(推荐)
2017/01/10 Javascript
Bootstrap modal 多弹窗之叠加引起的滚动条遮罩阴影问题
2017/02/27 Javascript
JS实现多级菜单中当前菜单不随页面跳转样式而发生变化
2017/05/30 Javascript
Bootstrap datepicker日期选择器插件使用详解
2017/07/26 Javascript
详解React Native网络请求fetch简单封装
2017/08/10 Javascript
React数据传递之组件内部通信的方法
2017/12/31 Javascript
js+for循环实现字符串自动转义的代码(把后面的字符替换前面的字符)
2020/12/24 Javascript
pyqt5利用pyqtDesigner实现登录界面
2019/03/28 Python
利用Python的folium包绘制城市道路图的实现示例
2020/08/24 Python
伦敦眼门票在线预订:London Eye
2018/05/31 全球购物
手工制作的意大利礼服鞋:Ace Marks
2018/12/15 全球购物
梅西百货官网:Macy’s
2020/08/04 全球购物
优纳科技软件测试面试题
2012/05/15 面试题
产品销售计划书
2014/05/04 职场文书
小学语文课《掌声》教学反思
2016/03/03 职场文书
mysql 8.0.24 安装配置方法图文教程
2021/05/12 MySQL
带你了解Java中的ForkJoin
2022/04/28 Java/Android