Page 3 of 3

Re: Programmiersprache Python

Posted: Wed 25. Apr 2012, 07:21
by Optimus Prime
FB

bin deinen Anweisungen gefolgt es wiederholt sich auch soo :D THX

Code: Select all

import sys
import os

###############################################
def buchlesen (dict):
###############################################    
    Buch = open("test1.txt", "r")
    for line in Buch.readlines(): 
        Buch.close()
    return dict
    print(line)
    
    

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


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

###############################################
def start2():
###############################################
    input_var = input("möchten sie es nochmal versuchen (ja/nein) ")
    if (input_var == "ja"):
        dict = {}
        worteingeben(dict)
        buchschreiben (key,value)
        buchlesen(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])
        start2()
        worteingeben(dict)
            
    else:    
        print ("Das Wort existiert nicht in meinem Wörterbuch")
        eingabe_value = input("Die Übersetztung eingeben")
        buchschreiben(key,eingabe_value)
        start2()
             
start()
        
nur liest es das buch nicht, hast du da eine lösung?

Re: Programmiersprache Python

Posted: Wed 25. Apr 2012, 10:42
by FreundBlase
Also, dein Programmfluss sieht ja ungefähr so aus:

start() -> dict = ()
-> worteingeben() -> key ist nicht in dict, da dict leer ->
-> buchschreiben(key, value) -> hier wird dann das erste mal die Datei geöffnet. Wird dann vllt durch den write-Befehl die gesamt Datei überschrieben? Oder wird wirklich am Ende eingefügt? Na jedenfalls wurde diese Datei bisher noch nicht gelesen!
->start2() -> dict = () ->
-> worteingeben() -> ab hier dann endlosschleife, buch wurde immer noch nicht gelesen.


Verstehste?
Dadurch, dass du die Funktionen immer wieder untereinander aufrufst, springst du nur hin und her, der buchlese-Befehl muss vorher kommen!!
worteingeben() ruft start2() auf, und start2() wiederum ruft worteingeben() auf, nohc bevor start2() überhaupt abgelaufen ist.

dann ruft worteingeben() sich nochmal selber auf, aber zu diesem Befehl wird es auch nie kommen, da er ja vorher schon in start2() steckt.

Lösung:
Du musst das logische Konzept nochmal durchgehen, dir nen genauen Programm-Ablaufplan überlegen.
buchlesen() und bcuschreiben() sieht gut aus, das so lassen!

In worteingeben() den Befehl worteingeben() und start2() auf jeden Fall löschen!
In start2() erst buchlesen(), dann worteingeben(), dann buchschreiben()

start und start2() zusammenlegen zu einer Funktion, und die Abfrage, ob nochmal, kommt nicht am Anfang von start, sondern am Ende von worteingeben(), alson NACH der if-then-else-anweisung

Klaro?
Ansonsten versuch ich nochmal deinen Code zu editieren :) Hab hier aber kein Python, würde das also nur blind machen ;)

Grüße

Re: Programmiersprache Python

Posted: Wed 25. Apr 2012, 19:28
by Optimus Prime
FreundBlase wrote:Also, dein Programmfluss sieht ja ungefähr so aus:

start() -> dict = ()
-> worteingeben() -> key ist nicht in dict, da dict leer ->
-> buchschreiben(key, value) -> hier wird dann das erste mal die Datei geöffnet. Wird dann vllt durch den write-Befehl die gesamt Datei überschrieben? Oder wird wirklich am Ende eingefügt? Na jedenfalls wurde diese Datei bisher noch nicht gelesen!
->start2() -> dict = () ->
-> worteingeben() -> ab hier dann endlosschleife, buch wurde immer noch nicht gelesen.


Verstehste?
Dadurch, dass du die Funktionen immer wieder untereinander aufrufst, springst du nur hin und her, der buchlese-Befehl muss vorher kommen!!
worteingeben() ruft start2() auf, und start2() wiederum ruft worteingeben() auf, nohc bevor start2() überhaupt abgelaufen ist.

dann ruft worteingeben() sich nochmal selber auf, aber zu diesem Befehl wird es auch nie kommen, da er ja vorher schon in start2() steckt.

Lösung:
Du musst das logische Konzept nochmal durchgehen, dir nen genauen Programm-Ablaufplan überlegen.
buchlesen() und bcuschreiben() sieht gut aus, das so lassen!

In worteingeben() den Befehl worteingeben() und start2() auf jeden Fall löschen!
In start2() erst buchlesen(), dann worteingeben(), dann buchschreiben()

start und start2() zusammenlegen zu einer Funktion, und die Abfrage, ob nochmal, kommt nicht am Anfang von start, sondern am Ende von worteingeben(), alson NACH der if-then-else-anweisung

Klaro?
Ansonsten versuch ich nochmal deinen Code zu editieren :) Hab hier aber kein Python, würde das also nur blind machen ;)

Grüße
Vielen dank FB, ja bin jetzt wieder einwenig schlauer :D
muss ich dann mal morgen aufjedenfall ausprobieren ich hoffe es klappt.