GoTo(基本)程序

2024-09-26 22:09:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我在网上做一些教程,我一直在做一个练习:编写一个不带参数的getBASIC()函数,并执行以下操作:它应该使用while循环从输入中读取行;当它到达末尾时,它应该以字符串列表的形式返回整个程序。字符串列表示例:

5 GOTO 30
10 GOTO 20
20 GOTO 10
30 GOTO 40
40 END

我写了一个程序,但是它不起作用,但是我也会发布它:

^{pr2}$

我还注意到你不允许我使用IS或递归。在


Tags: 函数字符串程序示例列表参数is教程
3条回答

有几个错误:

  • 调用input()两次,而第二次没有将其附加到列表中
  • 'END' in L确定列表L中是否存在{}(整行)(没有)

注意:input()已经返回了一个str对象;不需要对其返回值调用str()。在

要读取输入直到有空行,您可以:

def getBASIC():
    return list(iter(input, ''))

或读取,直到在行尾遇到END

^{pr2}$

试试这个:

def get_basic():
    L = []
    while True:
        line = str( input() )
        L.append( line )
        if "END" in line:
            break
    return L

早在我学习Pascal时,我们使用了至少需要一次迭代的启动read for循环。这在Python中仍然可以很好地工作(我更喜欢使用while True / break循环)。在

通过简单地测试列表中的最后一行(而不是最后一行的读取),我们就不需要变量来存储输入,并且可以组合读取和附加操作。在

def getBASIC():
    lines = [input("]")]    # use Applesoft BASIC prompt  :-)
    while not lines[-1].upper().rstrip().endswith("END"):
        lines.append(input("]"))
    return lines

相关问题 更多 >

    热门问题