Zahl Pi abfrage in Python... 3.141592?

3 Antworten

Vom Fragesteller als hilfreich ausgezeichnet
Achtung! Nicht getestet!
import math

pi = ('%.48f' % math.pi)[2:]

print('PI = 3. ...')
for i in range(len(pi)):
if input('Weiter mit ENTER ("x" zum Beenden) ... '):
break

print('%d. Stelle: %s' % (i+1, pi[i]))
print('Ende.')

Sollte aber lauffähig sein. :)

Das ist aber nur eine Quick'n'Dirty Lösung da maximal die ersten 48 Stellen ausgegeben werden. Wenn du mehr willst, musst du die BBP-Formel o. ä. implementieren, oder PI mit einem anderen Algorithmus auf ein paar Tausend stellen im Voraus berechnen, und darauf hoffen, dass keiner so oft Enter drückt. :)

Viel spaß! :)

Diese Frage kann schwer werden, wenn du mehr als ca 16 Stellen von Pi ausdrucken willst.

Ein relativ leichte Lösung kann man mit den Python Paketen 'bigfloat' oder 'mpmath' erzielen - ggf muss man diese erst installieren.

Dann geht es mit :

#!/usr/bin/python
from bigfloat import precision, const_pi

Dezimalstellen=100

# precision wird in Dualsystem angegeben, daher durch log10(2) <= 0.3 teilen
PI_b= const_pi(precision(Dezimalstellen/0.3))
PI= str(PI_b)

# print(PI,len(PI))

for d in PI :
print(d)

''' alternativ mit dem mpmath Paket '''

from mpmath import workdps, pi
with workdps(Dezimalstellen) :
PI= str(pi)

print(PI)

Deutlich schwerer wird es, wenn man die Ziffern von Pi einzeln nacheinander berechnen will, ohne alle vorherigen Ziffern zu berechnen.

Siehe dazu die folgenden Webseiten:

https://de.wikipedia.org/wiki/Bailey-Borwein-Plouffe-Formel

http://www.pi314.net/eng/borwein.php

Ich vermute mal, dass du mit dieser Hilfe hier dein Skript hinbekommst:

https://www.programiz.com/python-programming/methods/built-in/next

Speicher also sehr viele Nachkommastellen von Pi als String, wandle diesen in eine Liste um und wende dann das obige an. Natürlich mit User Input usw.

Bei weiteren konkreten Fragen, kannst du die gerne als Kommentar stellen.