我正在尝试为程序创建密码系统。我上半部分工作,所以当我打开代码时,它会打开我的文件。之后,程序再次要求输入密码,而不是转移到应该关闭文件的下一个模块。这就是我所拥有的
Set objWeb = ActiveSheet.QueryTables.Add( _
Connection:="URL;https://stackoverflow.com/questions/" + i + "/change-range-in-running-macro", _
Destination:=Range("A1"))
我希望它有点像" if / then"有点声明。例如,如果正确输入密码,则打开文件`os.startfile(' C:\ restricteded access')然后指向下一个模块以提供关闭选项。
答案 0 :(得分:0)
“而真实”只是无限循环。一旦打开文件,它将返回到该循环的开头并再次询问您的密码。如果你想让它从那个循环中断,如果他们得到了正确的密码,你需要在你的startfile行之后添加一个“break”。我也不确定你为什么两次检查他们的密码。如果您希望它在尝试打开文件后退出循环,无论它是否成功,请在异常处理程序之后添加“finally”块。
while True:
choice = int(input("Enter Password: "))
if (choice>=1124):
if choice ==1124:
try:
os.startfile('C:\\restriced access')
break
except Exception as e:
print (str(e))
答案 1 :(得分:0)
你的while循环是while True:
。除非您明确退出,否则永远不会退出。您想在其中添加break
,如下所示:
os.startfile('C:\\restriced access')
break
答案 2 :(得分:0)
很高兴看到你学习python。 原因是因为while循环没有中断。
然后再次避免在循环中打开文件。 嵌套的if也很难调试。
同时结帐pep8。
没有进行任何代码更改。
import os
while True:
choice = int(input("Enter Password: "))
if (choice<1124):
continue
if choice ==1124:
try: os.startfile('C:\\restriced access')
break
except Exception as e:
print (str(e))
break
while True:
choice = input("Close? (y/n): ")
if (choice=='y'):
break