summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorschneefux <schneefux+commit@schneefux.xyz>2014-11-22 10:03:20 +0100
committerschneefux <schneefux+commit@schneefux.xyz>2014-11-22 10:03:20 +0100
commitc519769f5b4941c1f0d818f06ceeb644ea8c9bc0 (patch)
treea454e838d38fa7f159ca9a586e67995ff9eac990
parent14d6f3b2658a972e63286a3adc63c9a782945a75 (diff)
downloadbwinf-33-c519769f5b4941c1f0d818f06ceeb644ea8c9bc0.tar.gz
bwinf-33-c519769f5b4941c1f0d818f06ceeb644ea8c9bc0.zip
pylint mobile.py
-rwxr-xr-xmobile.py55
1 files changed, 32 insertions, 23 deletions
diff --git a/mobile.py b/mobile.py
index 86c0fdd..a53a736 100755
--- a/mobile.py
+++ b/mobile.py
@@ -1,48 +1,56 @@
#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+'''Verteilt und gleicht ein Mobile aus'''
+
from math import floor
-import random
-# python list mit Elementen in der Form (Position, [Gewicht oder Liste]), wobei Position auf der linken Seite negativ ist
-Mobile = [(-4, [(-2, [(0, 1)]), (1, [(0, 2)])]), (-1, [(0, 2)]), (2, [(0, 3)]), (4, [(0, 2)])]
+# python list mit Elementen in der Form
+# (Position, [Gewicht oder Liste]),
+# wobei Position auf der linken Seite negativ ist
+MOBILE = [(-4, [(-2, [(0, 1)]), (1, [(0, 2)])]), \
+ (-1, [(0, 2)]), (2, [(0, 3)]), (4, [(0, 2)])]
-Figuren = [2, 3, 1, 2, 3]
+FIGUREN = [2, 3, 1, 2, 3]
-# gibt eine Liste zurück, in der die Elemente aus `fig` auf 4er-Balken aufgeteilt sind
def split(fig):
+ '''gibt eine Liste zurück, in der die Elemente
+aus `fig` auf 4er-Balken aufgeteilt sind'''
_fig = fig[:]
if len(_fig) > 4:
- b = [[] for j in range(4)]
+ temp = [[] for j in range(4)]
for k, item in enumerate(_fig):
- b[k % 4].append(item)
+ temp[k % 4].append(item)
- _fig = list(filter(None, b))
+ _fig = list(filter(None, temp))
- b = []
- for f in _fig:
+ temp = []
+ for afig in _fig:
summe = 0
- for (j, k) in f:
+ for (_, k) in afig:
summe += k
- weight = summe
+ myweight = summe
# Gewicht Inhalt
- b.append((weight, split(f)))
+ temp.append((myweight, split(afig)))
- _fig = b
+ _fig = temp
return _fig
-# gibt ein ausgeglichenes Mobile zurück
def weight(fig):
+ '''gibt ein ausgeglichenes Mobile zurück'''
res = []
if len(fig) % 2 == 1:
- # ist die Anzahl an Elementen ungerade, muss eines - hier das mittlerste - auf die Position 0
+ # ist die Anzahl an Elementen ungerade,
+ # muss eines - hier das mittlerste - auf die Position 0
middle = floor(len(fig) / 2)
res.append((0, fig[middle][1]))
del fig[middle]
for j in range(len(fig)):
- # Die Position des Elements wird auf das Gewicht des gegenüberliegenden Elements gesetzt,
- # sodass sich jeweils das Element mit dem Gegenüber ausgleicht
+ # Die Position des Elements wird auf das Gewicht des
+ # gegenüberliegenden Elements gesetzt, sodass sich
+ # jeweils das Element mit dem Gegenüber ausgleicht
side = -1 if j < len(fig) / 2 else 1
opposite = len(fig) - j - 1
@@ -57,10 +65,11 @@ def weight(fig):
return res
def mobile(liste):
- r = list([(j, j) for j in liste]) # der Input wird aufbereitet
- f = split(r)
- w = weight(f)
- return w
+ '''erstellt ein Mobile aus einer Liste von Figuren'''
+ inp = list([(j, j) for j in liste]) # der Input wird aufbereitet
+ splitted = split(inp)
+ weighted = weight(splitted)
+ return weighted
if __name__ == "__main__":
- print(mobile(Figuren))
+ print(mobile(FIGUREN))