Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > de.comp.lang.python > #5660

Re: [Python-de] Python2 auf 3: Matheberechnungen

Path csiph.com!fu-berlin.de!uni-berlin.de!not-for-mail
From Peter Otten <__peter__@web.de>
Newsgroups de.comp.lang.python
Subject Re: [Python-de] Python2 auf 3: Matheberechnungen
Date Tue, 18 Aug 2020 10:56:25 +0200
Organization None
Lines 62
Message-ID <mailman.604.1597740997.9580.python-de@python.org> (permalink)
References <hq1glnF175jU1@mid.individual.net> <2248102.5IIjVbcv3P@palindrom>
Mime-Version 1.0
Content-Type text/plain; charset="iso-8859-1"
Content-Transfer-Encoding quoted-printable
X-Trace news.uni-berlin.de /E+RXRdeYHqT62wViKZ4YQ05znDDy1Az9kOAuNMO38OA==
Return-Path <__peter__@web.de>
X-Original-To python-de@python.org
Delivered-To python-de@mail.python.org
Authentication-Results mail.python.org; dkim=pass reason="1024-bit key; unprotected key" header.d=web.de header.i=@web.de header.b=lknh2L9R; dkim-adsp=pass; dkim-atps=neutral
DKIM-Signature v=1; a=rsa-sha256; c=relaxed/simple; d=web.de; s=dbaedf251592; t=1597740995; bh=hFtnbTqS9Y+1bXPld+JQkhbHR467AnqUNXPGObaqMAQ=; h=X-UI-Sender-Class:From:To:Subject:Date:In-Reply-To:References; b=lknh2L9RqduB6+c2EvypsY/MC4isbBXjZeTkZVN/wMKW7qep+0pdd1L3T6fjrOGaV tWoPKtWvvP1KGa9sXQT93mtlSNF5J5HW+JMkXj7PSPXFm/eV+9zwGNXE4515zeI03s Ry4NOf91KNxslzRaPzV29EB+dG0Dy5gE1yW3Y3t0=
X-UI-Sender-Class c548c8c5-30a9-4db5-a2e7-cb6cb037b8f9
User-Agent KMail/4.13.3 (Linux/3.13.0-170-generic; KDE/4.13.3; x86_64; ; )
In-Reply-To <hq1glnF175jU1@mid.individual.net>
X-Provags-ID V03:K1:vag1eimGpcFT2BU74Jzz3PPL/3zGv1w971SvWcjuCa+S8eonsNf Fst/dfUawGt7Dv2c25zWGRqm6c59IMrO/UM7i4hZ3CKj+X0CHwNoPtFO1ByS7ck6uXDD8RK 32IIhkz6bTSAo/z7I0QmShOF8TUDLN67LV84EX8Twoo6oKSqWKqIP27eekQy34+/QRfzgeo 2mEDmdeDXGYy5BQbelkmQ==
X-Spam-Flag NO
X-UI-Out-Filterresults notjunk:1;V03:K0:KeYbtmFpqeE=:vCST2gMlSsCMIGIXfoPtSQ MIN+L5j1zsHeHLI5yd/uHx0ec+SmSaEpEo43nxDA1PNYVBC0cGC7F4F0CqPptid6wzhFXbqk7 qVd1A+HOnDYKwl7J2f9HTzFAveq5sB6axuK3Cs/H94eBzfgjyr9U1wGVGbiNzfy6TcVV3PglE vUYPLTicDVCrZsLC+AEsXsLlFrZvD3ZzgR/wwd9fx134SI1cUG32/qEnFVHq+2LibmAiKEXEz F3/Y8bItEC0jHkYeKdNZBrDr7dEdPofjkKcdk/2hp1qRq657Ju1kX0SwpvoaDZ4qihbZQGHXO tlG97pMJft9EYk0GN5r0o5IpSwQqL6wIx3VeEfUMhz3ksKtgDawfOJ/txZUistWbv6EsNZRQg SNuShv+vHTXvCRgl46kwLdy2gDJhBPHLwQEkWJBYR44NAInx3cFUVkVGhEpFON8gRllOliwZQ liX3zRj5lqTgsqdkonIZWMbcvmPACaWB393TBb34ZSKFik/ow0Gb9eoKYNg8sJTJ31vs6vcNZ Oq74Y5FN0TZAa7an8SZc7lFas1PvqSnKJZT/yylXl/0dY6DdP5IwnXScUtN72r28QEHDjCuMa rnMl6VXQfEBH3IH1SUlqi6FFJ42ygxeWjTxi+fB8xojX4MNyhR6BxH+ZNcdkmyKKYGebXfpXa 5pDdQscGHfHCjeLyCaOVx3tCTrhVoDi7TWD2T8UoBVtNs/zFxsGfuAECvHcTv72Ik5IMV1FhX YePMcmpVqi5vLyjUZKAaiHouvPXdsfr9NvFm1HGuNoIcNxa/YlYzAigjmH0VTE0x4Z0bPuzr5 2IecnbKXSIo0CvPJ9tJOnmt9unHlDQ36X1wXglPnMC6+uSGa04WRom5reswHPQsgERTqDlvHg Q0DOL5yVzkB+nfitMfFIpTm7ZO1lGRCfTAqFk7jQdKZO+27vJ81DE1+CTNeSNpcISJ9h8d7jv ORV42BE+j7eJganH7YwYy/cYi4B3QS55MKF9GYfyeOYNzuJQwEutg1jM/MUNyzUAfuIfn9f/n kLA/fptfY3oeI6zGi+w6P8UNwy0ORv1BEVUx9fEO2/F+eMh6lGjfqqSrtONfFEMquo5oihcjo GFdtctGX76X0/TaL8gLSP8SFjY0LMYZ8kI6tjFPX4BvqXuGwXYIb0RCDtk2Q28VrxwJbyyLgb bBPcnz/eY46vP5+MtmX2OtyQTIru6Bl+OPUcatzIYbIhnCBzi/nAwifcyY/YmJWnqRoZhSPI/ WShk7fE9ctIq6s0N7
X-BeenThere python-de@python.org
X-Mailman-Version 2.1.34
Precedence list
List-Id Die Deutsche Python Mailingliste <python-de.python.org>
List-Unsubscribe <https://mail.python.org/mailman/options/python-de>, <mailto:python-de-request@python.org?subject=unsubscribe>
List-Archive <http://mail.python.org/pipermail/python-de/>
List-Post <mailto:python-de@python.org>
List-Help <mailto:python-de-request@python.org?subject=help>
List-Subscribe <https://mail.python.org/mailman/listinfo/python-de>, <mailto:python-de-request@python.org?subject=subscribe>
X-Mailman-Original-Message-ID <2248102.5IIjVbcv3P@palindrom>
X-Mailman-Original-References <hq1glnF175jU1@mid.individual.net>
Xref csiph.com de.comp.lang.python:5660

