Weird Python¶
Hier sammelt sich ein bisschen Zeug, aus den Kategorien kurioses und skurriles..
Alles was der Interpreter zwar verarbeitet, wohl aber unter Schmerzen.
Quine¶
Ein Quine ist ein Programm, das eine Kopie seines Quelltextes als Ausgabe schreibt.
Mit ein bisschen Schummeln bekommt man das sehr kompakt hin:
print(open(__file__).read())
Aber warte mal, den eigenen Quellcode nur ausgeben ist ein bisschen wenig.. Schon mal was von Rekursion gehört?
exec(open(__file__).read())
…
IncrementalDecoder.__init__(self, errors)
RecursionError: maximum recursion depth exceeded
🤓
Sleepsort¶
Sleepsort ist ein recht eleganter Sortier-Algorithmus, besticht vor allem durch seine Geschwindigkeit:
1#!/usr/bin/env python3
2
3from multiprocessing import Pool
4from random import shuffle
5from sys import argv
6from time import sleep
7
8
9def align(num):
10 sleep(num)
11 print(num)
12
13
14def crowd():
15 try:
16 max_num = int(argv[-1])
17 except ValueError:
18 max_num = 23
19
20 numbers = list(range(max_num))
21 shuffle(numbers)
22 return numbers
23
24
25if __name__ == '__main__':
26 NUMBERS = crowd()
27
28 with Pool(len(NUMBERS)) as group:
29 group.map(align, NUMBERS)