Kritik am Python OpenBook

Gute Links und Tutorials könnt ihr hier posten.
Antworten
BlackJack

Ich habe meine Kritik am Python OpenBook mal als Webseite verfasst: http://www.marc.rintsch.de/python_openbook.html
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Gute Idee. Man sollte auch erwähnen, dass die Autoren da eine Unterscheidung zwischen zwei Modultypen einführen, die es in der Realität gar nicht gibt.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Gut, dass du das gemacht hast, denn die Autoren arbeiten weiterhin in unserem Feld, ob sie immernoch wueten ist eine andere Frage, aber anzunehmen waers :roll:

Aber deine Alternative zur Durschnittsberechnung ist auch nicht viel besser.
IMHO besser so - mit deren Code brichst du eh schon, also hat es keinen Sinn den Index noch mit zuschleifen:

Code: Alles auswählen

def average(iterable, start_value=0):
    total = start_value
    length = len(iterable)
    if length:
        for value in iterable:
            total += value
    else:
        raise ValueError('iterable must contain at least one argument.')
    return total / length
Eventuell koennte man noch den ``ValueError`` abfangen, wenn das nich alles Zahlen sind, aber das ist wohl besser beim Caller aufgehoben.
DasIch
User
Beiträge: 2718
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

@cofi Deine Variante funktioniert nicht für jedes iterable.

Code: Alles auswählen

>> def mygen():
..     yield 1
..     yield 2
..     yield 3
>> len(mygen())
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
...
TypeError: object of type 'generator' has no len()
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Hmm das stimmt natuerlich.
Benutzeravatar
birkenfeld
Python-Forum Veteran
Beiträge: 1603
Registriert: Montag 20. März 2006, 15:29
Wohnort: Die aufstrebende Universitätsstadt bei München

Kleine Zwischenbemerkung: Entweder dein Webserver oder das HTML-Dokument sollten etwas über die Kodierung aussagen. Der IE macht anscheinend keinen Default auf UTF-8...
Dann lieber noch Vim 7 als Windows 7.

http://pythonic.pocoo.org/
Benutzeravatar
birkenfeld
Python-Forum Veteran
Beiträge: 1603
Registriert: Montag 20. März 2006, 15:29
Wohnort: Die aufstrebende Universitätsstadt bei München

Achja, und evtl. wäre ``0.0`` als Default für den start_value günstiger, um keine Überraschungen bei ``average([0, 0, 1])`` zu provozieren.
Dann lieber noch Vim 7 als Windows 7.

http://pythonic.pocoo.org/
BlackJack

Hm, der Seitenquelltext beginnt mit ``<?xml version="1.0" encoding="UTF-8" ?>``. Der IE ist halt doof. :-)
Benutzeravatar
birkenfeld
Python-Forum Veteran
Beiträge: 1603
Registriert: Montag 20. März 2006, 15:29
Wohnort: Die aufstrebende Universitätsstadt bei München

Bah, den XML-Header hab ich übersehen. Bleibt die Frage, warum du XML als "content-type: text/html" auslieferst :)
Dann lieber noch Vim 7 als Windows 7.

http://pythonic.pocoo.org/
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

birkenfeld hat geschrieben:Bleibt die Frage, warum du XML als "content-type: text/html" auslieferst :)
Meinst du das ernst? Ich mache das auf meiner Uni-Seite: XHTML 1.1 mit application/xhtml+xml. Was IE damit tut: zum Download anbieten.. wie BlackJack sagte: der IE ist halt doof.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Benutzeravatar
birkenfeld
Python-Forum Veteran
Beiträge: 1603
Registriert: Montag 20. März 2006, 15:29
Wohnort: Die aufstrebende Universitätsstadt bei München

Leonidas hat geschrieben:
birkenfeld hat geschrieben:Bleibt die Frage, warum du XML als "content-type: text/html" auslieferst :)
Meinst du das ernst? Ich mache das auf meiner Uni-Seite: XHTML 1.1 mit application/xhtml+xml. Was IE damit tut: zum Download anbieten.. wie BlackJack sagte: der IE ist halt doof.
Naja, besonders viel lesbarer ist die Seite mit kaputten Umlauten auch nicht. Also warum nicht entweder konformes XHTML oder konformes HTML?
Und außerdem ist XHTML eh ein Auslaufmodell :)
Dann lieber noch Vim 7 als Windows 7.

http://pythonic.pocoo.org/
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

birkenfeld hat geschrieben:Naja, besonders viel lesbarer ist die Seite mit kaputten Umlauten auch nicht.
Immerhin kann man das in Browser umstellen, ganz im Gegensatz zum "Ach, ich downloade dir mal die Seite auf die Festplatte"-Verhalten.
birkenfeld hat geschrieben:Also warum nicht entweder konformes XHTML oder konformes HTML?
Ja, von BJ hätte ich durchaus konformes (X)HTML erwartet 8)
birkenfeld hat geschrieben:Und außerdem ist XHTML eh ein Auslaufmodell :)
Ich werde wohl bei der XML-Serialisierung bleiben. XHTML5 wird es ja trotz HTML5 zum Glück weiterhin geben.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
BlackJack

@birkenfeld: Ich liefere ja gar nicht aus, das macht der Webserver. ;-)

Hm, muss mal schauen -- wahrscheinlich muss ich '.xhtml' als Dateiendung verwenden.

Edit: So jetzt scheint's unter dem IE zu funktionieren.
Antworten