首先将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与您会面。”
答案 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
变量中,然后打印出来