python-3.x - 我正在尝试打开一个文件,查找“r”或“R”作为每个单词的第一个字母,然后打印这些单词
问题描述
正如标题所说......这只是我正在做的一个练习,以便在 python 上做得更好。任何帮助将不胜感激
所以这就是我尝试过的......
read = open('file.txt', 'r')
t = read.read()
for i[0] in t:
if i[0] == 'r' or 'R':
print(i[0])
和...
read = open('file.txt', 'r')
t = read.read()
for i[0] in t:
if i[0] == 'r' or 'R':
print(i[0])
还...
编辑.......我已经能够找到带有'R'和'r'的单词,但现在我无法弄清楚如何打印包含'r'和'R'的单词
for i in t:
if i[0] == 'r' or i[0] == 'R':
print(i)
我尝试了各种类型的东西,这就是有效的。我什至尝试过:
if i[0] in ['r', 'R']
无论出于何种原因,它都不起作用。
任何打印这个词的帮助将不胜感激,因为我现在得到的只是
r R r r R
第一个我只是得到一个错误,说我没有定义。第二个只是打印出文档的每个单词
解决方案
你这里有一大堆问题。
i
未定义的例外是 from for i[0] in t:
,您尝试将迭代中的值分配给某个i
不存在的值的第一个元素。您可能只想要for i in t
没有索引。
下一个问题是您正在迭代的内容。当您直接在类似 的字符串上进行迭代时t
,您将分别获得每个字符。您不会将文本分成单词,我认为这就是您想要的。对真实文本进行标记有点棘手,但出于您的目的,您可以使用 with t.split()
,它将字符串拆分为任何空格。
您的最后一个问题与使用or
不正确有关,但看起来您可能已经修复了它们。无论如何,这是我对最终代码的建议(还有一些其他非必要的改进,比如更好的变量名和with
关闭文件的语句):
with open('file.txt', 'r') as f:
text = f.read()
for word in text.split():
if word[0] in 'Rr':
print(word)
推荐阅读
- github-actions - Github 操作中的 mvn deploy 给出 401 Unauthorized
- reactjs - 如何在使用打字稿进行排序时解决类型错误?
- c++ - C++ - 指向具有相同地址但不同值的不同对象的另一个非静态成员的非静态 void* 成员
- java - 如何检查用户定义的(EditText)时间是否正确?
- npm - 如何在具有纱线工作空间的单一存储库中自动提升本地包的 peerDependencies 版本?
- microsoft-graph-api - MS Graph API:是否可以按收件人订购邮件?
- laravel - SQLSTATE [HY000]:一般错误:1005 无法创建表`laravel_work_faranesh`.`learnings`
- reactjs - 单击输入字段时如何打开 mui KeyboardDatePicker 对话框
- azure-data-explorer - 启用可恢复性 VS 在禁用可恢复性的情况下将保留期延长 14 天
- moodle - 如何使用部分正确答案的 R/exams 为 Moodle 创建一个 num 问题