ich habe heute mit dem Python-Programmieren angefangen. Dies ist meine erste "eigene" Funktion (eigentlich habe ich sie hier http://code.activestate.com/recipes/652 ... se-number/ geklaut).
So schaut sie aus:
Code: Alles auswählen
def base10to12(zahl):
try:
zahl = int(zahl)
except:
return ""
#
ziffernliste={10:'z', 11:'e'} # Festlegen von Zeichen für die Ziffern "zehn"
# und "elf".
ausgabe='' # Anelgen einer neuen Ausgabevariable.
aktuelle_zahl=zahl # Zunächst soll die übergebene Zahl "aktuell" bearbeitet
# werden.
while aktuelle_zahl!=0: # So lange die aktuell zu bearbeitende Zahl nicht
# Null ist…
rest=(aktuelle_zahl%12) # Bilde den Rest bei Teilung durch 12. Als mögliche
# Ergebnisse kommen alle Zahlen von 1 bis 11 infrage.
if 12>rest>9: # Gleichbedeutend mit: "Wenn rest 10 oder 11 ist."
restziffer=ziffernliste[rest] # Ziehe das Zahlensymbol aus der
# ziffernliste.
else: # Ansonsten …
restziffer=str(rest) # … mache einfach einen String aus der Restziffer.
ausgabe=restziffer+ausgabe # Hänge die gerade bestimmte Ziffer an den
# Ergebnisstring.
aktuelle_zahl=aktuelle_zahl/12 # Führe eine erneute Teilung durch.
return ausgabeCode: Alles auswählen
#!/usr/bin/env python3
# coding: utf8
#
#
#
### Vorarbeit ###
from datetime import datetime
from math import floor
#
#
## Einlesen der Funktionsdatei ##
import sys # Das sys-Modul stellt Informationen in Konstanten, Funktionen und
# Methoden über den Python-Interpreter zur Verfügung.
sys.path.append("/usr/local/lib/") # Hänge mein eigenes Libraryverzeichnis an.
from func import base10to12 # Importiere von dort aus die benötigte Funktion.
#
#
## Testen ob ein Datum übergeben wurde ##
#TODO
#
#
## Berechnung der Differenz ##
#TODO: Schutzfunktion, falls dem Skript kein korrektes Datumsformat übergeben
# wurde.
d1 = datetime.strptime(sys.argv[1], "%d.%m.%Y") # Datum aus übergebenem
# Argument auslesen.
d2 = datetime.strptime("10.09.2007", "%d.%m.%Y") # "Stunde Null" des
# Unionskalenders.
diff=(d1 - d2).days # Eigentliche Differenzberechnung.
#
#
## Umrechnung uns Unionsformat ##
union_jahr=floor(diff/360)
union_tag=diff%360
print(union_jahr)
print(union_tag)
print(base10to12(union_jahr))
print(base10to12(union_tag))Code: Alles auswählen
7
124
1e-3231.5e-3221.774e-3212.1294e-3202.55536e-3193.066413e-3183.679694e-3174.41563276e-3165.29875933e-3156.3585111933e-3147.6302134322e-3139.156256118647e-3121.0987507342379e-3101.31850088108546e-3091.582201057302556e-3081.898641268763067e-3072.2783695225156803e-3062.7340434270188164e-3053.2808521124225797e-3043.937022534907096e-3034.724427041888515e-3025.6693124502662176e-3016.803174940319461e-3008.163809928383353e-2999.796571914060024e-2981.1755886296872028e-2961.4107063556246434e-2951.692847626749572e-2942.0314171520994866e-2932.437700582519384e-2922.9252406990232606e-2913.510288838827913e-2904.2123466065934955e-2895.054815927912195e-2886.065779113494634e-2877.278934936193561e-2868.734721923432273e-2851.0481666308118728e-2831.2577999569742473e-2821.509359948369097e-2811.8112319380429164e-2802.1734783256514997e-2792.6081739907817997e-2783.1298087889381596e-2773.755770546725791e-2764.506924656070949e-2755.408309587285139e-2746.489971504742166e-2737.7879658056906e-2729.34555896682872e-2711.1214670760194463e-2691.3457604912233356e-2681.6149125894680027e-2671.9378951073616033e-2662.325474128833924e-2652.7905689546007087e-2643.3486827455208505e-2634.0184192946250206e-2624.822103153550025e-2615.786523784260029e-2606.943828541112035e-2598.332594249334443e-2589.999113099201332e-2571.1998935719041598e-2551.4398722862849918e-2541.7278467435419902e-2532.0734160922503882e-2522.4880993107004657e-2512.985719172840559e-2503.582863007408671e-2494.299435608890405e-2485.1593227306684866e-2476.191187276802184e-2467.429424732162621e-2458.915309678595145e-2441.0698371614314174e-2421.283804593717701e-2411.5405655124612413e-2401.8486786149534894e-2392.2184143379441872e-2382.6620972055330247e-2373.19451664663963e-2363.8334199759675556e-2354.600103971161067e-2345.52012476539328e-2336.624149718471936e-2327.948979662166323e-2319.538775594599587e-2301.1446530713519505e-2281.3735836856223407e-2271.6483004227468088e-2261.9779605072961706e-2252.3735526087554047e-2242.848263130506486e-2233.417915756607783e-2224.101498907929339e-2214.921798689515207e-2205.906158427418249e-2197.087390112901899e-2188.504868135482279e-2171.0205841762578735e-2151.2247010115094482e-2141.4696412138113379e-2131.7635694565736054e-2122.1162833478883265e-2112.5395400174659917e-2103.04744802095919e-2093.656937625151028e-2084.3883251501812336e-2075.26599018021748e-2066.319188216260976e-2057.58302585951317e-2049.099631031415805e-2031.0919557237698967e-2011.310346868523876e-2001.572416242228651e-1991.886899490674381e-1982.2642793888092573e-1972.717135266571109e-1963.2605623198853307e-1953.912674783862397e-1944.695209740634876e-1935.634251688761851e-1926.761102026514221e-1918.113322431817065e-1909.735986918180478e-1891.1683184301816572e-1871.4019821162179886e-1861.6823785394615862e-1852.0188542473539036e-1842.4226250968246844e-1832.907150116189621e-1823.488580139427545e-1814.186296167313054e-1805.0235554007756646e-1796.028266480930797e-1787.2339197771169565e-1778.680703732540348e-1761.0416844479048418e-1741.25002133748581e-1731.500025604982972e-1721.8000307259795665e-1712.16003687117548e-1702.5920442454105757e-1693.1104530944926907e-1683.732543713391229e-1674.479052456069474e-1665.374862947283369e-1656.449835536740043e-1647.739802644088052e-1639.287763172905662e-1621.1145315807486793e-1601.3374378968984152e-1591.6049254762780983e-1581.9259105715337178e-1572.3110926858404613e-1562.7733112230085534e-1553.327973467610264e-1543.9935681611323167e-1534.79228179335878e-1525.7507381520305355e-1516.900885782436643e-1508.281062938923971e-1499.937275526708766e-1481.192473063205052e-1461.4309676758460622e-1451.7171612110152746e-1442.0605934532183294e-1432.4727121438619955e-1422.9672545726343945e-1413.5607054871612737e-1404.272846584593528e-1395.127415901512234e-1386.152899081814681e-1377.383478898177617e-1368.86017467781314e-1351.0632209613375768e-1331.2758651536050922e-1321.5310381843261107e-1311.8372458211913327e-1302.2046949854295992e-1292.645633982515519e-1283.174760779018623e-1273.809712934822348e-1264.5716555217868176e-1255.485986626144181e-1246.583183951373017e-1237.899820741647621e-1229.479784889977146e-1211.1375741867972576e-1191.365089024156709e-1181.6381068289880507e-1171.9657281947856607e-1162.358873833742793e-1152.8306486004913518e-1143.396778320589622e-1134.0761339847075467e-1124.891360781649056e-1115.869632937978868e-1107.043559525574641e-1098.45227143068957e-1081.0142725716827484e-1061.217127086019298e-1051.4605525032231576e-1041.7526630038677892e-1032.103195604641347e-1022.5238347255696165e-1013.0286016706835396e-1003.6343220048202477e-994.361186405784297e-985.233423686941156e-976.2801084243293876e-967.536130109195265e-959.043356131034318e-941.0852027357241181e-921.3022432828689417e-911.56269193944273e-901.875230327331276e-892.250276392797531e-882.7003316713570375e-873.240398005628445e-863.888477606754134e-854.666173128104961e-845.5994077537259536e-836.719289304471144e-828.063147165365372e-819.675776598438447e-801.1610931918126136e-781.3933118301751363e-771.6719741962101636e-762.0063690354521961e-752.4076428425426353e-742.8891714110511623e-733.4670056932613945e-724.160406831913673e-714.992488198296408e-705.990985837955689e-697.189183005546827e-688.627019606656192e-671.0352423527987431e-651.2422908233584918e-641.4907489880301902e-631.788898785636228e-622.1466785427634737e-612.5760142513161686e-603.0912171015794023e-593.7094605218952826e-584.451352626274339e-575.341623151529207e-566.409947781835048e-557.691937338202058e-549.230324805842469e-531.1076389767010962e-511.3291667720413155e-501.5950001264495786e-491.9140001517394944e-482.2968001820873933e-472.7561602185048722e-463.307392262205847e-453.9688707146470164e-444.76264485757642e-435.715173829091704e-426.858208594910044e-418.229850313892053e-409.875820376670465e-391.1850984452004558e-371.422118134240547e-361.7065417610886565e-352.0478501133063877e-342.457420135967665e-332.948904163161198e-323.5386849957934376e-314.246421994952125e-305.09570639394255e-296.11484767273106e-287.337817207277272e-278.805380648732725e-261.056645677847927e-241.2679748134175124e-231.521569776101015e-221.825883731321218e-212.1910604775854615e-202.6292725731025537e-193.1551270877230642e-183.786152505267677e-174.543383006321213e-165.452059607585455e-156.542471529102546e-147.850965834923055e-139.421159001907666e-121.13053908022892e-101.356646896274704e-091.6279762755296448e-081.9535715306355737e-072.3442858367626884e-062.813143004115226e-050.000337577160493827140.0040509259259259260.048611111111111110.58333333333333347
Traceback (most recent call last):
File "Software/EigeneProgramme/uniodate.py", line 38, in <module>
print(base10to12(union_tag))
File "/usr/local/lib/func.py", line 25, in base10to12
restziffer=ziffernliste[rest] # Ziehe das Zahlensymbol aus der
KeyError: 10.333333333333334Was mache ich hier falsch?
Viele Grüße und besten Dank im Voraus,
Markus
