2024-09-26 22:09:32 发布
网友
我在网上做一些教程,我一直在做一个练习:编写一个不带参数的getBASIC()函数,并执行以下操作:它应该使用while循环从输入中读取行;当它到达末尾时,它应该以字符串列表的形式返回整个程序。字符串列表示例:
5 GOTO 30 10 GOTO 20 20 GOTO 10 30 GOTO 40 40 END
我写了一个程序,但是它不起作用,但是我也会发布它:
我还注意到你不允许我使用IS或递归。在
有几个错误:
input()
'END' in L
L
注意:input()已经返回了一个str对象;不需要对其返回值调用str()。在
str
str()
要读取输入直到有空行,您可以:
def getBASIC(): return list(iter(input, ''))
或读取,直到在行尾遇到END:
END
试试这个:
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循环)。在
while True / break
通过简单地测试列表中的最后一行(而不是最后一行的读取),我们就不需要变量来存储输入,并且可以组合读取和附加操作。在
def getBASIC(): lines = [input("]")] # use Applesoft BASIC prompt :-) while not lines[-1].upper().rstrip().endswith("END"): lines.append(input("]")) return lines
有几个错误:
input()
两次,而第二次没有将其附加到列表中'END' in L
确定列表L
中是否存在{注意:
input()
已经返回了一个str
对象;不需要对其返回值调用str()
。在要读取输入直到有空行,您可以:
或读取,直到在行尾遇到
^{pr2}$END
:试试这个:
早在我学习Pascal时,我们使用了至少需要一次迭代的启动read for循环。这在Python中仍然可以很好地工作(我更喜欢使用
while True / break
循环)。在通过简单地测试列表中的最后一行(而不是最后一行的读取),我们就不需要变量来存储输入,并且可以组合读取和附加操作。在
相关问题 更多 >
编程相关推荐