【问题标题】:Python - Writing pseudocode? [closed]Python - 编写伪代码? [关闭]
【发布时间】:2010-11-29 22:46:57
【问题描述】:

您将如何编写伪代码来绘制一个 8×8 方格棋盘,其中没有一个方格必须是满的? (可以全部为空)

我不太明白伪代码的概念。

【问题讨论】:

  • 考虑编写伪代码,就像向另一个人解释它一样 - 只要评分者清楚发生了什么,它通常不必符合任何特定语法。
  • -1:编写伪代码 == 为我做作业。

标签: python pseudocode


【解决方案1】:

我会更通用,例如。

Loop with x from 1 to 8
    Loop with y from 1 to 8
        draw square at x, y

【讨论】:

  • 那么这就是它的全部内容了吗?您不必包含实际代码?
  • @Steve:伪=假。所以不需要代码:-)
【解决方案2】:

伪代码以类似于代码但不完全代码的形式写出代码。所以打开一个文件并打印出它的文本行

if file exists(path_to_file) then :
 open (path_to_file)
 for each line in file  : print the line of the file

您应该做的就是创建您的问题所需的步骤序列,然后像这样写出来。既然你提到了 python,就在你的伪代码中使用更像 python 的语法。

我怀疑你的问题会鼓励你考虑如何制作函数和类,先写伪代码会帮助你做到这一点。

【讨论】:

  • 您建议在伪代码中使用更类似于 Python 的语法。但是,它不再是伪代码了。所有伪代码都应该与语言无关,使用简单的英语(或者,在某些情况下,使用您的母语)。不应使用任何语言结构。
  • 鉴于语言的数量之多,您的伪代码可能至少与其中一种相似。我说,不要担心,只要确保你的伪语法有点一致。
  • @Thomas,维基百科(en.wikipedia.org/wiki/Pseudocode)不同意——展示了伪代码是如何并且通常是类似 Pascal、类似数学等的——我同意他们的观点。查看en.wikipedia.org/wiki/Pseudocode 列出的 90 多篇文章,您会看到它们使用伪代码,包括诸如 ifthenelse 等编程结构, 等等。自然语言常常是模棱两可和冗长的——例如。说“在整数 x 和 y 的二进制字符串等价物上执行的逐位异或运算”而不是“x XOR y”会很愚蠢。
  • 我猜函数和类的概念与语言无关,因为它是 OOP 的一部分。纠结于如何在伪代码中谈论类而不谈论类。在您看来,PseudoCode 中使用函数名和类名可以吗?
【解决方案3】:

维基百科文章大量使用伪代码,非常成功。维基百科上的伪代码没有标准,语法各不相同,但这里有一些带有示例的一般信息:Algorithms on Wikipedia

这里有两个很好的伪代码文章示例 (more):

使用类似维基百科的风格,我会这样做:

for i from 0 to 7
    for j from 0 to 7
        if (i + j) is even then
            paint square (i, j) black
        else
            paint square (i, j) white

(我猜用“end if”或“repeat”/“end for”标记 if 或 for 的结尾是风格问题)。

【讨论】:

    【解决方案4】:

    只需编写一些看起来像是代码和正常人类解释的混合体。

    for i from 1 to 8
        for j from 1 to 8
            print "[ ]"
        print "\n"
    

    【讨论】:

      【解决方案5】:

      我猜这是课堂作业,对吧?

      简而言之,伪代码与大纲非常相似。这是你将如何解决问题的结构,没有具体细节。

      在这种情况下,您可能会使用几个 for 循环,然后画出草图……

      for x in range(0,10):
          for y in range(0,10):
              #print out the square (x,y)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-10-25
        • 2012-01-24
        • 1970-01-01
        • 2012-12-15
        • 1970-01-01
        • 1970-01-01
        • 2021-03-23
        • 2011-01-19
        相关资源
        最近更新 更多