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()
我目前正在 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()