我正在使用Python 2.7x并且无法调试它。我不确定我能做什么。任何帮助表示赞赏。感谢。
import re
import sys
# Grab parameters from the command line
(filename, threshold) = sys.argv[1:3]
# Validate arguments
if (re.match("\D", threshold)):
print "The threshold must be a number."
sys.exit(1)
# Read file and tally word frequencies
fh = open(filename)
file = fh.read()
words = []
for line in file.split('\n'):
found = 0
for word in words:
if word[0] == line.lower():
found = 1
word[1] += 1
# initialize a new word with a frequency of 1
if found == 0:
words.append([line, 1])
# Print words and their frequencies, sorted alphabetically by word. Only print a word if its frequency is greater than or equal to the threshold.
for word in sorted(words):
if word[0] < threshold: continue
print "%4d %s" % (word[1], word[0])
答案 0 :(得分:2)
通常,使用pdb
模块调试Python代码最简单。将以下代码放在要启动调试器的位置:
import pdb
pdb.set_trace()
您可以使用n
执行下一行代码,s
进入功能,p
打印一个值(例如,p words
将打印您的单词列表)。
如果没有关于问题的更多信息,我真的不知道你的代码会发生什么,但看起来你可能遇到了一些不一致的问题。当您向单词列表添加内容时,应将其放在小写字母中。
if found == 0:
words.append([line.lower(), 1])
此外,您将字符串与阈值进行比较,而不是数字。它应该是:
if word[1] < threshold: continue
我希望这会有所帮助。