Seite 1 von 1

`this` O.O

Verfasst: Freitag 9. Mai 2008, 16:18
von Karl
Ich habe grade diesen Post von gerold gelesen:
gerold hat geschrieben:
sechsrad hat geschrieben:na, einen eigenen willen und stärke hast du ja nicht.
Hallo sechsrad!

Python ist nicht nur die Programmiersprache. Python ist auch die Art und Weise wie man programmiert. Zu Python gehört, dass man versucht, ein Programm so lesbar wie möglich zu schreiben. Was bei anderen Programmiersprachen komplett nebensächlich ist, wird bei Python als die hohe Kunst gewürdigt.

Hier wird beschrieben, wie ein Python-Programm aufgebaut sein soll: http://www.python.org/dev/peps/pep-0008/
Man sollte sich weitgehendst daran halten. Und wenn man davon abweicht, dann sollte es einen triftigen Grund dafür geben.

Freiheit, JA! Aber nicht ohne vorher darüber nachzudenken.

mfg
Gerold
:-)

Nachtrag:

Code: Alles auswählen

>>> import this
The Zen of Python, by Tim Peters

Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea -- let's do more of those!
>>> 
.
Da hab ich mir gedacht, hä, this? komisches Modul :o
Hab dann direkt mal help eingegeben:

Code: Alles auswählen

>>> import this
>>> help(this)
Help on module this:

NAME
    this

FILE
    c:\python25\lib\this.py

DATA
    c = '!'
    d = {'A': 'N', 'B': 'O', 'C': 'P', 'D': 'Q', 'E': 'R', 'F': 'S', 'G': ...
    i = 25
    s = "Gur Mra bs Clguba, ol Gvz Crgref\n\nOrnhgvshy vf o...bar ubaxvat ...

>>> this.d
{'A': 'N', 'C': 'P', 'B': 'O', 'E': 'R', 'D': 'Q', 'G': 'T', 'F': 'S', 'I': 'V', 'H': 'U', 'K': 'X', 'J': 'W', 'M': 'Z', 'L': 'Y', 'O': 'B', 'N': 'A', 'Q': 'D', 'P': 'C', 'S': 'F', 'R': 'E', 'U': 'H', 'T': 'G', 'W': 'J', 'V': 'I', 'Y': 'L', 'X': 'K', 'Z': 'M', 'a': 'n', 'c': 'p', 'b': 'o', 'e': 'r', 'd': 'q', 'g': 't', 'f': 's', 'i': 'v', 'h': 'u', 'k': 'x', 'j': 'w', 'm': 'z', 'l': 'y', 'o': 'b', 'n': 'a', 'q': 'd', 'p': 'c', 's': 'f', 'r': 'e', 'u': 'h', 't': 'g', 'w': 'j', 'v': 'i', 'y': 'l', 'x': 'k', 'z': 'm'}

>>> this.s
"Gur Mra bs Clguba, ol Gvz Crgref\n\nOrnhgvshy vf orggre guna htyl.\nRkcyvpvg vf orggre guna vzcyvpvg.\nFvzcyr vf orggre guna pbzcyrk.\nPbzcyrk vf orggre guna pbzcyvpngrq.\nSyng vf orggre guna arfgrq.\nFcnefr vf orggre guna qrafr.\nErnqnovyvgl pbhagf.\nFcrpvny pnfrf nera'g fcrpvny rabhtu gb oernx gur ehyrf.\nNygubhtu cenpgvpnyvgl orngf chevgl.\nReebef fubhyq arire cnff fvyragyl.\nHayrff rkcyvpvgyl fvyraprq.\nVa gur snpr bs nzovthvgl, ershfr gur grzcgngvba gb thrff.\nGurer fubhyq or bar-- naq cersrenoyl bayl bar --boivbhf jnl gb qb vg.\nNygubhtu gung jnl znl abg or boivbhf ng svefg hayrff lbh'er Qhgpu.\nAbj vf orggre guna arire.\nNygubhtu arire vf bsgra orggre guna *evtug* abj.\nVs gur vzcyrzragngvba vf uneq gb rkcynva, vg'f n onq vqrn.\nVs gur vzcyrzragngvba vf rnfl gb rkcynva, vg znl or n tbbq vqrn.\nAnzrfcnprf ner bar ubaxvat terng vqrn -- yrg'f qb zber bs gubfr!" 
Und hab mir dann gedacht, aha ... this.d enthält bestimmt die Zeichenkombinationen, um den Text zu dekodieren.
Okay, hat auch geklappt, dann kam der "import this" Text raus.
2 Fragen:
Was ist mit dem i = 25 und dem c = ! ?
Und warum zur Hölle machen die Leute so einen Schwachsinn? :D
Hat das irgendeinen tieferen Sinn?

Verfasst: Freitag 9. Mai 2008, 16:32
von Leonidas
Steht in PEP 20, was das für einen Sinn hat.

Apropos, schau dir doch mal deinen Beitrag an, der macht das ganze scrolling kaputt. Schau mal, ob du den besser hinbekommst.

Verfasst: Freitag 9. Mai 2008, 16:52
von Karl
Leonidas hat geschrieben:Steht in PEP 20, was das für einen Sinn hat.

Apropos, schau dir doch mal deinen Beitrag an, der macht das ganze scrolling kaputt. Schau mal, ob du den besser hinbekommst.
Bei mir ist da nix zerstört ;o
Und der Sinn dieser umständlichen Schreibweise vom This-Text ist dann einfach Langeweile?

Verfasst: Freitag 9. Mai 2008, 17:21
von Leonidas
Es ist eben ein Easter Egg. Easter Eggs dürfen mit rot13 "verschlüsselt" sein. Sieh dir doch mal ``this.py`` an.

Verfasst: Freitag 9. Mai 2008, 20:01
von birkenfeld
Ich würde mal vermuten, dass das "i" und das "c" Reste von einem Loop sind...