【问题标题】:find out how many times does that inputed sign appear in the document找出输入的符号在文档中出现了多少次
【发布时间】:2020-02-21 12:40:34
【问题描述】:

在这个程序中,我想打印一个文档;计算您在 input 部分中要求的特定字符的行数和数量。我想知道输入的符号在文档中出现多少次。 但是程序返回与 num_lines 相同的数字,但数字不同。为什么呢?如何使其工作以及获得相同结果的其他方法是什么?提前致谢!

file = open('notes.txt', 'r')
for i in file:
        print (i)

num_lines = sum(1 for line in open('notes.txt'))
print('The number of lines in the document is:', num_lines)

signs=input('Input the sign you want to count:')
num_sign = sum(1 for signs in open('notes.txt'))
print('The number of signs in the document is:', num_sign) ```

【问题讨论】:

  • file.read().count(sign)?如果文件太大,可能会很糟糕。在这种情况下,你可以做sum(line.count(sign) for line in file)

标签: python text count


【解决方案1】:

当你写作时:

for signs in open('notes.txt')

您覆盖了之前声明的变量signs

您可以将其替换为:

signs = input('Input the sign you want to count:')
num_sign = 0
for line in open('notes.txt'):
    num_sign += line.count(signs)

【讨论】:

  • 非常感谢我的python朋友! :)
  • 顺便说一句,您的观察是正确的,但这不是问题的根本原因。无论something 是什么,表达式sum(1 for <something> in open('notes.txt')) 总是会给出行数...
【解决方案2】:

我会这样做:

signs = input('Input the sign you want to count:')

file = open('notes.txt', 'r')
f = file.read()

print('lines:', len(f.split('\n')))
print('signs:', f.count(signs))

【讨论】:

  • 谢谢@Joan Lara Ganau!这个程序完美运行!你能解释一下 len(f.split('\n')) 是做什么的吗?你是怎么想出来的? /n 是什么??
  • @MiriamKaščáková '\n' 是行尾字符。它将文件拆分为一个列表,其中每一行都是一个列表项。
猜你喜欢
  • 2014-04-24
  • 1970-01-01
  • 2022-11-27
  • 2013-06-25
  • 1970-01-01
  • 2011-11-18
  • 1970-01-01
  • 2013-09-11
  • 1970-01-01
相关资源
最近更新 更多