使用字符串时间格式函数strftime构造下一个字符串

时间:2019-01-21 23:16:45

标签: python file if-statement

首先将t设置为从UTC 1970年1月1日开始的本地时间1,500,000,000秒:

  
    
      

导入时间       t = time.localtime(1500000000)       使用字符串时间格式函数strftime()构造下一个字符串:(a)'2017年7月13日,星期四'       (b)“ 2017年7月13日中部夏令时下午9:40”       (c)“我将于7月13日星期四晚上09:40与您会面。”

    
  

2 个答案:

答案 0 :(得分:2)

有两件事,堆栈溢出不是代码审查的地方,为此,请尝试this

无论如何,您都存在缩进问题,Python是基于缩进的,您需要将函数中的代码缩进到def之前,就像这样:

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语句实现目标,如果输入的 length 小于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。

此外,返回结尾毫无用处。

答案 1 :(得分:0)

根据您的问题,正确的实现方式是:

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语句将为我们关闭文件,因此您不必手动进行操作(是的,您忘记了关闭已打开的文件,目前这不是什么大问题,但要避免这种情况项目)。您可以在此处详细了解with语句:Reading and writing files

关于find方法。这是一个字符串方法,它将返回您字符串中找到的子字符串的索引,例如my_string.find('h')将返回{{中的 first 子字符串(为'h') 1}}字符串。如果my_string方法找不到您的子字符串,它将返回-1,这就是我们这样做的原因:

find

好像我们将在文本中找到我们的模式,那么索引肯定会大于-1。否则,根据您的问题,如果模式字符串的长度小于3,我们将返回return text.find(pattern) > -1 or False False

最后,我们从用户那里获取输入,并将该输入以文件-1的名称传递给我们的函数。我们将函数的返回值存储在example.txt变量中,然后打印出来