Show key headers only | View raw


Am Di August 18 2020, 08:09:29 schrieb Stephan Seitz:
> Hallo!
> 
> Ich versuche gerade, das völlig unnötige ;-) Python-Script AstroBuild
> (https://github.com/lhartikk/AstroBuild) auf Python3 zu migrieren.
> 
> Dabei stelle ich aber fest, daß die verwendeten mathematischen
> Funktionen teilweise zu anderen Ergebnissen kommen.
> 
> Eine Funktion berechnet z.B. aus Jahr, Monat, Tag und Stunde den folgenden
> Wert:
> return 367*year - 7 * ( year + (month+9)/12 ) / 4 + 275*month/9 + day -
> 730530 + float(hour)/float(24)
> 
> Python2 kommt aktuell auf 7536.33333333, Python3 auf 7535.298611111201.
> Da dieser Wert für weitere Berechnungen verwendet wird, komme ich nie
> auf identische Ergebnisse.
> 
> Woran liegt das? 

In Python 2 kommt es auf den Typ der Operanden an -- bei der Division zweier 
int ist das Ergebnis wieder ein int, in allen anderen Fällen ein float:

# py2
>>> 7/2
3
>>> 7./2
3.5

In Python 3 ist das Ergebniss immer ein float:

# py3
>>> 7/2
3.5


> Und wie portiert man dann so ein Script?

Du musst die Divisionen identifizieren, bei denen sowohl Dividend als auch 
Divisor ganzzahlig sind, und dort den Operator / durch // ersetzen:

# py3 und py2, i. e. die Änderung ist rückwärtskompatibel
>>> 7//2
3

PS: Du kannst das Verhalten von py3 in py2 erzwingen mit

# py2
>>> 7/2
3
>>> from __future__ import division
>>> 7/2
3.5

Back to de.comp.lang.python | Previous | NextPrevious in thread | Find similar


Thread

Python2 auf 3: Matheberechnungen Stephan Seitz <stse+usenet@rootsland.net> - 2020-08-18 08:09 +0000
  Re: [Python-de] Python2 auf 3: Matheberechnungen Hartmut Goebel <h.goebel@goebel-consult.de> - 2020-08-18 10:38 +0200
    Re: [Python-de] Python2 auf 3: Matheberechnungen Stephan Seitz <stse+usenet@rootsland.net> - 2020-08-18 11:00 +0000
  Re: [Python-de] Python2 auf 3: Matheberechnungen Peter Otten <__peter__@web.de> - 2020-08-18 10:56 +0200

csiph-web