python - 打印简单图的功能
问题描述
解决方案
您在嵌套for
循环的正确轨道上,但您需要非常仔细地考虑每个循环必须迭代的值。它们不应该从零开始,而是从数据中的最低值开始。另一个复杂之处是必须首先打印最上面的行,因此行的循环实际上必须从最高 y 值开始并向后迭代。
def render_plot(a):
x = [point[0] for point in a]
y = [point[1] for point in a]
min_x = min(x)
max_x = max(x)
width = max_x - min_x + 1
print('#' * (width + 2))
for j in range(max(y), min(y) - 1, -1):
s = '#'
for i in range(min_x, max_x + 1):
if (i, j) in a:
s += '*'
else:
s += ' '
print(s + '#')
print('#' * (width + 2))
test = [(2, 3), (-1, 2), (1, -1), (0, 1)]
render_plot(test)
######
# *#
#* #
# * #
# #
# * #
######
推荐阅读
- python - TypeError:具有不同参数的python多重继承
- amazon-web-services - AWS ECS Fargate 禁用运行状况检查
- java - 如何为 InputText 将 JSON 转换为 Obj
- r - 选择最大组值 dplyr 上下的行
- c# - 在 c#.net 中将表单加载到面板上
- ubuntu - 带有 dpkg 的 ubuntu 18.04 中的 MS Teams 安装错误
- python - 为什么这个 python 正则表达式失败
- javascript - Vue组件内部的数组在控制台登录时有多个reactiveSetter和reactiveGetter方法
- amazon-web-services - 如何使用 CSV 机密文件对 AWS EC2 进行 ssh
- flutter - 如何在颤动中更改显示日期选择器的语言