Anfänger braucht Hilfe beim Weiterkommen in einem Projekt

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.
BlackJack

Samstag 22. November 2008, 12:25

Ich weiss nicht ob das als ernsthafte Versuche zählt, aber bei "statisch typisiertem Python" fallen mir RPython (von PyPy), Cython, und ShedSkin ein. Vielleicht noch Boo als "ähnliche" Sprache.
sma
User
Beiträge: 3018
Registriert: Montag 19. November 2007, 19:57
Wohnort: Kiel

Samstag 22. November 2008, 12:35

RPython ist irgendein (nicht außerhalb des eigentlichen Übersetzers spezifiziertes, so wie ich das sehe) Subset und Snapshot von einem ausgeführten Python-Programm. Das ist wahrscheinlich nicht, was ich mir vorstelle. Auch hier wird ja das Programm erstmal beliebig ausgeführt und dann erst ein Stand im Hauptspeicher übersetzt. Das ist einerseits nett, weil man so Metaprogrammierung machen kann, aber es hilft nicht, Programme zu typisieren und statisch auf irgendeine Form von Korrektheit zu prüfen. Ich hätte eher an etwas wie Typed Scheme und ähnliche Ansätze gedacht.

Stefan
Benutzeravatar
roschi
User
Beiträge: 225
Registriert: Samstag 29. März 2008, 18:58
Wohnort: Thueringen, Deutschland
Kontaktdaten:

Samstag 22. November 2008, 14:33

so, da isses!
und hier ist noch etwas, was man zur ausfuehrung braucht.

ich hoffe, das regt ein bisschen an, und ist nicht gar so grausam geschrieben...

lg
roschi
[size=117]Fuer Alle, die in Python einsteigen wollen, kann ich das Buch [url=http://abop-german.berlios.de/]A Byte of Python[/url] nur waermstens empfehlen![/size]
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Samstag 22. November 2008, 15:11

roschi hat geschrieben:so, da isses!
Naja, es hält sich nicht an PEP8, die ``exit()``-Funktion scheint mir irgendwie arg sinnlos zu sein, ``os.system`` wäre durch ``subprocess.call`` zu ersetzen (wobei ich das clearen irgendwie generell unpraktisch finde). Statt "blank" würde man eher "empty" schreiben, was "choosed" ist, ist mir hingegen völlig unklar. Die Suche ist auch eher seltsam: reguläre ausdrücke escapen und dann den Stern unescapen. Der Stern funktioniert so wie es ist wohl auch nicht wie du dir das bei ``glob`` vorstellst. Warum wohl die ``main()`` auf den ``if __name__..`` und ``main()`` verteilt ist?

Naja, für eine Inspiration reicht es wohl.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Benutzeravatar
roschi
User
Beiträge: 225
Registriert: Samstag 29. März 2008, 18:58
Wohnort: Thueringen, Deutschland
Kontaktdaten:

Samstag 22. November 2008, 15:40

hallo!

@Leonidas:
- Naja, es hält sich nicht an PEP8.
FIXED

- die ``exit()``-Funktion scheint mir irgendwie arg sinnlos zu sein.
die braucht es wegen dem menue-kram

- ``os.system`` wäre durch ``subprocess.call`` zu ersetzen.
Traceback (most recent call last):
File "C:\projects\tel\tel.py", line 194, in <module>
main()
File "C:\projects\tel\tel.py", line 186, in main
clear()
File "C:\projects\tel\tel.py", line 16, in clear
subprocess.call("cls")
File "C:\Python25\lib\subprocess.py", line 444, in call
return Popen(*popenargs, **kwargs).wait()
File "C:\Python25\lib\subprocess.py", line 594, in __init__
errread, errwrite)
File "C:\Python25\lib\subprocess.py", line 816, in _execute_child
startupinfo)
WindowsError: [Error 2] Das System kann die angegebene Datei nicht finden
- (wobei ich das clearen irgendwie generell unpraktisch finde)
NAJA - das ist ansichtssache, aber gut:

- Statt "blank" würde man eher "empty" schreiben.
DANKE

- was "choosed" ist, ist mir hingegen völlig unklar.
die stelle des menueeintrages in der menue-liste, der gewaehlt wurde.

