Python,条件问题

Python,条件问题,python,conditional,Python,Conditional,我目前正在用python编写一个数据库,其中包含转换文件,它们都工作得很好。登录完成后,我的代码如下: PythonDatabase = list("/Users/*****/Desktop/PythonDatabase") import os flist = os.listdir(os.getcwd()) for name in PythonDatabase: PythonDatabase[PythonDatabase.index(name)]=name[:-3] out = o

我目前正在用python编写一个数据库,其中包含转换文件,它们都工作得很好。登录完成后,我的代码如下:

PythonDatabase = list("/Users/*****/Desktop/PythonDatabase")



import os
flist = os.listdir(os.getcwd())
for name in PythonDatabase:
    PythonDatabase[PythonDatabase.index(name)]=name[:-3]
out = open('flist.txt','w')
for name in PythonDatabase:
    out.write(name+"\n")
out.close()



#------------------------------------------------------------------------------#
end = False
flist = open('flist.txt','r')

print("SECURITY PASSED")
print("ENTERING DATABASE")

def choosefile():
    fcho = input("ENTER FILE CHOICE, VIEW FILE LIST, OR END: ")

    if (fcho == "view file list" or fcho == "VIEW FILE LIST"):
        print (flist.read())

    elif (fcho == "END"):
        end = True


while (end == False):
    choosefile()

我把我的名字填上了*,所以你们可以忽略这些。这个文件的大部分工作正常,但是如果看到while循环,就会忽略等待end命令的elif。无论我给它多少次end命令,它都会忽略并继续。帮助?

您的函数不会返回任何内容。我冒昧地重新编写了你的主要节目:

end = False
flist = open('flist.txt','r')

print("SECURITY PASSED")
print("ENTERING DATABASE")

def choosefile():
    fcho = input("ENTER FILE CHOICE, VIEW FILE LIST, OR END: ")

    if (fcho == "view file list" or fcho == "VIEW FILE LIST"):
        print (flist.read())

    elif (fcho == "END"):
        return True


while (end == False):
    end = choosefile()
现在,当它完成时,它实际上返回一个值(
True
),并且将相应地设置
end

请记住,您在
choosefile()
函数中使用的
end
变量与您在函数外部定义的变量不同。

感谢所有帮助我解决此问题的人。下面是工作代码,return语句工作起来很有魅力。非常感谢

end = False
flist = open('flist.txt','r')

print("SECURITY PASSED")
print("ENTERING DATABASE")

def choosefile():
    fcho = input("ENTER FILE CHOICE, VIEW FILE LIST, OR END: ")

    if (fcho == "view file list" or fcho == "VIEW FILE LIST"):
        print (flist.read())

    elif (fcho == "END"):
        return True


while (end == False):
    end = choosefile()

代码缩进是否正确?在函数中键入
return True
而不是
end=True
。同样在
while
正文中,输入
end=choosefile()
,而不是简单地选择
choosefile()
。基本上,该功能不会向调用者返回任何内容。很抱歉,我不小心关闭了电子邮件通知,所以我只看到了这些。我一定会这样做的。