@BlackJack: Vielen Dank, das hat mir sehr geholfen =)
Eine Letzte Frage habe ich noch

Bei mir hängt sich das Tkinter Fenster immer auf wenn ich in IDLE F5 benutze und damit es ausführe. Wenn ich es aber mit einem Doppelklick auf die Datei versuche, dann klappt es problemlos
Wo liegt das Problem?
Ich benutze Python 2.7.2
Und das hier ist der Code:
PS: Viele Dinge wie z.B. from Tkinter import * konnte ich nicht zu import Tkinter as tk machen da und dann nurnoch komische Error Meldungen bekommen hab wie z.B. "name 'Button' is not defined". Nicht irritieren von vielen Fehlern bin neu in der Programmierung ^^ Außerdem gehört vieles daraus nicht zu der Frage aber vielleicht liegt da auch das Problem
Code: Alles auswählen
import time
import sqlite3 as sql
from Tkinter import *
root = Tk()
connection = sql.connect('datenbank.db')
cursor = connection.cursor()
def query(cmd):
cursor.execute(cmd)
query('CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY,name CHAR[30],password CHAR[30],score TEXT)')
def up():
global score
score += 1
def main():
global score
while True:
inp = raw_input('Bitte eingeben: \n[i]nsert\n[d]elete\n[u]pdate\n[s]how\n[q]uit\n[p]lay: ')
if inp == 'p':
score = 0
def result():
e1['state'] = DISABLED
print 'Deine Punktzahl beträgt: '+str(score)+''
query('SELECT score FROM users WHERE name = "'+benutzername+'"')
oldscore = cursor.fetchone()[0]
if oldscore < score:
query('UPDATE users SET score = "'+str(score)+'" WHERE name = "'+benutzername+'" \n\n')
else:
print 'Du warst mal besser...\n\n'
benutzername = raw_input('Benutzername: ')
print 'Startet in'
time.sleep(1)
print '3'
time.sleep(1)
print '2'
time.sleep(1)
print '1'
time.sleep(1)
print 'GO'
e1['state'] = NORMAL
root.after(5000, result)
root.after(6000, main)
break
if inp == 'sql':
sql = raw_input('Sql Befehl: ')
query(sql)
if inp == 'i':
ok = True
user = raw_input('Benutzername: ')
if len(user) < 3 or len(user) > 25:
print 'Der Benutzername muss zwischen 3 und 25 Zeichen lang sein.'
ok = False
password = raw_input('Passwort: ')
if len(password) < 3 or len(password) > 25:
print 'Das Passwort muss zwischen 3 und 25 Zeichen lang sein.'
ok = False
score = 0
if ok:
query('INSERT INTO users VALUES (null,"'+user+'","'+password+'","'+str(score)+'")')
print 'Der Benutzer '+user+' wurde erfolgreich erstellt'
elif inp == 'd':
user = raw_input('Benutzername: ')
query('DELETE FROM users WHERE name = "'+user+'"')
print 'Benutzer '+user+' wurde gelöscht.'
elif inp == 'u':
ucmd = raw_input('Was möchten Sie ändern? [[b]enutzername/[p]assword ')
if ucmd == 'b':
username = raw_input('Aktueller Benutzername: ')
newusername = raw_input('Neuer Benutzername: ')
query('UPDATE users SET name = "'+newusername+'" WHERE name = "'+username+'"')
print 'Benutzernamen erfolgreich geändert'
if ucmd == 'p':
username = raw_input('Aktueller Benutzername: ')
newpasswort = raw_input('Neues Passwort: ')
query('UPDATE users SET password = "'+newpasswort+'"[WHERE name = "'+username+'"]')
print 'Passwort erfolgreich geändert'
else:
print 'Syntax Error'
connection.commit()
print
elif inp == 's':
query('SELECT * FROM users')
users = cursor.fetchall()
if len(users) == 0:
print 'Keine Benutzer registriert.'
print
else:
tabs = ' '*20
headlines = ['ID', 'Name', 'Score', 'Passwort']
for string in headlines:
print string + (' '*(30-len(string))),
print
print '-'*120
for user in users:
data = [str(user[0]), user[1], user[3], ('*'*len(user[2]))]
for string in data:
print str(string) + (' '*(30-len(str(string)))),
print
print
elif inp == 'q':
break
else:
print 'Syntax Error'
connection.commit()
print
e1 = Button(root, text='SCHNELL', command= up, state=DISABLED)
e1.pack(ipadx=50, ipady=50)
main()
root.mainloop()
connection.close()