importieren

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
260410
User
Beiträge: 2
Registriert: Donnerstag 24. Oktober 2013, 18:27

In der Schule im Informatikunterricht machen wir gerade Verschlüsselung mit Phyton und dazu habe ein Programm programmiert. Jetzt versuche ich es in ein anderes Programm zu importieren und es dort zu benutzen/auszuführen.
Ich habe es zwar so gemacht wie ich es bereits bei Java gelernt habe, trotzdem funktioniert es nicht:

Code: Alles auswählen

import Caesar_entschluesseln
import Caesar_verschluesseln

ausgeben = ''
texte =''
texte = raw_input('Der zu verschluesselne Text:')
passw = raw_input('a ->')
print texte
print \

ausgeben = Caesar_verschluesseln(texte,passw)
print ausgeben
print \

ausgeben = Caesar_entschluesseln(ausgeben,passw)
print ausgeben
Und nun die beiden Programme:

Code: Alles auswählen

#Text = verschluesselter Text
#Pass -> a im normalen Text ist 'Pass' im verschluesselten Text
def Caesar_entschluesseln (Text,Pass):
    Laenge_Text = len (Text)
    Laenge_Pass = len (Pass)
    ASCII_Pass = ord (Pass [0])
    if (64 < ASCII_Pass < 90):
        ASCII_Pass = ASCII_Pass - 65
    if (96 < ASCII_Pass < 122):
        ASCII_Pass = ASCII_Pass - 97

    Num = 0
    Ausgabe = ""
    while (Num < Laenge_Text):
        ASCII = ord (Text [Num])
        if (64 < ASCII < 90 or 96 < ASCII < 122):
            ASCII = ASCII - ASCII_Pass
            if (64 < ASCII < 90 or 96 < ASCII < 122):
                UnnoetigeVariable = 1
            else:
                ASCII = ASCII + 26
        Ausgabe = Ausgabe + chr (ASCII)
        Num = Num + 1
    return (Ausgabe)
    #return?!?

Code: Alles auswählen

#Text = unverschluesselter Text
#Pass -> a im normalen Text ist 'Pass' im verschluesselten Text
def Caesar_verschluesseln (Text,Pass):
    Laenge_Text = len (Text)
    Laenge_Pass = len (Pass)
    ASCII_Pass = ord (Pass [0])
    if (64 < ASCII_Pass < 90):
        ASCII_Pass = ASCII_Pass - 65
    if (96 < ASCII_Pass < 122):
        ASCII_Pass = ASCII_Pass - 97

    Num = 0
    Ausgabe = ""
    while (Num < Laenge_Text):
        ASCII = ord (Text [Num])
        if (64 < ASCII < 90 or 96 < ASCII < 122):
            ASCII = ASCII + ASCII_Pass
            if (64 < ASCII < 90 or 96 < ASCII < 122):
                UnnoetigeVariable = 1
            else:
                ASCII = ASCII - 26
        Ausgabe = Ausgabe + chr (ASCII)
        Num = Num + 1
    return (Ausgabe)
    #return?!?
Wenn ich das erste ausführe, kommt folgende Fehlermeldung:
Traceback (most recent call last):
File "C:\Users\Nem\Desktop\Phyton\TEST.py", line 11, in <module>
ausgeben = Caesar_verschluesseln(texte,passw)
TypeError: 'module' object is not callable
Wie kann ich das beheben?

Vielen Dank schon mal im Vorraus.


PS: Ich benutze Phython 2.7.5
Sirius3
User
Beiträge: 17750
Registriert: Sonntag 21. Oktober 2012, 17:20

Hallo 260410,
Module sind nicht aufrufbar, sondern ein Modul enthält Funktionen, die Du aufrufen kannst. Bei Dir also »Caesar_entschluesseln.Caesar_entschluesseln(text, passw)«.
Deine Funktionen sind übrigens sehr seltsam. Du solltest unbedingt lernen, was for-Schleifen sind, Deine Variablennamen an die üblichen Konventionen (PEP-0008) anpassen und die unnötigen Klammern um Bedinungen weglassen.

Grüße
Sirius
260410
User
Beiträge: 2
Registriert: Donnerstag 24. Oktober 2013, 18:27

Erst einmal vielen Dank.
Zu den unnötigen Klammern.. Ich habe halt mit InteractiveC angefangen und da musste man halt noch immer die Klammern machen.
Aber ich werde es versuchen.
Antworten