首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >试图使ASCII图python 3

试图使ASCII图python 3
EN

Stack Overflow用户
提问于 2013-03-20 13:47:59
回答 1查看 1.3K关注 0票数 2

我正在尝试使用python循环生成一个ASCII图。目标是让用户输入一个输入(公式)、x+1等,然后打印出图表。图的域和范围仅从-10到+10。

我设法使它正常工作,但只适用于公式(-x+1),它是(x+1)在我的代码中。

我知道问题在于,因为我的循环开始从顶部打印它,所以我必须改变它,以便它在负方向上打印循环,但是我一直在研究如何将我的图组合成一个嵌套的循环,以便它正确地打印出来,然后替换相应的函数输出位置。

我现在在想,也许我应该让它打印出'*‘线,然后把它周围的图形打印出来,但我认为这更复杂。

如果你需要的话,我可以给你更多的信息。

任何建设性的想法都将不胜感激。

这是我的密码,让我知道你的想法。

代码语言:javascript
复制
height=20
w=10
x=0
for a in range(0,11):
    ps= ((" " * w)+('|')+(" " * w))
    ps=list(ps)
    ps[x]="*"
    x=x+1
    pp="".join(ps)
    print(pp)



rs=(('-'*10)+('+')+('-'*10))
rs=list(rs)
rs[x]="*"
rr="".join(rs)
print(rr)

for a in range(0,10):
    ws = ((" " * w)+('|')+(" " * w))
    ws=list(ws)
    y=x+1
    ws[y]="*"
    x=x+1
    wp="".join(ws)
    print(wp)

这是下面的产出:

代码语言:javascript
复制
*         |          
 *        |          
  *       |          
   *      |          
    *     |          
     *    |          
      *   |          
       *  |          
        * |          
         *|          
          *          
----------+*---------
          | *        
          |  *       
          |   *      
          |    *     
          |     *    
          |      *   
          |       *  
          |        * 
          |         *
EN

回答 1

Stack Overflow用户

发布于 2013-03-20 14:07:52

下面是解决问题的另一种方法:

  1. 创建一个2d数组,每个元素都是一个字符
  2. 预先填写背景图线。
  3. 循环遍历每个x位置,并计算圆角y位置。
  4. 将位置作为*插入到2d数组中
  5. 最后,将整个2d数组打印为一组行。

对于5,这里有一个方便的python代码片段- ''.join(myArray)

您将注意到,这个解决方案方法将数据结果的计算与实际输出分开。这通常是在一个简单的程序中分离逻辑的好方法:

  1. 处理、过滤、消毒和组织程序输入数据。
  2. 对输入进行数据处理
  3. 制定、格式化和输出处理过的数据

如果您按照这三个通用/“元”步骤来组织您的程序,那么它可以帮助您更多地组织代码并使其更容易理解。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15525416

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档