zun.py
import random
def r(a, b):
r(a-1, print('Dung')) if random.random() < 0.5 else r(4, print('Doco') or 1/max(a,0))
try:
r(4, 0)
except:
print('Ki yo shi!')
Dies gibt Ihnen das gewünschte Ergebnis, aber was ist, wenn Sie außer endgültig einstellen?
zun_2.py
import random
def r(a, b):
r(a-1, print('Dung')) if random.random() < 0.5 else r(4, print('Doco') or 1/max(a,0))
try:
r(4, 0)
finally:
print('Ki yo shi!')
Nachricht wenn endlich
Dung
Doco
Dung
Dung
Dung
Dung
Doco
Ki yo shi!
Traceback (most recent call last):
File "zun_2.py", line 5, in <module>
r(4, 0)
File "zun_2.py", line 3, in r
r(a-1, print('Dung')) if random.random() < 0.5 else r(4, print('Doco') or 1/max(a,0))
File "zun_2.py", line 3, in r
r(a-1, print('Dung')) if random.random() < 0.5 else r(4, print('Doco') or 1/max(a,0))
File "zun_2.py", line 3, in r
r(a-1, print('Dung')) if random.random() < 0.5 else r(4, print('Doco') or 1/max(a,0))
File "zun_2.py", line 3, in r
r(a-1, print('Dung')) if random.random() < 0.5 else r(4, print('Doco') or 1/max(a,0))
File "zun_2.py", line 3, in r
r(a-1, print('Dung')) if random.random() < 0.5 else r(4, print('Doco') or 1/max(a,0))
File "zun_2.py", line 3, in r
r(a-1, print('Dung')) if random.random() < 0.5 else r(4, print('Doco') or 1/max(a,0))
File "zun_2.py", line 3, in r
r(a-1, print('Dung')) if random.random() < 0.5 else r(4, print('Doco') or 1/max(a,0))
ZeroDivisionError: division by zero
Das ist ein bisschen albern. .. .. Es ändert sich nicht, auch wenn ich es mit Lambda mache.
zun_2.py
import random
r = lambda a,b: r(a-1, print('Dung')) if random.random() < 0.5 else r(4, print('Doco') or 1/max(a,0))
try:
r(4, 0)
finally:
print('Ki yo shi!')
Ein Teil des Ergebnisses
Traceback (most recent call last):
File "zun_2.py", line 4, in <module>
r(4, 0)
File "zun_2.py", line 2, in <lambda>
r = lambda a,b: r(a-1, print('Dung')) if random.random() < 0.5 else r(4, print('Doco') or 1/max(a,0))
File "zun_2.py", line 2, in <lambda>
r = lambda a,b: r(a-1, print('Dung')) if random.random() < 0.5 else r(4, print('Doco') or 1/max(a,0))
File "zun_2.py", line 2, in <lambda>
r = lambda a,b: r(a-1, print('Dung')) if random.random() < 0.5 else r(4, print('Doco') or 1/max(a,0))
File "zun_2.py", line 2, in <lambda>
r = lambda a,b: r(a-1, print('Dung')) if random.random() < 0.5 else r(4, print('Doco') or 1/max(a,0))
File "zun_2.py", line 2, in <lambda>
r = lambda a,b: r(a-1, print('Dung')) if random.random() < 0.5 else r(4, print('Doco') or 1/max(a,0))
File "zun_2.py", line 2, in <lambda>
r = lambda a,b: r(a-1, print('Dung')) if random.random() < 0.5 else r(4, print('Doco') or 1/max(a,0))
File "zun_2.py", line 2, in <lambda>
r = lambda a,b: r(a-1, print('Dung')) if random.random() < 0.5 else r(4, print('Doco') or 1/max(a,0))
File "zun_2.py", line 2, in <lambda>
r = lambda a,b: r(a-1, print('Dung')) if random.random() < 0.5 else r(4, print('Doco') or 1/max(a,0))
File "zun_2.py", line 2, in <lambda>
r = lambda a,b: r(a-1, print('Dung')) if random.random() < 0.5 else r(4, print('Doco') or 1/max(a,0))
File "zun_2.py", line 2, in <lambda>
r = lambda a,b: r(a-1, print('Dung')) if random.random() < 0.5 else r(4, print('Doco') or 1/max(a,0))
File "zun_2.py", line 2, in <lambda>
r = lambda a,b: r(a-1, print('Dung')) if random.random() < 0.5 else r(4, print('Doco') or 1/max(a,0))
File "zun_2.py", line 2, in <lambda>
r = lambda a,b: r(a-1, print('Dung')) if random.random() < 0.5 else r(4, print('Doco') or 1/max(a,0))
File "zun_2.py", line 2, in <lambda>
r = lambda a,b: r(a-1, print('Dung')) if random.random() < 0.5 else r(4, print('Doco') or 1/max(a,0))
File "zun_2.py", line 2, in <lambda>
r = lambda a,b: r(a-1, print('Dung')) if random.random() < 0.5 else r(4, print('Doco') or 1/max(a,0))
File "zun_2.py", line 2, in <lambda>
r = lambda a,b: r(a-1, print('Dung')) if random.random() < 0.5 else r(4, print('Doco') or 1/max(a,0))
ZeroDivisionError: division by zero
Hmmm. .. .. Wenn ich darüber nachdenke http://fj.hatenablog.jp/entry/2014/06/15/032135 Ich habe eine Geschichte wie diese gesehen, aber es scheint, dass die Leistung nicht gut ist.
Verschiedene saubere Versionen:
zun_3.py
import random
r=lambda a: print('Dung') or r(a-1) if random.random() < 0.5 else print('Doco') or a <= 0 or r(4)
r(4) or print('Ki yo shi!')
Dies ist eine hervorragende Sache, die, wenn <= in == geändert wird, durchlaufen wird, außer wenn es nur vier Dünen gibt. Es sollte eine Debatte darüber geben, ob es in Ordnung ist, fünf oder mehr Dünen zuzulassen.