需要协助调试我的python代码,这是一个残骸

时间:2011-12-15 14:18:15

标签: python debugging

我正在使用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])

1 个答案:

答案 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

我希望这会有所帮助。