Python—循环加强

1.使用循环打印等腰三角形

# 画三角形层数为n
# 第i层有空格:n-i
# 第i层有*:2*i-1
n = int(input("层数:"))#层数=n
for i in range(1, n + 1):#范围在1~n# 画空格for _ in range(1, n - i + 1):  # _不用显示,用于表示;i表示第几层print(" ",end="")#end=""相当于不换行输出# 画*for _ in range(1, 2 * i):print("*",end="")print()#print命令自带换行功能

2.使用循环打印菱形

# 菱形的上层数:n//2 +1
# 第i层有空格:up -i
# 第i层有*:2*up-1
n = int(input("输入菱形的层数(必须是奇数):"))
up = n // 2 + 1
for i in range(1,up+1):#范围1~up# 画空格for _ in range(1,up - i+1):print(" ", end="")# 画星星for _ in range(1,2 * i):print("*", end="")print()
# 下半部分:n//2
# 空格数:i
# 星星数:n- i*2
down = n // 2
for i in range(1, down + 1):# 画空格for _ in range(1,i+1):print(" ", end="")# 画星星for _ in range(1,n - i * 2+1):print("*", end="")print()

 

3.使用循环打印空心菱形

# 空心菱形意味着每行只画第一颗星星和最后一颗星星,其他位置补空格
# 所以可以得到上部分 j==0 或者 j==2*i-2 画星星
#         下部分 j ==0 或者 j==n-i*2-1画星星
n = int(input("输入菱形的层数(必须是奇数):"))
up = n // 2 + 1
down = n // 2
for i in range(1, up + 1):#画空格for _ in range(up - i):#范围0~up-iprint(" ", end="")#画星星for j in range(2 * i - 1):#if j == 0 or j == i * 2 - 2:#当j=0时(第一次循环),j=i*2-1-1(最后一次序循环)画星星print("*",end="")else:print(" ",end="")#其他全部画成空格print()
down = n // 2
for i in range(1, down + 1):for _ in range(i):print(" ", end="")for j in range(n - i * 2):#范围0~n-i*2if j == 0 or j == n - i * 2 - 1:  # 当j=0时(第一次循环),j=i*2-1-1(最后一次序循环)画星星print("*", end="")else:print(" ", end="")  # 其他全部画成空格print()

 4.使用循环打印横空心菱形

n = int(input("输入菱形的层数(必须是奇数):"))
up = n // 2 + 1
down = n // 2
for i in range(1, up + 1):#画空格for _ in range(up - i):print(" ", end="")#画星星for j in range(2 * i - 1):#if j == 0 or j == i * 2 - 2 or i == up:#当j=0时(第一次循环),j=i*2-1-1(最后一次序循环),当i=最后一行全部画星星print("*",end="")else:print(" ",end="")print()
down = n // 2
for i in range(1, down + 1):for _ in range(i):print(" ", end="")for j in range(n - i * 2):if j == 0 or j == n - i * 2 - 1:  print("*", end="")else:print(" ", end="") print()

5.使用循环打印十字空心菱形

n = int(input("输入菱形的层数(必须是奇数):"))
up = n // 2 + 1
down = n // 2
for i in range(1, up + 1):#画空格for _ in range(up - i):print(" ", end="")#画星星for j in range(2 * i - 1):if j == 0 or j == 2 * i - 2 or i == up or j == (2 * i - 1) // 2:#前面的基础上加上每一行的中间画一个星星(2 * i - 1) // 2print("*",end="")else:print(" ",end="")print()
down = n // 2
for i in range(1, down + 1):for _ in range(i):print(" ", end="")for j in range(n - i * 2):if j == 0 or j == n - i * 2 - 1 or j == (n - i * 2) // 2:#前面的基础上加上每一行的中间画一个星星(n - i * 2) // 2print("*", end="")else:print(" ", end="")print()

6.使用循环打印十字箭头

n = int(input("输入的层数(必须是奇数):"))
up = n // 2 + 1
down = n // 2
for i in range(1, up + 1):#画空格for _ in range(up - i):print(" ", end="")#画星星for j in range(2 * i - 1):if j == 0 or j == 2 * i - 2 or i == up or j == (2 * i - 1) // 2:print("*",end="")else:print(" ",end="")print()
down = n // 2
for i in range(1, down + 1):for _ in range(i):print(" ", end="")for j in range(n - i * 2):if  j == (n - i * 2) // 2:#将第一颗星星和最后一颗星星删除print("*", end="")else:print(" ", end="")print()

7.(显示一个金字塔)编写程序提示用户输入一个在1到15之间的整数,然后显示一个金字塔

#分成两个部分解决问题
#当三角形为n层时
#第i层有n-i个空格
#第i层的数字:从i开始,1结束。range(i,1)
#左边三角形
n = int(input("请输入三角形的层数:"))
for i in range(1, n + 1):#画空格for _ in range(n - i):print("\t", end="")#画数字for j in range(i, 0, -1):print(f"{j}\t", end="")
#右边三角形for j in range(2, i + 1):print(f"{j}\t", end="")print()

