繁体   English   中英

如果条件应该返回真,但返回假

[英]If condition should return true, but returns false

在这段代码中:

import tkinter as tk
root = tk.Tk()
root.geometry("250x400")
patternIntrare="0000000001"
patternIntrariGol="0000000000"
patternMatrice="1100000\n0000000\n0000000\n0000000\n0000000"

def function():
    with open("config.txt", "a+") as fisierText:
            if patternIntrare==patternIntrariGol:
                tk.messagebox.showerror("Eroare", "Nu ati ales nicio intrare pe vectorul de modele!")
            else:
                if patternMatrice in fisierText.read():
                    tk.messagebox.showwarning("Atentie", "Acest model exista deja in baza de date!")
                else:
                    tk.messagebox.showinfo("Nice", "E ok")

save=tk.Button(text="SAVE", command=function)
save.place(x=10, y=365)                

root.mainloop()                

为什么这样做:

if patternIntrare==patternIntrariGol:
                tk.messagebox.showerror("Eroare", "Nu ati ales nicio intrare pe vectorul de modele!")

而这不会:

if patternMatrice in fisierText.read():
                    tk.messagebox.showwarning("Atentie", "Acest model exista deja in baza de date!")

文件信息是这样的:

1100000
0000000
0000000
0000000
0000000
0100000000

1100000
0000000
0000000
0000000
0000000
0100000000

1100000
0000000
0000000
0000000
0000000
0100000000

我认为问题出在文件读取上,因为第一个涉及字符串的if条件效果很好; 另一个涉及某种文件解析的失败。 我在 Stack Overflow 上搜索过,人们似乎以同样的方式阅读文件。

with open("config.txt", "a+") as fisierText: :: 这会将文件指针移动到文件末尾。 因此, fisierText.read()不会读取任何内容,因此我将打开的文件修改为with open("config.txt", "r") as fisierText:

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM