Найти - Пользователи
Полная версия: Цикл While
Начало » Python для новичков » Цикл While
1
OzXaker

Не могли бы вы мне обьяснить почему не срабатывает условие!

import os
def TypeFileDir():
    n = 0
    InpFile = input('Введите данные для поиска: ')
    ListFD = os.listdir()
    while n < len(ListFD):        
        OneFile = str(os.listdir()[n])
        ind = OneFile.find(".")
        if InpFile == "*"+OneFile[ind:]:
            print (OneFile)
        n += 1
    if not n:   
        print('Я ничего не нашёл') # Вот это условие не срабатывает - Почему не знаю :(

А здесь срабатывает СТРАННО -Кто нибудь знает почму то ?

import os
def TypeFileDir():
    n = 0
    InpFile = input('Введите данные для поиска: ')
    ListFD = os.listdir()
    for F in ListFD:
        OneFile = F.split('.')[-1]
        if InpFile == "*."+OneFile:
            print(F)
            n += 1
    if not n:
        print('Я ничего не нашёл')
bismigalis
сравни отступ в третьей строке с конца
OzXaker

меняю отступ вообще ничего не выводит

smoke853
import os
def TypeFileDir():
    n = i = 0
    InpFile = input('Введите данные для поиска: ')
    ListFD = os.listdir()
    while n < len(ListFD):        
        OneFile = str(os.listdir()[n])
        ind = OneFile.find(".")
        if InpFile == "*"+OneFile[ind:]:
            print(OneFile)
            i += 1
        n += 1
    if not i:   
        print('Я ничего не нашёл')
OzXaker

smoke853 Спасибо большое !!!!!!!!!

smoke853
OzXaker, незачто, еще у вас в коде есть такая запись:
str(os.listdir()[n])
Здесь str не нужен.
А вообщем я бы переписал этот пример как то так:
import os
def type_file_dir(path='.', message='Not found!'):
    ext = input('Enter file extension: ')
    list_dir = [n for n in os.listdir(path) if ext == "*" + os.path.splitext(n)[-1]]
    return list_dir if list_dir else message
print(type_file_dir())
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB