python - 如何在python中打印形状?寻找一种不同的、更有效的方式
问题描述
试过很多方法,比如逐行打印:
打印 (” - - - - ”)
打印 ("| |") 打印 ("| |")
打印 (” - - - - ”)
还有 * ,
打印 (”********”)
打印(“* ”)打印(“ *”)
打印 (”********”)
就个人而言,我认为破折号 (-) 看起来比星星 (*) 更平滑。还有其他方法可以做到这一点吗?
解决方案
您更愿意拥有以下哪一项:
┌────────┐
│ │
│ │
└────────┘
--------
| |
| |
--------
除非你出于某种原因需要输出纯 ASCII——或者你想要那种复古的 APPLE ][ 外观——你应该用画框字符绘制盒子。这实际上并不比用连字符和管道以及其他不用于画线的东西来绘制它们更难:
horiz = '\u2500'
vert = '\u2502'
ul = '\u250c'
ur = '\u2510'
ll = '\u2514'
lr = '\u2518'
def box(width, height):
top = ul + horiz*(width-2) + ur
middle = vert + ' '*(width-2) + vert
bottom = ll + horiz*(width-2) + lr
lines = [top] + [middle]*(height-2) + [bottom]
return '\n'.join(lines)
print(box(10, 4))
有时甚至更容易从 PyPI 中获取你想要的库,例如terminaltables
用于绘制带边框的表格,或asciitree
用于绘制树,如 DOS 和 Unix 树命令等。
或者,根据您要执行的操作,也许您实际上想要编写一个curses
或urwid
类似的全屏控制台应用程序,并让它在您的窗口周围绘制框。
推荐阅读
- c# - 将 listView 表导出到 Excel
- python - 如何在以下代码中修复 Python 中的“int object is not subscriptable”?
- postgresql - 选择组内具有第二高值的行
- android - 如何从 Kotlin 的 Firebase 存储实例更改 maxUploadRetryTimeMillis?
- sql - Tableau 中的自定义 SQL,CASE 创建的字段
- python - 从 arduino 到搅拌机的串行信号
- python - CPython - 打印回溯
- javascript - Twilio 的 twilio.device 正在设置但破坏了我的 React 应用程序?
- android - ony-if-cached 错误:通过改造实现缓存
- javascript - 使用从一页到另一页的平滑滚动时隐藏部分标题