这个程序有什么问题?无法调试

时间:2015-11-03 01:20:48

标签: python debugging typeerror

我花了几个小时试图调试这个程序,但我还没弄清楚为什么它不能正常工作。该程序应该读取测试结果,从控制台用户获取结果文件,将汇总行写入输出文件,如果任何结果超出正常范围,则将标志打印到控制台。

# str file_name, test_name, output_line, result_str, min_res_str, max_res_str
# file results_file, output_file
# int result, min_res, max_res
# bool done


done = False
flag = True

file_name = input("Please enter the name of the file, without the .txt   extension: ")
results_file = open(file_name+".txt")
output_file = open(file_name+"_output.txt", "w")

while not done:
# read a test result
test_name = results_file.readline()
test_name == test_name.rstrip("\n")
if test_name != "":
    result_str = results_file.readline()
    if result_str != "":
        result = str(result_str)
        min_res_str = results_file.readline()
        if min_res_str != "":
            min_res = int(min_res_str)
            max_res_str = results_file.readline()
            max_res = int(max_res_str)
        else:
            done = True
    else:
        done = True
else:
    done = True
# process
if not done:
    output_line = output_file.write(test_name+"\t" + str(result)+"\t")
    if min_res > result:
        output_line = "low\n"
    elif max_res < result:
        output_line = "high\n"
    else:
        output_line = "within normal limits\n"
        flag = False
    output_file.write(output_line)

results_file.close()
output_file.close()

if flag:
     print("Test result out of range: check results.")

我得到的错误是

Traceback (most recent call last):
File "C:/Python34/saves/midtermprep.py", line 42, in <module>
if min_res > result:
TypeError: unorderable types: int() > str()

我有这个程序的输入txt文档

NA
141
136
145
K
4.8
3.5
5.3
CL
100
98
107
CO2
20
22
32
CALCIUM
9.6
8.4

1 个答案:

答案 0 :(得分:3)

将int(min_res或max_res)与字符串(result)进行比较,但不起作用。在比较之前将结果转换为int

if min_res > int(result):
    output_line = "low\n"
elif max_res < int(result):
    output_line = "high\n"