将数据从文本文件读入python

时间:2018-04-24 01:48:55

标签: python pattern-matching

我试图读取包含序列和模式的文本文件

agcdttagcdtcc

AGC

并计算序列中agc的频率

import sys

def pattern_count(text, pattern):
    count = 0
    for i in range(len(text)-len(pattern)):
        if text[i:len(pattern)] == pattern:
            count += 1
    return count 

input = sys.stdin.read()
data = input.split()
text = data[0]
pattern = data[1]
print(pattern_count(text, pattern))

读取数据并将其分配给文本和模式的正确方法是什么?

2 个答案:

答案 0 :(得分:0)

Primusa的编辑是正确的,但我想补充一些额外的想法。我相信您用来从用户获取数据的语法不正确。下面的编辑工作正常。

def pattern_count(text, pattern):
    count = 0
    for i in range(len(text)-len(pattern)):
        if text[i:i+len(pattern)] == pattern:
            count += 1
    return count

print('Enter text:')
txt = input()
print('Enter pattern:')
pat = input()
print(pattern_count(txt, pat))

因为input是Python关键字,尝试重新定义它可能会导致错误。这也是我为输入变量提供其他名称的原因。

答案 1 :(得分:0)

我真的想通了!它需要两个更正:

import sys

def pattern_count(text, pattern):
    count = 0
    for i in range(len(text)-len(pattern)+1):
        if text[i:i+len(pattern)] == pattern:
            count += 1
    return count 

input = sys.stdin.read()
data = input.split()
text = data[0]
pattern = data[1]
print(pattern_count(text, pattern))