Skip to main content
 首页 » 编程设计

python之GoTo(基本)程序

2025年05月04日11jpfss

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

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

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

def getBASIC(): 
    L=[] 
    while "END" not in L: 
        L.append(str(input())) 
        if str(input()).endswith("END"): 
            break 
    return L 

我还注意到您不允许我使用 IS 或 RECURSION 。

请您参考如下方法:

有几个错误:

  • 你调用了两次 input() 而没有第二次将其附加到列表中
  • 'END' in L 判断列表L中是否有'END'(整)行(没有)

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

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

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

或者阅读直到在行尾遇到 END:

def getBASIC(): 
    L = [] 
    while True: 
        line = input() 
        L.append(line) 
        if line.endswith("END"): 
           break #NOTE: it doesn't break even if `line` is empty 
    return L