Ich programmiere erst seit einem Monat und dies ist mein erstes Programm. Für Tipps bin ich immer offen. Wie ich aus einer Funktion an eine andere Funktion eine Variable in Form eines Arguments übergebe weiß ich nicht. Mein Wissen beschränkt sich in dem Gebiet darauf, dass ich in der Ursprungs-Funktion die neue Funktion mit Parameter aufrufen müsste. Wahrscheinlich nutze ich die Funktionen im Moment noch nicht so wie man es sollte oder könnte. 
@Sirius3
Das pass war ein überbleibsel als das Feature noch nicht implementiert wurde. Ja, die int() Aufrufe waren ein Stochern im Nebel. Das Programm funktioniert ohne die if-Bedingung wie es soll. Mit if-Bedingung funktioniert es genau einen Durchlauf, nach dem Zweiten dann nicht mehr. Wenn ich den type von max(anzahl) und anzahl_aufrufe im "Leerlauf" (also ohne if-Bedingung) abfrage, dann steht immer 'int' da. Das verwundert mich. 
Ob ich eine Schleife aufrufen will? Ja, ich möchte, dass die Funktion erneut ausgeführt wird. Das ist in gewisser Weise eine Schleife. Also neues Wort per Zufall suchen und untersuchen ob es schon einmal aufgerufen wurde. Das ist ja auch das, was die Funktion im Endeffekt tut. Sie sucht ein Wort und schaut ob es schonmal aufgerufen worden ist.
@BlackJack
Die Liste enthält anfangs nur "0"en. Wird ein Wort aufgerufen, dann bekommt es in seiner Zeile "anzahl_aufrufe" + 1 . Nun stehen in der Liste ein Haufen "0"en und eine 1. Ich wusste nicht wie ich es anders hätte umsetzen sollen. In der if-Schleife wird jetzt geschaut ob der aktuelle Datensatz bei "anzahl_aufrufe" < 1 ist, dann wird der Wert + 1 gezählt und ein weiteres Wort wurde damit einmal abgerufen. Usw. 
Für die Harten unter euch, hier der Code. 
Code: Alles auswählen
import csv
import random as ran
import tkinter as tk
deutsch_auf_englisch = "deutsch"
englisch_auf_deutsch = "englisch"
"""Einlesen der Daten aus der CSV-Liste und umwandeln in eine Liste pro Spalte """
def einlesen():
    global vocabularies
    global FIELDNAMES
    FIELDNAMES = ["englisch", "deutsch", "sprachniveau", "anzahl_aufrufe", "anzahl_ungewusst", "anzahl_ungewusst_aufrufe", "dummy"]     # Einlesen
    with open("englisch.csv") as csvfile:                                                                                               # der
        reader = csv.DictReader(csvfile, delimiter=';', fieldnames=FIELDNAMES)                                                          # benötigten
        vocabularies = list(reader)
    return vocabularies
def schreiben():
    with open("englisch.csv", "w") as csvfile:
        writer = csv.DictWriter(csvfile, delimiter=";", fieldnames=FIELDNAMES)
        writer.writerows(vocabularies)
    return vocabularies
""" Festlegen der GUI """
def raise_frame(frame):
    frame.tkraise()
root = tk.Tk()
Menu_Frame = tk.Frame(root)
Seite2_Frame = tk.Frame(root)
Loesung_Frame = tk.Frame(root)
falsch_Frame = tk.Frame(root)
unbekannt_Frame = tk.Frame(root)
for frame in (Menu_Frame, Seite2_Frame, Loesung_Frame, falsch_Frame, unbekannt_Frame):
    frame.grid(row=0, column=0, sticky="news")
"""Erstellen einer Liste bei der die Anzahl der Aufrufe überprüft werden kann"""
def list_count():
    global anzahl
    anzahl = []
    for reihe_anzahl in vocabularies:
        anzahl_liste = anzahl.append(reihe_anzahl["anzahl_aufrufe"])
    del anzahl[0]
    return anzahl
""" GUI """
def Startseite():                                                       # Das ist das Menü des Programms, die allererste Seite
    raise_frame(Menu_Frame)
    tk.Button(Menu_Frame, width=30, text="Englisch > Deutsch", command=lambda index=englisch_auf_deutsch: ausfuehrung_der_abfrage(index)).grid(row=0, column=0)
    tk.Button(Menu_Frame, width=30, text="Deutsch > Englisch", command=lambda index=deutsch_auf_englisch: ausfuehrung_der_abfrage(index)).grid(row=1, column=0)
    tk.Button(Menu_Frame, width=30, text="Unsichere Wörter", command=unbekannte_woerter).grid(row=2, column=0)
    tk.Button(Menu_Frame, width=30, text="Beenden", command=schreiben).grid(row=3, column=0)
