【发布时间】:2016-09-11 04:33:42
【问题描述】:
当我检查列表 a 的长度时,我不断收到列表索引超出范围异常。第二个if 语句的if 或elif 部分会弹出错误,具体取决于用户输入的内容。我知道当用户输入被拆分时,列表是正确创建的,因为我将它打印出来......所以我有点迷失为什么我会收到那个错误。
if __name__ == '__main__':
for line in sys.stdin:
s = line.strip()
if not s: break
if (str(s) is "quit") == True: quit()
elif (str(s) is "quit") == False:
a = s.split()
print(a)
if (len(a) == 2) == True: first(a)
elif (len(a) == 3) == True: first(a)
else: print("Invalid Input. Please Re-enter.")
第一种方法是:(它在if语句中调用的方法现在只是打印出来)
def first(self, a = list()):
word = a[0]
if word is ls:
ls(a[1])
elif word is format:
form(a[1]) # EDIT: was format
elif word is reconnect:
reconnect(a[1])
elif word is mkfile:
mkfile(a[1])
elif word is mkdir:
mkdir(a[1])
elif word is append:
append(a[1], a[2])
elif word is delfile:
delfile(a[1])
elif word is deldir:
deldir(a[1])
else:
print("Invalid Prompt. Please Re-enter.")
其他方法:
def reconnect(one = ""):
print("Reconnect")
def ls(one = ""):
print("list")
def mkfile(one = ""):
print("make file")
def mkdir(one = ""):
print("make drive")
def append(one = "", two = ""):
print("append")
def form(one = ""):
print("format")
def delfile(one = ""):
print("delete file")
def deldir(one = ""):
print("delete directory")
def quit():
print("quit")
sys.exit(0)
【问题讨论】:
-
什么是第一?
-
这是我创建的另一种方法。错误在它被调用之前弹出,所以我只是想在修复这个错误时它不相关。
-
你想要做什么。 ** if (str(s) is "quit") == True:**
-
如果用户输入“退出”,系统就会退出……你知道你并没有真正帮助回答问题
-
你的代码没问题。这里的问题不是您粘贴的内容。请发布
first函数