Python, 有条件的问题

Python, Conditional Issues

我目前正在 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 循环,则忽略了等待结束命令的 elif。无论我给它多少次结束命令,它都会忽略并继续。帮忙?

你的函数没有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 将被相应地设置。 请记住,您在 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()