def ausfuehrung_der_abfrage(richtung):                                  # Das ist die Seite die erscheint, wenn man die Sprachauswahl wählt.
    raise_frame(Seite2_Frame)
    if richtung == deutsch_auf_englisch:
        deutsch_englisch()
    else:
        englisch_deutsch()
    tk.Label(Seite2_Frame, width=30, text=zufallswort["deutsch"]).grid(row=1, column=0)
    tk.Button(Seite2_Frame, width=30, text="Lösung", command=lambda index=richtung: Loesung(index)).grid(row=2, column=0)
    tk.Button(Seite2_Frame, width=30, text="Zurück", command=Startseite).grid(row=3, column=0)
    tk.Button(Seite2_Frame, width=30, text="Beenden", command=schreiben).grid(row=4, column=0)
def Loesung(richtung):
    raise_frame(Loesung_Frame)
    uebersetzung(richtung)
    tk.Label(Loesung_Frame, width=30, text=ubersetzt).grid(row=1, column=0)
    tk.Button(Loesung_Frame, width=30, text="Weiter", command=lambda index=richtung: ausfuehrung_der_abfrage(index)).grid(row=2, column=0)
    tk.Button(Loesung_Frame, width=30, text="Nicht gewusst", command=unbekannte_woerter).grid(row=3, column=0)
    tk.Button(Loesung_Frame, width=30, text="Beenden", command=schreiben).grid(row=4, column=0)
def unbekannte_woerter():                                               # Wörter die nicht bekannt sind, in eine extra Datei schreiben um diese gesondert anzeigen lassen zu können
    zufallswort["anzahl_ungewusst_aufrufe"] = 1
    with open("englisch.csv", "w") as csvfile:
        writer = csv.DictWriter(csvfile, delimiter=";", fieldnames=FIELDNAMES)
        writer.writerows(vocabularies)
    return vocabularies
def uebersetzung(richtung):
    global ubersetzt
    if richtung == deutsch_auf_englisch:
        ubersetzt = zufallswort["englisch"]
    else:
        ubersetzt = zufallswort["deutsch"]
def deutsch_englisch():                                                 # Deutsche Wörter anzeigen und auf Englisch übersetzen
    global zufallswort
    global zufallszahl
    global vocabularies
    zufallszahl = ran.randint(1, len(vocabularies))                    # wählt ein zufälliges englisches Wort aus
    zufallswort = vocabularies[zufallszahl]
    anzahl_aufrufe = zufallswort["anzahl_aufrufe"]
    list_count()
    anzahl_aufrufe = anzahl_aufrufe
    if anzahl_aufrufe < max(anzahl):
        neue_anzahl = int(anzahl_aufrufe) + 1
        zufallswort["anzahl_aufrufe"] = neue_anzahl
        
    elif anzahl_aufrufe == max(anzahl):
        if anzahl_aufrufe == min(anzahl):
            neue_anzahl = int(anzahl_aufrufe) + 1
            zufallswort["anzahl_aufrufe"] = int(zufallswort["anzahl_aufrufe"]) + 1
            
        else:
            deutsch_englisch()
if __name__ == '__main__':
    einlesen()
    Startseite()
    root.mainloop()
Traceback (most recent call last):
  File "C:\Python34\lib\tkinter\__init__.py", line 1533, in __call__
    return self.func(*args)
  File "C:\Users\Stefan\Desktop\Sprachprogramm\englisch1.py", line 73, in <lambda>
    tk.Button(Loesung_Frame, width=30, text="Weiter", command=lambda index=richtung: ausfuehrung_der_abfrage(index)).grid(row=2, column=0)
  File "C:\Users\Stefan\Desktop\Sprachprogramm\englisch1.py", line 60, in ausfuehrung_der_abfrage
    deutsch_englisch()
  File "C:\Users\Stefan\Desktop\Sprachprogramm\englisch1.py", line 103, in deutsch_englisch
    if anzahl_aufrufe < max(anzahl):
TypeError: unorderable types: int() > str()