Создайте следующие строки, используя функцию форматирования времени строки strftime - PullRequest
0 голосов
/ 22 января 2019

Начните с установки t в качестве местного времени 1, 500, 000, 000 секунд с начала 1 января 1970 г. UTC:

время импорта t = время.localtime (1500000000) Создайте следующие строки, используя функцию форматирования строкового времени strftime (): (a) «Четверг, 13 июля 2017 г.» (b) '09: 40:00 по центральному летнему времени 13.07.2017 '(c) «Я встречу тебя 13 июля в 21:40».

Ответы [ 2 ]

0 голосов
/ 22 января 2019

По вашим вопросам правильная реализация:

def filesStringSearch(filename, pattern):
    with open(filename, 'r') as f:
        text = f.read()
        if len(pattern) >= 3:
            return text.find(pattern) > -1 or False
        else:
            return -1

filename = 'example.txt'
pattern_to_find = input('Search for a word: ')
out = filesStringSearch(filename, pattern_to_find)
print(out)

Если вас попросят написать функцию, которая принимает два аргумента, то ваша функция должна принять два аргумента, как здесь:

def filesStringSearch(filename, pattern):

Тогда вы должны прочитать файл, я сделал это с помощью оператора with. with оператор закроет наш файл для нас, поэтому вам не нужно делать это вручную (и да, вы забыли закрыть открытый файл, это пока не большая проблема, но избегайте таких вещей в больших проектах) , Вы можете прочитать больше об утверждении там: Чтение и запись файлов

Как насчет find метода. Это строковый метод, который будет возвращать индекс найденной подстроки в вашей строке, например, my_string.find('h') будет возвращать индекс первой подстроки (то есть 'h') в строке my_string. Если find метод не может найти вашу подстроку, он вернет -1, поэтому мы делаем это:

return text.find(pattern) > -1 or False

Как будто мы найдем наш шаблон в тексте, тогда индекс, безусловно, будет больше -1. В противном случае мы возвращаем False или -1, если длина строки шаблона меньше 3, в соответствии с вашим вопросом

И в конце мы берем ввод от пользователя и передаем этот ввод нашей функции с именем файла example.txt. Мы сохраняем возвращаемое значение нашей функции в переменной out и затем печатаем его

0 голосов
/ 22 января 2019

Пара вещей, переполнение стека не место для обзоров кода, для этого: попробуйте this .

Несмотря на это, у вас есть проблемы с отступами, Python основан на отступах, вывам нужно, чтобы код в вашей функции был с отступом на единицу перед вашим определением, например так:

def filesStringSearch():
    infile = open('example.txt')
    a = input('Search for a word: ')
    result = infile.read().find(a)
    #result = a.find:
    #for a in infile:
    if a.find:
        print("True")
    elif a < 3:
        print("-1")
    else:
        print("False")
    return

Во-вторых, вы не берете ввод с помощью функции и жестко кодируете открываемый файл;однако это простое исправление:

def filesStringSearch(filename):
    infile = open(filename)

В-третьих, вы не достигнете своей цели с помощью своих операторов if, если длина ввода меньше 3, выне следует даже пытаться что-то искать, поэтому вам нужно изменить порядок и немного изменить логические выражения;на это:

if len(a) < 3:
    print("-1")
elif a.find:
    print("True")
else:
    print("False")

Наконец, a.find не будет работать, скорее вы можете проверить, чтобы увидеть значение результата, поэтому вы можете заменить elif: a.find на:

elif result != -1:
    print("True")

Поскольку результат будет равен -1, если он ничего не сможет найти.

Кроме того, возврат в конце бесполезен.

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