Kubikwurzel und ^3 in Python?

5 Antworten

#!/usr/bin/python

import sys
from math import sqrt

print "Punkt1 x y z"
x0 = float(raw_input())
y0 = float(raw_input())
z0 = float(raw_input())
print "Punkt2 x y z"
x1 = float(raw_input())
y1 = float(raw_input())
z1 = float(raw_input())
#prfloat "[", x0, y0, z0, "] ", " [",x1, y1,z1, "]"

a = [x0, y0, z0]
b = [x1, y1, z1]

abstand = sqrt((b[0]-a[0])*(b[0]-a[0])+(b[1]-a[1])*(b[1]-a[1])+(b[2]-a[2])*(b[2]-a[2]))

print "abstand", abstand

sys.exit()
Woher ich das weiß:Berufserfahrung – Studium der Informatik + Softwareentwickler seit 25 Jahren.

Brockdish 
Beitragsersteller
 03.10.2019, 21:54

Ah so geht's auch danke

Und was ist raw_input ?

0
Brockdish 
Beitragsersteller
 03.10.2019, 22:13
@Brainchild

Also wenn ich auf T drücke wird entsteht daraus der String T?

0
a=[...]
b=[...]
math.sqrt(functools.reduce(lambda u,v: u+v , itertools.starmap(lambda x,y : (x-y)**2,zip(a,b))))

a und b können Vektoren beliebiger Dimension sein.

Alternativ könnte man es auch so implementieren:

d=0
for x,y in zip(a,b):
  d+=(x-y)**2
d=math.sqrt(d)

In Python gibt es den power-Operator:

result = 2**3
print(result)  # 8

Beantworter375  03.10.2019, 21:56

Wieso hat java sowas nicht

0
regex9  03.10.2019, 22:43
@Beantworter375

Python wurde ja als einfache Skriptsprache entwickelt und fand schnell Einzug in der Anwendung wissenschaftlicher Bereiche. Zumindest die erste Zielsetzung dürfte Grund für die Einarbeitung dieses Operators gewesen sein. In Java bestand kein Fokus auf solche expliziten Verkürzungen.

0
regex9  03.10.2019, 22:46

Nachtrag: Die n-te Wurzel lässt sich ebenso durch Potenzieren ermitteln.

Formel:

result = number ^ (1 / n)
1
Isendrak  03.10.2019, 23:33
@regex9

Achtung: Das Zeichen ^ ist in Python der Operator für Bitweises-XOR. (Nicht dass hier noch Missverständnisse auftreten. ^^)

0
regex9  03.10.2019, 23:39
@Isendrak

Exakt. Das da oben ist nur die mathematische Formel. In Kommentaren kann man die leider nicht so schön formatieren, wie bei Antworten.

1
Isendrak  03.10.2019, 23:45
@regex9

Gibt ja immer noch Unicode: result = number¹ᐟⁿ ;)

1

https://docs.python.org/2/library/functions.html#pow

also pow()

oder x**y

für die Wurzel hol mal Dein Mathebuch wieder raus, dritte Wurzel heißt hoch(1/3)


Brockdish 
Beitragsersteller
 03.10.2019, 21:55

In meinem Mathebuch steht das nicht aber danke für die Info

0
Brockdish 
Beitragsersteller
 03.10.2019, 21:58
@Olokun

Ehm also ich kann mir nur eins besorgen und das habe ich

0

Kenn mich nicht in Python aus aber mach doch einfach x*x*x. Ansonsten erweiterten pythagoras zur abstandsberechnung