Programmiersprache Python

Das OffTopic Forum - hier ist fast alles erlaubt, Boardregeln beachten!
User avatar
Optimus Prime
mobile-Expert
Posts: 233
Joined: Tue 9. Aug 2011, 16:42
Firmware: bada 2.0 Beta
Netzbetreiber: o2
BS: Windows 7 64bit
Location: Cybertron
Contact:

Re: Programmiersprache Python

Post 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?
Wer die immer auf den neusten Stand sein möchte, was Smartphone,Apps, Android,IOS angeht bitte diese seite liken und wenn möglich teilen

https://www.facebook.com/pages/Tech-Nac ... 1025260731
User avatar
FreundBlase
mobile-Hero
Posts: 1144
Joined: Thu 21. Jul 2011, 09:03
Firmware: 4.0.4
Netzbetreiber: fyve (D2)
BS: Windows 8

Re: Programmiersprache Python

Post 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
- Welch triste Epoche, in der es leichter ist, ein Atom zu zertrümmern als ein Vorurteil! -
User avatar
Optimus Prime
mobile-Expert
Posts: 233
Joined: Tue 9. Aug 2011, 16:42
Firmware: bada 2.0 Beta
Netzbetreiber: o2
BS: Windows 7 64bit
Location: Cybertron
Contact:

Re: Programmiersprache Python

Post 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.
Wer die immer auf den neusten Stand sein möchte, was Smartphone,Apps, Android,IOS angeht bitte diese seite liken und wenn möglich teilen

https://www.facebook.com/pages/Tech-Nac ... 1025260731
Post Reply