python-3.x - python中的矩形框模式
问题描述
我编写了一个程序来在 python 中打印一个矩形框图案。但是,最后一个字符跳到了第一行的右侧。代码注释中提到了所需的输出和实际生成的输出。我的代码有什么问题?
for i in range(10):
print("x",end="")
for j in range(2):
print("x"+" "*9+"x")
for k in range(10):
print("x",end="")
#desired output: xxxxxxxxxxx my output: xxxxxxxxxxx x
# x x x x
# x x x x
# xxxxxxxxxxx xxxxxxxxxx
input()
解决方案
发生这种情况是因为第一个循环中最后x
打印出来的for
内容没有打印换行符(由于end=""
)。
如果你想要你想要的输出,你需要在第一个for
循环之后打印一个换行符(通过调用print()
),你还需要将range
第一个和最后一个for
循环的 11 更改为 11。
for i in range(11):
print("x",end="")
print()
for j in range(2):
print("x"+" "*9+"x")
for k in range(11):
print("x",end="")
输出:
xxxxxxxxxxx
x x
x x
xxxxxxxxxxx
另外,这种更通用的方法怎么样:
WIDTH = 11
HEIGHT = 4
for i in range(WIDTH):
print("x", end="")
print()
for j in range(HEIGHT - 2):
print("x" + " "*(WIDTH - 2) + "x")
for k in range(WIDTH):
print("x", end="")
它不考虑小尺寸,但它比以前更灵活。
推荐阅读
- python - 概括使用 numpy.meshgrid
- python - 所有 v4 请求都给出错误代码 403(禁止)
- javascript - 是否可以使用 HTML、CSS 和 Javascript 来创建可以访问 Iphone 蓝牙配对的 Iphone 应用程序?
- c# - 如何在我的机器人项目中解析包含来自 Microsoft QnA Maker 的转义序列的问题?
- css - 自动反应导入文件并导致构建错误?
- node.js - 无法使用 Node.js、mssql 和 express 连接到 Microsoft SQL Server
- azure - 天蓝色 blob 下载任务问题
- sql - 我可以参考这张表吗?
- java - 用记事本编写并通过命令提示符启动的 Java 程序在编写类时都会遇到相同的错误
- ibm-mq - 在向 mq 发送消息之前需要删除 rfh 标头