用python打印出菱形图案

你可以使用Python编写一个简单的函数来打印菱形图案。下面是一个例子,这个函数接受一个参数n,表示菱形的高度,然后打印出一个菱形图案:

  1. def print_diamond(n):
  2. 上半部分

  3. for i in range(n):
  4. print(" " * (n - i - 1) + "*" * (2 * i + 1))
  5. 下半部分

  6. for i in range(n - 2, -1, -1):
  7. print(" " * (n - i - 1) + "*" * (2 * i + 1))
  8. 测试函数

  9. print_diamond(5)

这个函数首先打印菱形的上半部分,然后打印下半部分。range函数的参数是三个数字,依次表示起始值、终止值和步长。在第一个for循环中,i的值从0开始,一直到n-1,每次循环输出的星号数量是2 * i + 1,空格数量是n - i - 1。在第二个for循环中,i的值从n-2开始,一直到0,每次循环输出的星号数量是2 * i + 1,空格数量是n - i - 1。这样就可以打印出一个菱形图案了。

当然,我们可以继续改进这个函数,使其更加通用和灵活。例如,我们可以添加一个参数来控制菱形的大小,并使用嵌套的for循环来打印出更加对称的图案。下面是一个改进后的例子:

  1. def print_diamond(size):
  2. 获取菱形的上半部分

  3. for i in range(size):
  4. print(" " * (size - i - 1) + "*" * (2 * i + 1))
  5. 获取菱形的下半部分

  6. for i in range(size - 2, -1, -1):
  7. print(" " * (size - i - 1) + "*" * (2 * i + 1))
  8. 测试函数

  9. print_diamond(5)

在这个改进后的函数中,我们添加了一个名为size的参数,用来控制菱形的大小。这个函数的工作原理与之前的函数相同,但是它更加灵活,可以用来打印出不同大小的菱形。

当然,我们可以进一步扩展这个函数,使其能够处理更复杂的图案。例如,我们可以添加一个参数来控制菱形中间的填充字符,并使用字符串的重复操作和格式化操作来生成更复杂的图案。下面是一个进一步改进后的例子:

  1. def print_diamond(size, fill_char):
  2. 获取菱形的上半部分

  3. for i in range(size):
  4. print(" " * (size - i - 1) + fill_char * (2 * i + 1))
  5. 获取菱形的下半部分

  6. for i in range(size - 2, -1, -1):
  7. print(" " * (size - i - 1) + fill_char * (2 * i + 1))
  8. 测试函数

  9. print_diamond(5, "*")

在这个进一步改进后的函数中,我们添加了一个名为fill_char的参数,用来控制菱形中间的填充字符。这个函数的工作原理与之前的函数相同,但是它能够处理更复杂的图案。通过改变fill_char参数的值,我们可以生成不同填充字符的菱形图案。

相关推荐
VidDown6 小时前
24fps 转 25fps 不只是改个数字:帧率转换、PAL/NTSC 与音频补偿
python·网络协议·音视频·视频编解码·视频
死磕音视频8 小时前
让小模型做选择题:限定候选项并读取 logits 概率的入门实践(附 Python 代码)
开发语言·python·大模型·文本分类·transformers
凤山老林8 小时前
Spring Boot 接入国密 SM2/SM3/SM4 的一些实践记录
spring boot·后端·python
pride.li10 小时前
第03章 Python 教程-基础语法:注释与变量
服务器·前端·后端·python·算法·计算机视觉
databook10 小时前
用 Pydantic AI 从零搭建一个能干活的 AI Agent
人工智能·python
康小旺10 小时前
把 markitdown 做成 Windows 桌面版:拖进文档就出 Markdown,附 233MB→64MB 打包裁剪全过程
python
启观川11 小时前
数据结构与算法-第 3 章 常用算法-贪心算法
数据结构·笔记·python·算法·贪心算法
南笙北梦11 小时前
本地开源大模型多轮对话显存泄漏排查与修复实录
python
小羊没烦恼!11 小时前
如何在IIS6,7中部署ASP.NET网站?
数据库·后端·python·web安全·asp.net
钱栈up12 小时前
扫完 3.5 万文件后,我发现了 521 组散落的同名文件
爬虫·python·数据分析