![]() |
[Python] Rechnen mit "exec"?
Hi,
ich benutze um in einem Python-Programm Terme zu berechnen u.a. folgende Codezeilen:
Code:
Das funktioniert auch alles Prima. Nur wenn z.B. "10**10*10*10" eingegeben wird, dann ist diese Codezeile überfordert. Wie kann ich das Problem umgehen? Also besser: Wie kann ich das ausrechnen bzw. sagen, dass diese (und andere dieser Art) Berechnung nicht ausführbar ist?
erg=0
exec 'erg='+term MfG Cruso |
Re: [Python] Rechnen mit "exec"?
Was soll das heißen, "die Codezeile ist überfordert"?
Warum sollte man die nicht ausrechnen können? :gruebel: Edit://
Code:
Mit freundlichen Grüßen,
Python 2.4.4 (#2, Apr 16 2008, 17:58:59)
[GCC 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> erg = 0 >>> term = "10**10*10*10" >>> exec 'erg='+term >>> print erg 1000000000000 >>> Valle |
Re: [Python] Rechnen mit "exec"?
Zitat:
|
Re: [Python] Rechnen mit "exec"?
:gruebel:
Code:
Dauert auf dieser Maschine 0.007 Sekunden.
www-valle@ks360118:~$ time python -c "print 10**10*10*10"
1000000000000 real 0m0.007s user 0m0.008s sys 0m0.000s www-valle@ks360118:~$ Ist dir das zu langsam? :mrgreen: Naja, ich hab verstanden was du meinst. Da wird dir wohl nichts anderes übrig bleiben, als deinem Programm das überschlagen beizubringen. Du könntest auch einen kleinen Workaround machen: Während das Programm rechnet in einem Thread die Zeit mitzählen und nach 2 Sekunden Rechenzeit dem Benutzer irgendeine Statusmeldung ausgeben... Überschlagen wäre zwar besser, aber ob man das dem Programm so einfach beibringen kann weiß ich nicht. Edit:// Ey? Oben hast du noch 10**10*10*10 geschrieben, jetzt aber plötzlich 10**10***10... Das ist unfair. *g* Stimmt aber, diese Rechnung dauert zu lange... Überschlagen! *g* Mit freundlichen Grüßen, Valle |
Re: [Python] Rechnen mit "exec"?
Naja, ist es nicht möglich das über einen bestimmten Datentyp zu machen? Und sobald der Maximalwert überschritten ist gibt es einen Fehler und den kann ich dann verarbeiten.
Valle: Btw: Man kann doch mit nur 13 Zeilen eine Nachricht an einen IRC-Channel schicken ;) |
Re: [Python] Rechnen mit "exec"?
Zitat:
![]() Zitat:
Mit freundlichen Grüßen, Valle |
Re: [Python] Rechnen mit "exec"?
Immer diese Modul-Leute :mrgreen: ...
Ich wollte es eigentlich selbst machen. Und das mit dem Datentyp müsste gehen. In Delphi kann man ja auch nicht 10**10**10*10 mit Integer ausrechen :lol: ... Nur in Python weiß ich halt nicht wie das geht... @Valle: Joa, vllt schick ich dir das... (hängt von der Beantwortung dieser Frage ab :zwinker: ) ... |
Re: [Python] Rechnen mit "exec"?
Zitat:
Du sagst (wenn auch auch Spaß), dass du diese Module nicht magst. (So meine Interpretation ;-) ) Das ist eigentlich keine schlimme Einstellung, verstößt allerdings ziemlich hart gegen das Python-Prinzip. DRY = Don't repeat yourself. Die Module sind dazu da, dass man sie verwendet. Und das decimal-Modul ist bei jeder Python-Installation bereits dabei, was hält dich also davon ab es zu verwenden? Zitat:
Mit freundlichen Grüßen, Valle Edit:// Leichte Verwirrung beseitigt... |
Re: [Python] Rechnen mit "exec"?
Ach, das ist schon dabei? Mhm, dass ist natürlich etwas anderes! :-D Dann werde ich das mal ausprobieren...
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:12 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz