Skip to content

Commit 853ccd1

Browse files
committed
Python 2.7
1 parent f5f47ba commit 853ccd1

1 file changed

Lines changed: 41 additions & 0 deletions

File tree

Python27.md

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
# Python 2.7
2+
3+
Wir stellen nur aktuelle Versionen von Python vor.
4+
Es kann allerdings sein, dass man für manche (sehr speziellen) Einsatzzwecke Python 2.7 verwenden muss.
5+
6+
Mit dem Erscheinen von Python 3.0 wurden einige größere Änderungen eingebracht - und die fehlen dann natürlich in 2.7. Außerdem hat die Standardbibliothek im Laufe der Zeit einige neue Module erhalten.
7+
8+
## Aktivieren des bereits unterstützten neuen Verhaltens
9+
10+
Python 2.7 unterstützt viele Änderungen in Python 3.0 schon - sie müssen nur noch aktiviert werden. Dazu müssen die folgenden zwei Zeilen an den Anfang (!) jeder Datei gepackt werden:
11+
12+
13+
```python
14+
# -*- coding: utf-8 -*-
15+
from __future__ import absolute_import, division, print_function, unicode_literals
16+
from io import open
17+
```
18+
19+
(Warum unbedingt an den Anfang der Datei?
20+
Syntaktisch ist das ein Kommentar und ein `import`-Statement, semantisch sind dies allerdings Anweisungen an den Compiler.)
21+
22+
Die erste Zeile sorgt dafür, dass der Quellcode als [UTF-8](http://utf8everywhere.org/) gelesen wird.
23+
Die zweite Zeile aktiviert die neue Import-Reihenfolge, die neue Division (`/` gibt `float` zurück), die `print`-Funktion (statt einem Statement) und Unicode-Strings als Standard.
24+
Die dritte Zeile ersetzt `open` durch das aus Python 3 bekannte.
25+
26+
## Dinge, die anders sind
27+
28+
* `input` heißt `raw_input`
29+
* viele Funktionen geben Listen oder Tupel zurück statt Iteratoren (z.B. `xrange` statt `range` verwenden)
30+
* viele Funktionen verwenden Bytestrings statt Unicodestrings
31+
* Klassen müssen explizit von `object` erben
32+
* `int`s, `list`s und `dict`s haben eine maximale Länge (evtl. statt `int` `long` verwenden)
33+
* einige Dinge in der Standardlibrary wurden verschoben (siehe z.B. [diese Tabelle](https://six.readthedocs.io/#module-six.moves))
34+
* ...
35+
36+
37+
## neue Module aus der Standardlibrary, die sich nachinstallieren lassen
38+
39+
* [ipaddress](https://pypi.org/project/ipaddress/)
40+
* [enum34](https://pypi.org/project/enum34/)
41+
* ...

0 commit comments

Comments
 (0)