8.(使用循环显示四种模式)使用嵌套循环在四个独立的程序中显示下面四种模式。

A

n = int(input("请输入三角形的层数:"))
for i in range(1, n + 1):# 画空格for _ in range(n - i):print("", end="")# 画数字for j in range(1, i + 1):print(f"{j}\t", end="")print()

B

n = int(input("请输入打印的层数:"))
for i in range(n, 0, -1):for j in range(1, i + 1):print(f"{j}\t", end="")print()

C

n = int(input("请输入三角形的层数:"))
for i in range(1, n + 1):#画空格for _ in range(n - i):print("\t", end="")#画数字for j in range(i, 0, -1):print(f"{j}\t", end="")print()

D

n = int(input("请输入层数:"))
for i in range(n, 0, -1):for _ in range(n - i):print("\t", end="")for j in range(1, i + 1):print(f"{j}\t", end="")print()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/601027.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

windows下使用的的数字取证工作工具套装:forensictools

推荐一套windows下使用的的数字取证工作工具套装:forensictools 部分工具包括: ▫️exiftool,一个命令行应用程序和 Perl 库,用于读写元信息。 ▫️YARA,一款开源工具,用于对恶意软件样本进行识别和分类。…

2024智能计算、大数据应用与信息科学国际会议(ICBDAIS2024)

2024智能计算、大数据应用与信息科学国际会议(ICBDAIS2024) 会议简介 智能计算、大数据应用与信息科学之间存在相互依存、相互促进的关系。智能计算和大数据应用的发展离不开信息科学的支持和推动,而信息科学的发展又需要智能计算和大数据应用的不断拓展和应用。智…

如何选择苹果iOS系统的企业签名分发平台

哈喽,大家好呀,淼淼有和大家见面啦,前两期讲了分发内测的一些相关知识,这一期咱们来聊聊企业签名分发平台的相关知识。最近移动应用市场的竞争一天比一天要激烈,许多做开发的小伙伴们都在为此发愁,愁着该怎…

Splatstudio 学习笔记

1. 3DGS 是全图的Render, 因此特地写了 full_images_datamanger.py 每个step 取出一张图像。 返回值是一张 全图的 RGB 和对应的 Camera 2. 3D GS 没有生成光线,因此 不需要指定near 和 far,即 collider是None。 但需要对3D 高斯球进行初始化&#xff…

Django检测到会话cookie中缺少HttpOnly属性手工复现

一、漏洞复现 会话cookie中缺少HttpOnly属性会导致攻击者可以通过程序(JS脚本等)获取到用户的cookie信息,造成用户cookie信息泄露,增加攻击者的跨站脚本攻击威胁。 第一步:复制URL:http://192.168.43.219在浏览器打开,…

【Linux C | 多线程编程】线程同步 | 互斥量

😁博客主页😁:🚀https://blog.csdn.net/wkd_007🚀 🤑博客内容🤑:🍭嵌入式开发、Linux、C语言、C、数据结构、音视频🍭 ⏰发布时间⏰: 本文未经允许…

k8snode节点kubeadm join主节点失败,请问你们有什么好的办法吗?

K8S版本:1.20.9,docker也是1.20的 在网上找了,说是关闭交换区swap,这个也关了,防火墙也关了,现在kubelet无法启动,网上查了只有kubeadm init后kubelet才能启动,而init后10250端口会…

货物摆放-C++题解

计算本题前先了解一下约数 约数,又称因数。整数a除以整数b(b≠0) 除得的商正好是整数而没有余数,我们就说a能被b整除,或b能整除a。a称为b的倍数,b称为a的约数 然后首先要求出n的所有因数,因为题目需要满足的条件是nLWH…

云南省气象探空业务升级为北斗探空观测系统

云南省气象探空业务升级为北斗探空观测系统 近日,云南省首套北斗探空观测系统在普洱市思茅区高空气象观测站建成并调试成功,这意味着云南省气象探空业务将从L波段雷达探测升级到北斗探空观测系统。 (图片来源于网络) 北斗探空观…

SpringCloud学习(12)-SpringCloudAlibaba-Sentinel

Sentinel介绍 Sentinel 是面向分布式、多语言异构化服务架构的流量治理组件,主要以流量为切入点,从流量路由、流量控制、流量整形、熔断降级、系统自适应过载保护、热点流量防护等多个维度来帮助开发者保障微服务的稳定性。 官网 home | Sentinel 下载…

k8s部署efk

环境简介: kubernetes: v1.22.2 helm: v3.12.0 elasticsearch: 8.8.0 chart包:19.10.0 fluentd: 1.16.2 chart包: 5.9.4 kibana: 8.2.2 chart包:10.1.9 整体架构图: 一、Elasticsearch安装…

实体类转换视图类,转换器

1、以前我都是直接用spring提供的:BeanUtils.copyProperties(entuty, vo1);方法去转换。 2、后面又学到了转换hutool工具类的转换方法。 3、现在又学了一个利用mapstruct框架转换。 package com.jsrDom.controller;import cn.hutool.core.bean.BeanUtil; import c…