Python While循环响应&查找文件
我花了两天的时间试图找出一些问题,可能是因为我编写Usgin Python 3.4.1的能力有限 我正在尝试为输入设计一系列选项,并使选项4成为通行证,但仅当文件存在于特定位置时。我可以随时按任何数字,它会重复。但是,如果我选择4,文件不存在,它会返回错误,但无论下一个答案是什么,它都会继续我的程序Python While循环响应&查找文件,python,file,loops,while-loop,Python,File,Loops,While Loop,我花了两天的时间试图找出一些问题,可能是因为我编写Usgin Python 3.4.1的能力有限 我正在尝试为输入设计一系列选项,并使选项4成为通行证,但仅当文件存在于特定位置时。我可以随时按任何数字,它会重复。但是,如果我选择4,文件不存在,它会返回错误,但无论下一个答案是什么,它都会继续我的程序 print ("Please Choose From the Following Options") print ("1. Option A") print ("2. Option B") prin
print ("Please Choose From the Following Options")
print ("1. Option A")
print ("2. Option B")
print ("3. Option C")
print ("4. Option D")
print ("5. Option R")
monkeyGuess = input("Selection: ")
monkey = "4"
while monkey != monkeyGuess:
print ()
print ("Incorrect")
monkeyGuess = input("Selection: ")
while monkey == monkeyGuess:
try:
with open('c:\test.txt') as file:
break
pass
except IOError as e:
time.sleep(1)
print ()
print ("Incorrect")
monkeyGuess = input("Selection: ")
我厌倦了梳理这两者,但收效甚微:
while monkey != monkeyGuess:
time.sleep(1)
print ()
print ("Incorrect Inputs Found")
monkeyGuess = input("Selection: ")
monkey == monkeyGuess or os.path.isfile('test.txt')
print ()
print ("Incorrect Inputs Found")
monkeyGuess = input("Selection: ")
您的问题是运行此代码的python版本:
bash-3.2$ touch test.txt #Creates a file there so we can ignore the line that checks if it exists
bash-3.2$ python2.7 monkey.py #This is where the script is
Please Choose From the Following Options
1. Option A
2. Option B
3. Option C
4. Option D
5. Option R
Selection: 4
()
Incorrect
Selection: ^C
bash-3.2$ python3.4 monkey.py #Using python3.4
Please Choose From the Following Options
1. Option A
2. Option B
3. Option C
4. Option D
5. Option R
Selection: 4
bash-3.2$ #It exits fine
bash-3.2$
第一种方法不起作用,因为一旦输入了正确的输入4,第一个while循环就通过了,而用户要绕过第二个循环所要做的就是选择一个错误的输入,因为这样while==monkeyGuess将为False,循环将停止 第二种方法缺少if语句,但即使它有一个if语句,用户所需要做的就是在使用while monkey!=monkeyGuess:如果选择正确的数字,则为False-文件是否存在并不重要 解决方案:
print ("Please Choose From the Following Options")
print ("1. Option A")
print ("2. Option B")
print ("3. Option C")
print ("4. Option D")
print ("5. Option R")
monkey = "4"
while True:
monkeyGuess = input("Selection: ")
if monkeyGuess != monkey:
print ()
print ("Incorrect")
continue
try:
with open('c:\test.txt') as file:
break
except IOError as e:
print ()
print ("Incorrect")
通常,while-True循环最适合此场景。在循环中请求用户输入,然后使用if语句中断循环。很抱歉,这一切都是新的,您的代码中没有我的信息。这与我所见过的任何东西都是100%不同的。那么,你是说停止使用while吗?不,@cipherlue,很抱歉让人困惑:当你运行python脚本时,你会在shell中调用python myscript.py吗?如果没有,你输入什么来运行你的代码?:没问题,很高兴你找到了答案:没有,我运行了错误的测试。我还没拿到,还以为我拿到了呢。好吧,你的程序是怎么运行的?就这样!非常感谢你,昨天凌晨3点,我只是想仔细阅读一下while-true的声明,但就是想不起来。这工作完美!