如果您不知道那是什么,我正在尝试制作一个数据解码器,它基本上是一种代码,该代码可以查看“ .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
它应该说: 是
错误
是
错误
是
是
是
答案 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')