Die Suche ist auch eher seltsam: reguläre ausdrücke escapen und dann den Stern unescapen. Der Stern funktioniert so wie es ist wohl auch nicht wie du dir das bei ``glob`` vorstellst.
FIXED - daran habe ich beim schreiben mitten in der nacht wohl nicht gedacht :(

Warum wohl die ``main()`` auf den ``if __name__..`` und ``main()`` verteilt ist?
FIXED

- Naja, für eine Inspiration reicht es wohl.
DANK DIR :D!

VIELEN DANK FUER DIE TIPPS!

hier ist nun das neue, verbesserte telefonbuch.

lg
roschi
[size=117]Fuer Alle, die in Python einsteigen wollen, kann ich das Buch [url=http://abop-german.berlios.de/]A Byte of Python[/url] nur waermstens empfehlen![/size]
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Samstag 22. November 2008, 16:57

roschi hat geschrieben:- die ``exit()``-Funktion scheint mir irgendwie arg sinnlos zu sein.
die braucht es wegen dem menue-kram
Wo? Ich sehe nur, dass du ``exit()`` mit einem Returncode ausfühst und ``choosed`` immer ``None`` ist und in der Funktion auch gar nicht verwendet wird.
roschi hat geschrieben:- ``os.system`` wäre durch ``subprocess.call`` zu ersetzen.
Traceback (most recent call last):
File "C:\projects\tel\tel.py", line 194, in <module>
main()
File "C:\projects\tel\tel.py", line 186, in main
clear()
File "C:\projects\tel\tel.py", line 16, in clear
subprocess.call("cls")
File "C:\Python25\lib\subprocess.py", line 444, in call
return Popen(*popenargs, **kwargs).wait()
File "C:\Python25\lib\subprocess.py", line 594, in __init__
errread, errwrite)
File "C:\Python25\lib\subprocess.py", line 816, in _execute_child
startupinfo)
WindowsError: [Error 2] Das System kann die angegebene Datei nicht finden
In dem Fall ``shell=True``, weil ``cls`` und ``clear`` eingebaute Befehle der Shell sind. Außerdem ist es zu bevorzugen, den Subprocess-Befehlen Listen statt Strings zu übergeben.
roschi hat geschrieben:- (wobei ich das clearen irgendwie generell unpraktisch finde)
NAJA - das ist ansichtssache, aber gut:
Das hat sich ziemlich universell so durchgesetzt, ich nutze kein einziges Programm unter Linux dass die Konsole leert (und ich bin ziemlich sicher, dass ich mehr Konsolenprogramme unter Linux nutze als du unter Windows). Wenn man vollständige Kontrolle über das Konsolenfenster haben will, verwendet man meist eher ncurses, womit man dann ganze grafische Oberflächen macht, mit Eingabemasken und allem.
roschi hat geschrieben:- was "choosed" ist, ist mir hingegen völlig unklar.
die stelle des menueeintrages in der menue-liste, der gewaehlt wurde.
"Meinten Sie: choice?" ;)
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Benutzeravatar
roschi
User
Beiträge: 225
Registriert: Samstag 29. März 2008, 18:58
Wohnort: Thueringen, Deutschland
Kontaktdaten:

Samstag 22. November 2008, 18:15

Leonidas hat geschrieben:"Meinten Sie: choice?"
AUA! - :shock: - wie peinlich! nein, ich meinte 'chosen'.
aber gut, ich habe nun das 'ConsoleMenu'-Modul umgeschrieben, und jetzt braucht man das nicht mehr - war sowieso schwachsinn!

außerdem kann man sich nun aussuchen, ob man das script mit oder ohne cleaning laufen lassen moechte.

hier ist das script, und hier das 'ConsoleMenu'-Modul.

