我正在做一些在线教程,我坚持做一个练习:编写一个不带参数的函数 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
