我正在尝试制作数据解码器,但似乎无法正常工作?

时间:2020-09-16 00:38:21

标签: python

如果您不知道那是什么,我正在尝试制作一个数据解码器,它基本上是一种代码,该代码可以查看“ .txt”文件中的单词或句子并将其解码为“是”或“否”。

我编写的代码:

def Load_Data(input):
    true = 1
    false = 0
    
    try:
        with open(input,'r') as read_obj:
            for line in read_obj:
                if true or false in line:
                    if line is true:
                        print("True")
                        
                    elif line is false:
                        print("False")
                    
                    
                    else:
                        print("Unable To decode it")
                        break

    
    
    
    except:
           print("Error In code")
           
           

Load_Data('Load.txt')

没有错误,但屏幕上唯一的是无法解码。

任何原因吗?

.txt文件中的输入:

我给的输入:

1

0

1

0

1

1

1

它应该说: 是

错误

错误

2 个答案:

答案 0 :(得分:2)

您应该知道is and ==之间的区别。此外,每行新行都有一个额外的'\ n'字符,因此您需要对其进行过滤并将字符串转换为int。

begin/end

Load.txt:

def Load_Data(input):
true = 1
false = 0

try:
    with open(input,'r') as read_obj:
        for line in read_obj:
            line = int(line.split('\n')[0])
            if true==line or false== line:
                if line == true:
                    print("True")

                elif line ==false:
                    print("False")
                else:
                    print("Unable To decode it")
                    break




except:
       print("Error In code")
       
Load_Data('Load.txt')

输出:

1
0
1
0
1
1
1

答案 1 :(得分:2)

您正在比较代码中的不同类型,如果true和false变量为十进制,则将不起作用,应将它们声明为字符。也许您也将else语句移出以具有正确的行为。然后检查您的输入文件没有奇怪的字符。这是代码:

def Load_Data(input):
    true = '1'
    false = '0'
    
    try:
        with open(input,'r') as read_obj:
            for line in read_obj.read():
                if true or false in line:
                    if line == true:
                        print("True")
                        
                    elif line == false:
                        print("False")
                    
                    
                else:
                    print("Unable To decode it")
                    break

    
    
    
    except:
           print("Error In code")
           
           

Load_Data('Load.txt')