Page 2 of 3

Re: Programmiersprache Python

Posted: Wed 18. Apr 2012, 15:38
by Optimus Prime
FreundBlase wrote:Was haut denn nicht hin?
Und warum machst du das ganze eigentlich in Python? Würde sich nicht eher Delphi für sowas anbieten?!
Ich kenn Python eher für mathematische Sachen, DGL lösen, Integrale, Diagramm usw.

Tut mir echt leid, dass ich mich noch nicht weiter mit beschäftigt habe, aber ich muss echt zusehen, dass ich mit meiner DA zu Rande komme :(
ich absolviere grade ein Praktikum als fachinformatiker im bereich anwendungsentwicklung und habe einige aufgaben bekommen, darunter diese hier

Nur komme ich granicht weiter.... gar keine Ahnung wie python läuft, der interpretter ist echt zu... :( würde das ganze auch lieber in einer anderen sprache machen nur "soll ich es in der versuchen"

Ich häng da schon seit 2 tagen dran, es gibt viele lösungswege nur die passen alle nicht, sind meist in einer neueren Version geschrieben und ich hab ein etwas älteren interpreter.

hier sind nochmal die Aufgaben

Erstelle ein Vokabelprogramm mit folgenden Funktionen

1.Eingabe neuer Vokabeln
2.Abfrage von Vokabeln (lernen)
3.Speichern der Vokabel in eine Datei
4.ändern und ergänzen von Vokabeln.

leider läuft das script welches ich voher hier gepostet hab nicht ganz. falls du die Zeit findest dann schau es dir bitte mal an.

Danke :D

Re: Programmiersprache Python

Posted: Thu 19. Apr 2012, 12:06
by Optimus Prime
ich komme immer weiter

#dict = {'Deutschland':'Germany', 'Italien':'Italy','Frankreich':'France','Griechenland':'Greece'}

import sys
import os

###############################################
def buchslesen (dict):
###############################################
Buch = open("test.txt", "r")
for line in Buch:
zuordnung = line.split(" ")
dict[zuordnung[0]] = zuordnung[1]
return dict

###############################################
def buchschreiben (key,value):
###############################################
Buch = open("test.txt", "a")
Buch.write(key + " " + value + "\n")

def start2():
###############################################
input_var = input("nochmal? (ja/nein) ")
if (input_var == "ja"):
while True:
worteingeben(dict)
worteingeben(dict)
###############################################
def start ():
###############################################
print("Herzlich willkommen zu dem Vokabellernprogramm")
input_var = input("Möchten Sie beginnen (ja/nein) ")
if (input_var == "ja"):
dict = ()
print(" ")
#dict = buchslesen(dict)
worteingeben(dict)
worteingeben(dict)
else:()


###############################################
def worteingeben (dict):
###############################################
key = input("Geben Sie ein Wort ein: ")
if key in dict:
print ("Das deutsche Wort dafür lautet: "), dict[key]
print(dict[key])

else:
print ("Das Wort existiert nicht in meinem Wörterbuch")
eingabe_value = input("Die Übersetztung eingeben")
buchschreiben(key,eingabe_value)
start()


nur liest er die datei nicht

wisst ihr warum ?

Re: Programmiersprache Python

Posted: Thu 19. Apr 2012, 12:39
by FreundBlase
Ihh, reduzier mal bitte die Rautenanzahl etwas :D

Und ich denke mal, im Code ist es alles noch eingerückt? Also:

Code: Select all

if --- :
   bla
   bla 
   bla
Hier, ne Frage:

Code: Select all

def buchslesen (dict):
Buch = open("test.txt", "r")
for line in Buch:
   zuordnung = line.split(" ")      
   dict[zuordnung[0]] = zuordnung[1]
return dict
Achsoo, nee, habs grad gerafft, was ich erst nicht verstanden hab. In der Datei test.txt stehen die Wörter in einer Spalte?! Aber trotzdem find ich deinen Split komisch, warum nicht so?

Code: Select all

line.split(":")
, also, dass er beim : splittet, nicht bei nem Leerzeichen.

Hmm, bzw kenn ich ja den Befehl wieder nicht.
Das ist doof, irgendwie kann man dir schlecht helfen, weil man ja nciht drin steckt. Du müsstest dir nen Partner in deinem Kurs suchen, bist doch wohl nicht der einzige mit der Aufgabe?!

Programmieren ist bei mir immer mit viel Ausprobieren, Hilfsvariablen, Bildschirmausgaben, interne Befehlsreferenz, interne Hilfe und Googlen verbunden, oder eben Teamarbeit. Aber als Außenstehender kann man da irgendwie schlecht helfen ...

Und noch was, mich stören immer diese gewollten Endlosschleifen :D Also "while True" und ähnliches. Das lässt sich eigentlich immer umgehen ...
Und eine Eingabe "ja" oder "nein" ist zu komplex, mach wenn denn "j" oder "n" ;)

Re: Programmiersprache Python

Posted: Thu 19. Apr 2012, 19:22
by mortara
Ohne jemals Python programmiert zu haben, aber das hier

Code: Select all

Buch = open("test.txt", "r")
for line in Buch: 
zuordnung = line.split(" ")
dict[zuordnung[0]] = zuordnung[1]
return dict
sollte, wie FB schon geschrieben hat, so aussehen:

Code: Select all

Buch = open("test.txt", "r")
for line in Buch: 
   zuordnung = line.split(" ")
   dict[zuordnung[0]] = zuordnung[1]

return dict
Die restlichen Blöcke genauso ....

Die Einrückung bei Python gruppiert ja Zeilen zu Blöcken, was in C++ (und anderen vernünftigen Sprachen) die geschweiften Klammen {...} machen ....

Re: Programmiersprache Python

Posted: Thu 19. Apr 2012, 21:21
by Optimus Prime
mortara wrote:Ohne jemals Python programmiert zu haben, aber das hier

Code: Select all

Buch = open("test.txt", "r")
for line in Buch: 
zuordnung = line.split(" ")
dict[zuordnung[0]] = zuordnung[1]
return dict
sollte, wie FB schon geschrieben hat, so aussehen:

Code: Select all

Buch = open("test.txt", "r")
for line in Buch: 
   zuordnung = line.split(" ")
   dict[zuordnung[0]] = zuordnung[1]

return dict
Die restlichen Blöcke genauso ....

Die Einrückung bei Python gruppiert ja Zeilen zu Blöcken, was in C++ (und anderen vernünftigen Sprachen) die geschweiften Klammen {...} machen ....
Danke... is echt blöd mit diesem einrücken

werde es dann morgen testen, bin leider nicht an meinem PC online.

Re: Programmiersprache Python

Posted: Fri 20. Apr 2012, 11:46
by Optimus Prime
so jetzt aber.. langsam langsamm komme ich dahinter :D

hier is mein Code, funktioniert fast

Code: Select all

import sys
import os

###############################################
def buchslesen (dict):
###############################################    
    Buch = open("test1.txt", "r")
    for line in Buch: 
        zuordnung = line.split(" ")
        dict[zuordnung[0]] = zuordnung[1]
    Buch.close()
    return dict

###############################################
def buchschreiben (key,value):
###############################################    
        Buch = open("test1.txt", "a") 
        Buch.write(key + " " + value + "\n")
    

###############################################
def start ():
############################################### 
    print("Herzlich willkommen zu dem Vokabellernprogramm")
    input_var = input("Möchten Sie beginnen (ja/nein) ")
    if (input_var == "ja"):
        dict = ()
        print(" ")
        #dict = buchslesen(dict)
        worteingeben(dict)
        
    else:()

###############################################
def start2():
###############################################
    input_var = input("möchten sie es nochmal versuchen (ja/nein) ")
    if (input_var == "ja"):
        print(" ")
        dict = {}
        worteingeben(dict)
        buchschreiben (key,value)
        buchslesen(dict)
    else:
        print("bis zum nächsten mal")
        quit()
    

###############################################
def worteingeben (dict):
###############################################
    key = input("Geben Sie ein Wort ein: ")
    if key in dict:
        ueberpruefe(dict)
        print ("Das deutsche Wort dafür lautet: "), dict[key]
        print(dict[key])
        while True:
              start2()
              worteingeben(dict)
            
    else:    
        print ("Das Wort existiert nicht in meinem Wörterbuch")
        eingabe_value = input("Die Übersetztung eingeben")
        buchschreiben(key,eingabe_value)
        while True:
             start2()
             worteingeben(dict)
start()
        

nur brauche ich jetzt eine funktion die es beendet ohne fehler und eine funktion die die keys prüft

habt ihr eine idee? :D

Re: Programmiersprache Python

Posted: Fri 20. Apr 2012, 12:06
by sCion
Also hast du schon eine Beenden-Funktion? Die aber einen Fehler rauswirft?

Re: Programmiersprache Python

Posted: Fri 20. Apr 2012, 12:38
by Optimus Prime
sCion wrote:Also hast du schon eine Beenden-Funktion? Die aber einen Fehler rauswirft?
ich keine funktion, aber ein befehl quit() nur funkst das nicht so wie es sein soll

wenn ich es mit einer funktion probiere

Code: Select all

def ende()
     sys.exit
bekomme ich auch eine Fehlermeldung

Die Datei liest das prog auch nicht, weiss nicht warum vorher hatts funktioniert.

Re: Programmiersprache Python

Posted: Fri 20. Apr 2012, 12:46
by sCion
Wie sieht die Fehlermeldung aus?

Re: Programmiersprache Python

Posted: Fri 20. Apr 2012, 12:48
by FreundBlase

Code: Select all

def worteingeben (dict):
    key = input("Geben Sie ein Wort ein: ")
    if key in dict:
        ueberpruefe(dict)
        print ("Das deutsche Wort dafür lautet: "), dict[key]
        print(dict[key])
        [color=#FF0000]while True:
              start2()
              worteingeben(dict)[/color]
Ähm, also nochmal:
"while True" macht dir automatisch ne Endlosschleife, die dir gar keine Abbruchbedingung liefert ... Zusätzlich wird in dieser While-Schleife immer wieder die Funktion worteingeben aufgerufen, du baust dir hier also eine Schachtel-Funktion, aus der du nicht so einfach rauskommst.

Dann steckt das gleiche nochmal im Else-Strang ...

Die SChleife ist doch total überflüssig, genauso wie der Aufruf der Fkt worteingabe, ein einfaches "start2()" dürfte reichen, damit sich das Programm wiederholt.

DAnn: Was soll der Befehl print(" ") machen??

ueberpruefe(dict) muss noch geschrieben werden?! Was soll das machen? Denn, wenn (key in dict = True), dann ist key doch richtig geschrieben, wozu die Überprüfung dann?

Und eine letzte Sache:
was soll das erste "s" in buchslesen??