Оба моих оператора if и else выполняются в Python - PullRequest
0 голосов
/ 03 августа 2020

Я пытаюсь создать базовый c скрипт, посредством которого пользователь предоставляет один или несколько путей, и если этот путь действителен, скрипт продолжается.

Однако в моем операторе if возвращается неверный путь сообщение об успехе и неудаче, которое запутает пользователя и, честно говоря, сбивает меня с толку.

Вот мой код:

from os import path

#set a variable as False that will keep you locked in the loop until
#a valid input is provided and it is turned to True.
valid_input = False
#Start the while loop that requests user provides paths
while not valid_input:
    search_locations_str = input("Please provide the name of the loaction\nyou would like to search by inputting the\nfull path.\n \nTo search multiple locations, simply input\nmultiple paths separated by a comma and a space.")
    print("\n")
    search_locations = search_locations_str.split(", ")
    print("area(/s) to search ", search_locations)
#Add a for stament that can end the loop if, after checking the users input, 
#the paths are valid and actually exist. 
    for search_location in search_locations:
        if path.exists(search_location)==False:
            print(search_location + " not recognised, please amend or remove" )

    else:
        valid_input = True
        print(search_location + " identified, search for useful files can proceed")

Если вы укажете действительный путь, он работает отлично.

Если вы введете неверный путь, он сообщит вам, что путь действительный и недействительный:

area(/s) to search  ['non/existent/path']
non/existent/path not recognised, please amend or remove
non/existent/path identified, search for useful files can proceed

1 Ответ

0 голосов
/ 03 августа 2020

В вашем коде неправильный отступ. else должен быть на том же уровне, что и if.

Правильный отступ:

for search_location in search_locations:
    if path.exists(search_location)==False:
        print(search_location + " not recognised, please amend or remove" )
    else:
        valid_input = True
        print(search_location + " identified, search for useful files can proceed")

С другой стороны, for/else также является действительный случай. Подробнее об этом вы можете прочитать на этой странице: https://book.pythontips.com/en/latest/for_-_else.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...