lg
roschi
[size=117]Fuer Alle, die in Python einsteigen wollen, kann ich das Buch [url=http://abop-german.berlios.de/]A Byte of Python[/url] nur waermstens empfehlen![/size]
moreeze
User
Beiträge: 6
Registriert: Freitag 21. November 2008, 00:51

Mittwoch 26. November 2008, 21:45

Hi zusammen!
Also ich hab mir eure Posts durchgelesen und auch schon angefangen mir das alles durchzuarbeiten, allerdings hab ich eine Zwischenfrage:

Ich hab mir das Tutorial zum Speichern von Einträgen durchgelesen und habe dazu eine Frage:

Zum Speichern von Text in einer Textdatei muss man das nach dem Tutorial so machen:

Code: Alles auswählen

# Schreiben
s = "Das ist mein Text"
f = file("dateiname.txt", "w")
f.write(s)
f.close() 
Nun möchte ich allerdings meine Eingaben in diese Datei schreiben und diese Textdate nach zwei Eingaben, die gemacht wurden benennen.
Das heißt wenn jemand Max Mustermann heißt, dann soll die Textdatei "mustermannmax.txt" heißen...
Dazu sollen halt die Eingaben da rein wo jetzt "Das ist mein Text" steht, wie geht das?

Das bekomm ich leider nicht hin. Vllt könnt ihr mir ja helfen wie ich da weiterkomme!

Lg Moreeze
Benutzeravatar
numerix
User
Beiträge: 2696
Registriert: Montag 11. Juni 2007, 15:09

Mittwoch 26. November 2008, 21:52

Damit kannst du ein bisschen herumbasteln:

Code: Alles auswählen

name = "Max Mustermann"
dateiname = "".join(name.split()[::-1]).lower()+".txt"
datei = open(dateiname,"w")
datei.write(name)
datei.close()
moreeze
User
Beiträge: 6
Registriert: Freitag 21. November 2008, 00:51

Mittwoch 26. November 2008, 22:14

Danke dafür!!!

Habs auch soweit erstma hinbekommen, nur dass auch alle Eingaben übertragen werden klappt noch nicht, ich glaube ich mache irgendetwas mit der Liste falsch:

Code: Alles auswählen

                    # Informationen für die Datei
                    kennung = name + vorname
                    writelist = [
                        "Name: " + name, + " " + "Vorname: " + vorname \n,
                        "Adresse: " + adresse \n,
                        "PLZ, Wohnort: " + wohnort \n,
                        "Telefon: " + telefon \n,
                        "Handy: " + handy \n,
                        "Email: " + email \n,
                        "Code: " + code
                    ]
                    # In Datei schreiben
                    dateiname = "".join(kennung.split()[::-1]).lower()+".txt"
                    datei = open(dateiname,"w")
                    datei.write(writelist)
                    datei.close()
Vllt kann ja jemand helfen!

Gruß
Moreeze
Benutzeravatar
numerix
User
Beiträge: 2696
Registriert: Montag 11. Juni 2007, 15:09

Mittwoch 26. November 2008, 22:28

moreeze hat geschrieben:Hallo zusammen!
Ich bin neu hier im Forum und genauso neu in der Welt von Python.
Das zeigt deine letzter Code auch ganz deutlich.

Ich denke, es wäre der richtige Weg, dass du dir mal ausreichend Zeit nimmst, das Python-Tutorial oder ein ordentliches Python-Buch (zumindest die ersten Kapitel davon) durchzuarbeiten. Deine Probleme sind grundlegender Natur.
abgdf

Mittwoch 26. November 2008, 23:53

Oben hatte ich schon geschrieben:
Versuch' doch auch zuerst, die Funktionalität in den Griff zu kriegen: Willkommensbildschirm, Passwortabfrage usw. können dann später dazukommen.
Das gilt für die Verwaltung mehrerer Benutzer entsprechend.

Gruß
moreeze
User
Beiträge: 6
Registriert: Freitag 21. November 2008, 00:51

Donnerstag 27. November 2008, 00:16

Hi!
Das hab ich doch auch gar nicht mehr drin...
Es geht mir ja nur drum die Eingaben in die Datei zu schreiben, aber ich krieg das mit dem Einfügen der Eingaben nicht hin...=(
BlackJack

Donnerstag 27. November 2008, 11:32

@moreeze: Deswegen sollst Du ja Python lernen, damit Du das selber hinbekommst und nicht einfach Quelltext von anderen zusammen kopierst ohne zu verstehen was da passiert. Du kannst mir nämlich nicht erzählen, dass Du verstanden hast, was Numerix' Zeile mit dem Dateinamen macht. Wenn Du's nicht verstehst, solltest Du's nicht verwenden, sondern so lange Python lernen bis Du weisst *warum* die Zeile den gewünschten Dateinamen liefert.

Auch das Du `kennung` erst zusammen setzt, um es dann später mit `str.split()` wieder zu trennen, zeigt, dass Du wohl eher "programming by accident" betreibst, statt planvoll vorzugehen.

Dein Quelltextschnipsel ist syntaktisch nicht korrekt. Das sollte Dir Python aber auch ziemlich deutlich mit einem `SyntaxError` sagen.
Antworten