Re: [Python-de] Python Einführung - Bitte um Feedback
Am 08.03.2017 um 21:52 schrieb Thomas Güttler:
ich habe meine Python Einführung überarbeitet:
Ich würde mich über Hinweise und Verbesserungsvorschläge freuen.
Da gibt es bei mir Abweichungen: *SQL und andere Datenbanken vermeide ich aus einigen Gründen. Mein *py Dateien sind in Ordner, die ich mit grep -rn durchsuchen kann. Um zu vermeiden, das *.pyc meine Suche erschwert, habe ich *.py Programme gebastelt, die mir derartige Programme in einem anderen Ordner verschieben und symlinks setzten. Entsprechend arbeitet meine Datensicherung, die symlinks in ein Kopierordner wieder ersetzt, von wo aus ich diesen Kopieordner auf USB-Platten symlink-frei sichern kann. Ich habe zig Jahre lang sowohl beruflich als auch privat ohne Versionskontrolle Programme entwickelt. Ich mache nur noch Linux ( Wegen Alter windows .. gestrichen) PCs habe ich viele, hinzu kommt raspberry pi .. Ein selbst für Pythonentwicklung entwickeltes Programm sieht so aus: #!/usr/bin/python3 # -*- coding: utf-8 -*- import os, sys, string filenames=[] def pyr(filename): if not os.access(filename,os.F_OK): print(filename,"existiert nicht") return f=open(filename) l=f.readlines() f.close() os.system("cp -p {} {}~".format(filename,filename)) first_blanks=level=0 f=open(filename,"w") for line in l: z=line.rstrip() if len(z)<3 or z[:2]!="#$": if first_blanks==0: f.write(z) elif first_blanks >0: f.write(first_blanks*' ') f.write(z) elif len(z) < first_blanks: print(-first_blanks,z) f.write(z) else: f.write(z[-first_blanks:]) f.write('\n') continue c=z[2] if c=='<': level-=1 elif c=='>': level+=1 elif c==')': level=0 first_blanks=3*level f.close() for arg in sys.argv[1:]: if arg[0]=='-': pass filenames.append(arg) for filename in filenames: pyr(filename) Wobei ich nicht sicher bin, ob die Zeile # -*- coding: utf-8 -*- noch zweckmäßig ist. Mit diesem Programm kann ich die Blockeinrückung bequem verändern, was sonst in diversen Editoren Schwierigkeiten machen kann. Wenn ich cgi mache, sieht mein Programmanfang zusätzlich so aus: import cgi, cgitb, codecs, locale sys.stdout =codecs.open('/dev/stdout', 'w',"utf8") # mode. sys.stderr =codecs.open('/dev/stderr', 'w',"utf8") Damit erreiche ich, dass print auch utf-8 Sonderzeichen im browser korrekt anzeigt. Bei der Programmentwicklung verwende ich des öfteren folgende Bücher: Python 3 von Weigend mitp Python 3 von Ernesti, Kaiser Rheinwerk Python 3 gepackt von Weigend mitp Python kurz&gut von Lutz O'REILLY wobei ich anfangs kurz&gut dauernd, heutzutage kaum noch verwende. Meine hardware Ausrüstung sieht so aus: http://www.hermann-riemann.de/pic/Arbeitsplatz.jpg wobei Enwicklungsrechner und internet Rechner unterschiedlich sind. Leider beherrscht die Kombination aus aktuellem SuSE, KDE und Ati/AMD den Umgang mit Fenster im Multimonitorbetrieb nicht mehr, so dass ich Entwicklungsrechner und internet Rechner nicht mehr gleichzeitig aktiv lassen kann, ohne dass mir Fenster umgeordnet werden. Da die Bücher Bibliotheken nur unvollständig behandeln, und ich beim Entwickeln nicht umschalten mag, habe ich mir mit wget -rn https://docs.python.org/3/library/ mal losgeladen. Es waren ca 730 MB mit vielem, was ich nicht brauche. Ob es da eine bessere *tar.gz Alternative gibt, weiß ich nicht. Hermann der zum Programmieren meist Python 3 verwendet. -- http://www.hermann-riemann.de
On Donnerstag, 9. März 2017 10:41:40 Hermann Riemann wrote:
Am 08.03.2017 um 21:52 schrieb Thomas Güttler:
ich habe meine Python Einführung überarbeitet: http://thomas-guettler.de/vortraege/python/einfuehrung.html
Ich würde mich über Hinweise und Verbesserungsvorschläge freuen.
Da gibt es bei mir Abweichungen:
*SQL und andere Datenbanken vermeide ich aus einigen Gründen.
SQLAlchemy macht da _den_ Unterschied (habe früher meine eigenen ORM verwendet, was auch schon ganz gut funktionierte..).
Mein *py Dateien sind in Ordner, die ich mit grep -rn durchsuchen kann. Um zu vermeiden, das *.pyc meine Suche erschwert, habe ich *.py Programme gebastelt, die mir derartige Programme in einem anderen Ordner verschieben und symlinks setzten.
Klingt kompliziert, und entfällt ja bei Py3. Schon mal eric ausprobiert?
Ich habe zig Jahre lang sowohl beruflich als auch privat ohne Versionskontrolle Programme entwickelt.
Hmm, git macht da auch wieder einen Unterschied. Die Möglichkeit, verteilt mit branches zu arbeiten erleichtert einem das Entwicklerleben schon sehr. Stichwort: merge, cherry pick, remote branches (eigene und fremde), problemlos an unterschiedlichen Systemen arbeiten (Notebook und Desktop), History... Den Preis, den man dafür zahlen muß, ist überschaubar (git commit/push/pull), und man bekommt mehr raus als man investieren muß.. eric hat dafür auch passende UI... [...]
Leider beherrscht die Kombination aus aktuellem SuSE, KDE und Ati/AMD den Umgang mit Fenster im Multimonitorbetrieb nicht mehr, so dass ich Entwicklungsrechner und internet Rechner nicht mehr gleichzeitig aktiv lassen kann, ohne dass mir Fenster umgeordnet werden.
Hrmpf. Beim Umschalten der Monitore, richtig? kwin Problem.
Da die Bücher Bibliotheken nur unvollständig behandeln, und ich beim Entwickeln nicht umschalten mag, habe ich mir mit wget -rn https://docs.python.org/3/library/ mal losgeladen.
Es waren ca 730 MB mit vielem, was ich nicht brauche.
Ob es da eine bessere *tar.gz Alternative gibt, weiß ich nicht.
Probier mal: $ zypper in python3-doc und dann in Firefox: file:///usr/share/doc/packages/python3/html/index.html Pete der hin und wieder mal ein Python Paket auf openSUSEs Build Service baut: https://build.opensuse.org/project/monitor/home:frispete:python3
Am 09.03.2017 um 10:41 schrieb Hermann Riemann:
Ich habe zig Jahre lang sowohl beruflich als auch privat ohne Versionskontrolle Programme entwickelt.
Arbeitest du alleine oder in einem Team? Gruß, Thomas -- Thomas Guettler http://www.thomas-guettler.de/
participants (3)
-
Hans-Peter Jansen
-
Hermann Riemann
-
Thomas Güttler