如何在python中打开一个文件,搜索一个忽略大小写的单词,找到打印成功的单词?

如何在python中打开一个文件,搜索一个忽略大小写的单词,找到打印成功的单词?,python,python-3.x,Python,Python 3.x,你正在读一本陌生作者的书,对他们可能来自哪个国家感到好奇。你决定写一个程序来帮助你根据书中单词的拼写来猜 编写一个程序,读入一个单词(例如颜色或颜色),并检查它是否出现在文件book.txt中,是否在书中找到打印输出。或者在书中找不到 例如,给定book.txt文件: 假设?她将如何组建一个团队 假设她甚至不知道什么 其余的数据看起来像什么 问题是,无论我尝试了什么,我都无法让我的代码忽略单词的大小写。提供的输入字总是小写的,但是您的程序应该以不区分大小写的方式匹配 我的代码: word = i

你正在读一本陌生作者的书,对他们可能来自哪个国家感到好奇。你决定写一个程序来帮助你根据书中单词的拼写来猜

编写一个程序,读入一个单词(例如颜色或颜色),并检查它是否出现在文件book.txt中,是否在书中找到打印输出。或者在书中找不到

例如,给定book.txt文件:

假设?她将如何组建一个团队 假设她甚至不知道什么 其余的数据看起来像什么

问题是,无论我尝试了什么,我都无法让我的代码忽略单词的大小写。提供的输入字总是小写的,但是您的程序应该以不区分大小写的方式匹配

我的代码:

word = input("Word to look for: ")
with open('book.txt') as f:
  if word in f:
    print(word,"was found in the book.")
  else:
    print(word,"was not found in the book.")
预期产出:

要寻找的词:假设
在书中找到了假设。

请尽量保持简单。我仍在通过一个不允许导入非内置模块的在线程序学习。

您可以尝试:

word = input("Word to look for: ")
word_lower = word.lower()

with open('book.txt', 'r') as fh:
    data = fh.read().lower()
    if word_lower in data:
        print(word,"was found in the book.")
    else:
        print(word,"was not found in the book.")
我刚刚将
word
data
(文件内容)强制为小写
.lower()
,因此它不区分大小写

我没有直接更新
word
,而是将降低的字符串存储在另一个变量(
word\u lower
)中,以允许您准确打印用户输入的内容。

您可以尝试:

word = input("Word to look for: ")
word_lower = word.lower()

with open('book.txt', 'r') as fh:
    data = fh.read().lower()
    if word_lower in data:
        print(word,"was found in the book.")
    else:
        print(word,"was not found in the book.")
我刚刚将
word
data
(文件内容)强制为小写
.lower()
,因此它不区分大小写


我没有直接更新
word
,而是将降低的字符串存储在另一个变量(
word\u lower
)中,以允许您准确打印用户输入的内容。

您可以迭代文件中的单词,并将每个单词小写以进行比较:

wordToMatch = input("Word to look for: ")
with open('book.txt') as f:
    for line in f:
       for word in line.split() :
           if word.lower() in wordToMatch :
              print(word,"was found in the book.")
           else:
              print(word,"was not found in the book.")

您可以迭代文件中的单词,并使用小写字母进行比较:

wordToMatch = input("Word to look for: ")
with open('book.txt') as f:
    for line in f:
       for word in line.split() :
           if word.lower() in wordToMatch :
              print(word,"was found in the book.")
           else:
              print(word,"was not found in the book.")

实际上,要将变量中的值强制转换为小写,您不必定义新变量,只需使用旧变量并对其进行更改即可。所以不是
word\u lower=word.lower()
只需执行
word=word.lower()
或直接将
word.lower()
放入if语句即可。这将更有效率。

实际上,要强制变量中的值小写,您不必定义新变量,只需使用旧变量并对其进行更改即可。所以不是
word\u lower=word.lower()
只需执行
word=word.lower()
或直接将
word.lower()
放入if语句即可。这会更有效率。

既然你在学习,如果我们不逐字回答你,你就能学得最好。你需要做的不仅仅是在f中输入单词。您需要实际访问f中的每个单词,并调用它。通过这样做,所有的比较都将是小写到小写的,有效地使其不区分大小写。既然你在学习,如果我们不逐字回答你,你就能学得最好。你需要做的不仅仅是在f中输入单词。您需要实际访问f中的每个单词,并调用它。通过这样做,所有的比较将是小写到小写的,有效地使它不区分大小写。我能确切地看出我错在哪里。谢谢大家!!令人惊叹的。我能确切地看出我错在哪里。谢谢大家!!