[英]Why won't the function break out of this loop?
我不知道為什么,但是我用於另一個程序的 function 在遇到 FileNotFoundError 異常時不會跳出“while”循環。
import os
def delete_file(file_to_delete):
try:
os.remove(file_to_delete)
print('file removed: ', file_to_delete)
result = True
except FileNotFoundError:
print("Error. File not found.")
result = False
while result == False:
if result == True: break
input("Please enter a valid filename: ")
os.remove(file_to_delete)
return result
相反,刪除 while 循環並更改您的邏輯以使其工作 -
import os
def delete_file(file_to_delete):
result = False
while result == False:
try:
os.remove(file_to_delete)
print('file removed: ', file_to_delete)
result = True
except FileNotFoundError:
print("Error. File not found.")
file_to_delete = input('Please enter valid filename: ')
return result
result = False
while result == False:
if result == True: break
input("Please enter a valid filename: ")
該循環不包含任何會改變result
值的東西,所以是的,這個循環將永遠運行。
此外,對input()
的調用是無用的,因為您沒有將結果保存在任何地方。
你怎么看這個邏輯?
import os
def delete_file(file_to_delete):
while not os.path.isfile(file_to_delete):
print("Error. File not found.")
file_to_delete = input("Please enter a valid filename: ")
os.remove(file_to_delete)
print('file removed: ', file_to_delete)
return True
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.