Python 从输入返回字符串列表
我目前正在处理一个名为,Python 从输入返回字符串列表,python,python-3.x,Python,Python 3.x,我目前正在处理一个名为,getBASIC()的函数。这就是为什么我要这样做: 编写一个函数getBASIC(),它不接受任何参数,并执行以下操作:它应该使用while循环保持从输入读取行;当它到达末尾时,它应该以字符串列表的形式返回整个程序 该程序以以下形式接受输入: X GOTO Y Y GOTO Z Z END 等等等等 我的代码如下: def getBASIC(): l = [] while len(i.split()) == 3: i = input(
getBASIC()
的函数。这就是为什么我要这样做:
编写一个函数getBASIC()
,它不接受任何参数,并执行以下操作:它应该使用while循环保持从输入读取行;当它到达末尾时,它应该以字符串列表的形式返回整个程序
该程序以以下形式接受输入:
X GOTO Y
Y GOTO Z
Z END
等等等等
我的代码如下:
def getBASIC():
l = []
while len(i.split()) == 3:
i = input()
l.append(i)
return(l)
问题是,我得到了一个UnboundLocalError:赋值前引用的局部变量“I”
。现在我知道这是为什么了,但我突然变成了一个白痴,不知道如何解决它。如果您能帮助调试,我们将不胜感激。谢谢。简单的解决方案
i = input()
l.append(i)
while len(i.split()) == 3:
i = input()
l.append(i)
其他解决方案:
while True:
i = input()
l.append(i)
if len(i.split()) != 3:
break
简单解
i = input()
l.append(i)
while len(i.split()) == 3:
i = input()
l.append(i)
其他解决方案:
while True:
i = input()
l.append(i)
if len(i.split()) != 3:
break
我对python一无所知,但我想在while循环之前放置类似于
I=“A B C”
的东西应该会起作用。我对python一无所知,但我想在while循环之前放置类似于I=“A B C”
的东西应该会起作用。第一种解决方案完全错误。一条线被消耗,永远消失。第二种解决方案并不优雅。@mostruash:第二种解决方案是一种常见的Python习惯用法,可以避免重复。如果有什么安慰的话,3.x中编译的代码实际上不会在每次传递时测试内置True
的布尔值。实际上,这是一个边做边循环。很抱歉没有回复-我被转移了话题。第一个解决方案不正确(我知道,因为我已经尝试过了)。是时候测试第二个了。第一个解决方案完全错误。一条线被消耗,永远消失。第二种解决方案并不优雅。@mostruash:第二种解决方案是一种常见的Python习惯用法,可以避免重复。如果有什么安慰的话,3.x中编译的代码实际上不会在每次传递时测试内置True
的布尔值。实际上,这是一个边做边循环。很抱歉没有回复-我被转移了话题。第一个解决方案不正确(我知道,因为我已经尝试过了。)是时候测试第二个了。