모두에게 좋은 날. 내 파이썬 프로그램에 도움이 필요해. 나는 거의 당신이 입력하고 검색 할 수있는 경찰 프로필 시스템을 만들고있다. 내가 가진 문제는 검색 기능입니다. 다음은 시작하기위한 소스 코드입니다. 전역 변수가 파이썬에서이 변수를 제외한 다른 조건에서 작동합니다.
global Value
def config1():
Entry1.config(state="normal")
Entry1.delete(first=0,last=99)
Entry1.insert(0,"LastName")
Entry1.config(state="disabled")
ThisEntry.delete(first=0,last=99)
Value = Police['text']
def config5():
Entry1.config(state="normal")
Entry1.delete(first=0,last=99)
Entry1.insert(0,"LastName")
Entry1.config(state="disabled")
ThisEntry.delete(first=0,last=99)
Value = Visitor['text']
def Search():
Entry1.config(state="normal")
x = Entry1.get()
y = ThisEntry.get()
Entry1.config(state="disabled")
global Value
if x == "LastName" and Value == "POLICE IDENTITY":
z = 0
ThisText.config(state="normal")
ThisText.delete("1.0","end")
c.execute("SELECT LastName FROM Police WHERELastName=?",(y,))
row = c.fetchall()
for a in row:
c.execute("SELECT * FROM Police WHERE LastName=?",(y,))
row = c.fetchall()
elif x == "LastName" and Value == "VISITOR":
z = 0
ThisText.config(state="normal")
ThisText.delete("1.0","end")
ThisText.insert(INSERT,"VISITORS")
c.execute("SELECT LastName FROM Visitors WHERE LastName=?",(y,))
row = c.fetchall()
for a in row:
ThisText.insert(INSERT,"\n\n")
ThisText.insert(INSERT,"Visitor Number: ")
ThisText.insert(INSERT,row[z][0])
ThisText.insert(INSERT,"\n")
ThisText.insert(INSERT,"First Name: ")
ThisText.insert(INSERT,row[z][1])
ThisText.insert(INSERT,"\n")
ThisText.insert(INSERT,"Middle: ")
ThisText.insert(INSERT,row[z][2])
ThisText.insert(INSERT,"\n")
ThisText.insert(INSERT,"Last Name: ")
은 그냥
Value
의 값을 변경하는 기능을
def config1():
및
def config5():
을 사용했다. 내가 값을 변경하기 위해 필요하기 때문에
Value
을
global
으로 선언했습니다.
주요 목표는 값이 검색하려는 레코드와 같고 검색 할 레코드 유형이 Value
인 경우 조건이 행을 반환한다는 것입니다.
그래서 경찰 신원에서 LastName
을 검색하면 행이 반환됩니다. 방문자를 검색하는 것과 동일합니다.
경찰 신원 탭에서 성을 검색하면 올바르게 반환됩니다. 나는 방문자 탭의 마지막 이름을 검색하려고 할 때마다, 그것은이 오류를 반환
Traceback (most recent call last):
File "C:\Users\User\AppData\Local\Programs\Python\Python35-32\lib\tkinter\__init__.py", line 1550, in __call__
return self.func(*args)
File "C:\Users\User\Desktop\School Files (Don't Touch)\Project in SE\Project in SE.py", line 1420, in Search
elif x == "LastName" and Value == "POLICE IDENTITY":
NameError: name 'Value' is not defined
가 나는 또한 함수 자체에 전역 변수를 선언하려하지만 여전히 작동하지 않습니다. 나는 정말로 그것이 한 가지 조건에서 효과가 있지만 다른 조건에서는 효과가없는 이유를 알지 못합니다. 나는 파이썬이 나에게 게임을하고 있는지 알지 못한다. Btw 나는이 질문에 대한 중복이 있다고 생각하지 않는다.
가능한 중복 [전역 변수를 작성한 함수 이외의 함수에서 전역 변수 사용] (http://stackoverflow.com/questions/423379/using-global-variables-in-a-function-other-than- The-one-that-created-themes) – torek
내 프로그램의 오류는 무엇입니까? :( – Abraham
여기에있는 오류는'elif x == "LastName"과 Value == "POLICE IDENTITY":'조건과 관련이 있습니다.이 코드 샘플에서는 제공하지 않습니다.일반적으로'global value' 선언은'Value' ('Search')를 참조하는 함수가 아니라'Value' ('config1'과'config5')에 할당하는 함수에 있어야합니다. – Stuart