我试图读取包含序列和模式的文本文件
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))
读取数据并将其分配给文本和模式的正确方法是什么?
答案 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))