Tut mir leid aber leider Falsch verstanden^^
Es handelt sich hier um eine Ceasar Verschlüsselung. Es ist erst sozusagen inder "beta" Phase, zuerst soll man in das Entry Widget die Zahl eingeben um wie viele Zeichen der Buchstabe verschoben werden soll, und in das Text Widget der zu verschlüsselnde Text. In einem neu erscheinendem Textfeld, soll dann der Text ausgegeben werden.
Beispiel:
Entryfeld: 2
Textfeld: Hallo
Neues Textfeld: Jcnnq
PS: versch=Verschiebung
Textfelder auslesen
-
- User
- Beiträge: 83
- Registriert: Montag 11. Februar 2008, 15:43
- Kontaktdaten:
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Die Zeile die da angemängelt wird ist:nightm4r3^ hat geschrieben:was soll ich machen? wieso passt die net zum code
Code: Alles auswählen
ausgabe=tk.Text(root, text=verschluesseln(text.get(), versch.get()), width=50, height=20)
Stattdessen hast du so eine Zeile:
Code: Alles auswählen
ausgabe=tk.Text(root, text=verschluesseln(text.get(1.0, tk.END), versch.get()), width=50, height=20)
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
-
- User
- Beiträge: 83
- Registriert: Montag 11. Februar 2008, 15:43
- Kontaktdaten:
entschuldigung ich habe den falschen fehler gepostet
Es kommt dieser Fehler
Code: Alles auswählen
Exception in Tkinter callback
Traceback (most recent call last):
File "F:\Python25\lib\lib-tk\Tkinter.py", line 1403, in __call__
return self.func(*args)
File "F:\Python25\Python Programme(self)\verschluesseln.py", line 26, in chiff
ausgabe=tk.Text(root, text=verschluesseln(text.get(1.0, tk.END), versch.get()), width=50, height=20)
File "F:\Python25\Python Programme(self)\verschluesseln.py", line 9, in verschluesseln
laenge=len(text.get(1.0, tk.END))
AttributeError: 'str' object has no attribute 'get'
Hallo nightm4r3^
Ich bin leider kein Verschlüsselungs-Experte Hi!
Kannst Du bitte Deine Funktion 'verschluesseln'
einmal durch die folgende ersetzen und kontrol-
lieren was der am Ende der Funktion stehende
Befehl 'print chiffre' auf die Konsole ausgibt:
Gruss wuf
Ich bin leider kein Verschlüsselungs-Experte Hi!
Kannst Du bitte Deine Funktion 'verschluesseln'
einmal durch die folgende ersetzen und kontrol-
lieren was der am Ende der Funktion stehende
Befehl 'print chiffre' auf die Konsole ausgibt:
Code: Alles auswählen
def verschluesseln(text, versch):
""" Verschlüsselungs-Algorithmus """
#~~ Das Text-Widget liefert automatisch ein '\n' zur eingegebenen
# Textzeile mit. Das wird hier entfernt
text = text.replace('\n','')
#~~ Anzahl Zeichen des zu verschlüsselnden Textes
laenge = len(text)
text = text.upper()
#~~ Modulo-Operator kann nur auf ganze Zahlen angewendet werden
shift = int(versch)%26
chiffre=''
for i in range(0,laenge):
if text[i]==' ':
chiffre+=' '
elif 65<=ord(text[i]) + shift<=90:
chiffre += chr(ord(text[i])+int(versch))
elif ord(text[i])+ shift >90:
chiffre += chr(ord(text[i])+int(versch)-26)
else:
chiffre += chr(ord(text[i])+int(versch)+26)
print chiffre
Take it easy Mates!
-
- User
- Beiträge: 83
- Registriert: Montag 11. Februar 2008, 15:43
- Kontaktdaten:
Code: Alles auswählen
JCNNQ
Exception in Tkinter callback
Traceback (most recent call last):
File "F:\Python25\lib\lib-tk\Tkinter.py", line 1403, in __call__
return self.func(*args)
File "F:\Python25\Python Programme(self)\verschluesseln.py", line 37, in chiff
ausabe.place(x=410, y=70)
NameError: global name 'ausabe' is not defined
Hallo nightm4r3^
Die Fehlermeldung sagt:
Python findet den Name 'ausabe' nicht.
Der Grund ist dieser Name hast Du falsch
geschrieben. Du musst ihn auf ausgabe
umändern.
Der Fehlerhafte Namen befindet sich auf Zeile-37!
Viel Spass nightm4r3^ mit der Python & Tkinter-
Programmierung.
Gruss wuf
Die Fehlermeldung sagt:
Python findet den Name 'ausabe' nicht.
Der Grund ist dieser Name hast Du falsch
geschrieben. Du musst ihn auf ausgabe
umändern.
Der Fehlerhafte Namen befindet sich auf Zeile-37!
Viel Spass nightm4r3^ mit der Python & Tkinter-
Programmierung.
Gruss wuf
Take it easy Mates!
-
- User
- Beiträge: 83
- Registriert: Montag 11. Februar 2008, 15:43
- Kontaktdaten:
und dir vielen dank wuf. ich glaube nicht das ich ohne deine hilfe geschafft hätte^^
aber eine frage hät ich noch. und zwar gibt mir das programm jetzt den chiffrierten text in der idle aus. wie bekomm ich ihn jetzt aber in das 2. textfeld?
aber eine frage hät ich noch. und zwar gibt mir das programm jetzt den chiffrierten text in der idle aus. wie bekomm ich ihn jetzt aber in das 2. textfeld?
Hallo nightm4r3^
Hier ist die Lösung für die Ausgabe des
verschlüsselten Textes:
Hänge am Schluss der Funktion 'verschluesseln'
unmittelbar nach dem Befehl 'print chiffre'
folgende Zeile an:
Ersetze die Funktion chiff durch die folgende:
Gruss wuf und good luck
Hier ist die Lösung für die Ausgabe des
verschlüsselten Textes:
Hänge am Schluss der Funktion 'verschluesseln'
unmittelbar nach dem Befehl 'print chiffre'
folgende Zeile an:
Code: Alles auswählen
return chiffre
Code: Alles auswählen
def chiff():
""" Ausgabe des verschlüsselten Textes """
global text
root.geometry('900x400')
ausgabe = tk.Text(root,
width = 50,
height = 20
)
ausgabe.place(x=500, y=100)
chiffre = verschluesseln(text.get(1.0, tk.END),versch.get()),
ausgabe.insert(tk.END,chiffre)
Take it easy Mates!