Seite 2 von 2
Re: Kräfteberechnung per Python
Verfasst: Samstag 11. Juli 2020, 09:43
von Sirius3
@cck1989: wie Caskuda schon bei seinem letzten Beispiel geschrieben hat, solltest du erst gar nicht zwei getrennte Listen haben, sondern gleich im richtigen Format die Werte einlesen. Dann braucht man auch kein zip.
Re: Kräfteberechnung per Python
Verfasst: Samstag 11. Juli 2020, 15:58
von cck1989
Caskuda hat geschrieben: Freitag 10. Juli 2020, 22:13
@cck1989:
zip ist eine wunderschöne Funktion, um Listen zusammenzufassen, allerdings bin ich selbst noch weit davon entfernt alle Finessen zu meistern.
Vermutlich wirst du dir die math.radians() - Methode ansehen wollen, um die Winkel in Bogenmaß zu bekommen.
Es ist eine Weile her, aber du willst die Kraft jeweils in eine X- und Y-Achsen Projektion aufteilen?
Ja das ist richtig
Re: Kräfteberechnung per Python
Verfasst: Samstag 11. Juli 2020, 16:23
von cck1989
Sirius3 hat geschrieben: Samstag 11. Juli 2020, 09:43
@cck1989: wie Caskuda schon bei seinem letzten Beispiel geschrieben hat, solltest du erst gar nicht zwei getrennte Listen haben, sondern gleich im richtigen Format die Werte einlesen. Dann braucht man auch kein zip.
Erwirke ich durch den input namens „force“ und „tangle“ in der Liste „forces “ 2 eigene Listen, welche sich durch force und tangle ergeben
Wenn beide Inputs den selben Namen haben, dann speichert er mir die Werte zwischen eine gemeinsam eckigen Klammer?
Re: Kräfteberechnung per Python
Verfasst: Sonntag 12. Juli 2020, 13:08
von cck1989
Das habe ich jetzt gebaut, was sagt ihr dazu,
ich habe es nicht umgesetzt bekommen alles bei einer Liste zu lassen.
Code: Alles auswählen
# Rechnerische Addition von Kräften
import math
from math import pi
from math import sin
from math import cos
from math import atan
from math import radians
anzahl_kraefte = int(input("Wie viele Kräfte sollen addiert werden?"))
forces = list()
tangles = []
print ("Bitte tragen Sie Ihre Kräfte ein.")
print()
for _ in range(anzahl_kraefte):
force = input('Betrag der Kraft: ')
tangle = input('Der zugehörige Winkel zur Kraft: ')
forces.append(float(force))
tangles.append(float(tangle))
#for force in forces:
#print(f'Kraft {force}')
#for tangle in tangles:
#print(f'Winkel {tangle}')
tangle_float_list = []
for item in tangles:
tangle_float_list.append(float(item))
#print (tangle_float_list)
bogenlaenge = []
for x in tangle_float_list:
bogenlaenge.append(math.radians(x))
#print(bogenlaenge)
list_of_sinus = []
list_of_cosinus = []
for y in bogenlaenge:
list_of_sinus.append(sin(y))
list_of_cosinus.append(cos(y))
#print (list_of_cosinus, list_of_sinus)
force_x = []
force_y = []
for i in range(len(forces)):
force_y.append(round(forces[i]*list_of_sinus[i],3))
force_x.append(round(forces[i]*list_of_cosinus[i],3))
print()
print("Die Kraft der y-Achse betragen")
print(round(sum(force_y),3),"N")
y_force = (round(sum(force_y),3))
print("Die Kraft der x-Achse betragen")
print(round(sum(force_x),3),"N")
x_force = (round(sum(force_x),3))
print()
print("Die resultierende Kraft beträgt")
print(round(math.sqrt(round(((sum(force_x)))**2 + (((sum(force_y)))**2),3)),3),"N")
print("Der Winkel der resultierenden Kraft beträgt")
if y_force > 0 and x_force > 0:
a =(round(atan(y_force / x_force),2)*180/pi)
print(round((a),2))
if y_force > 0 and x_force < 0:
b = (round(atan(y_force / x_force),2)*180/pi)
print(round((b+180),2))
if y_force < 0 and x_force > 0:
c = (round(atan(y_force / x_force),2)*180/pi)
print(round((c+360),2))
if y_force < 0 and x_force < 0:
d = (round(atan(y_force / x_force),2)*180/pi)
print(round((d+180),2))
Re: Kräfteberechnung per Python
Verfasst: Sonntag 12. Juli 2020, 14:00
von Sirius3
Das sind doch viel zu viele Listen, die gar nicht gebraucht werden. Man muss nicht jeden kleinen Rechenschritt zwischenspeichern. tangle_float_list ist identisch zu tangles. Gerundet wird erst bei der Ausgabe und zwar mit Formatangaben.
Code: Alles auswählen
# Rechnerische Addition von Kräften
from math import sin, cos, atan2, radians, degrees
anzahl_kraefte = int(input("Wie viele Kräfte sollen addiert werden?"))
forces = []
print ("Bitte tragen Sie Ihre Kräfte ein.")
print()
for _ in range(anzahl_kraefte):
force = input('Betrag der Kraft: ')
tangle = input('Der zugehörige Winkel zur Kraft: ')
forces.append((float(force), float(tangle)))
cartesian_forces = []
for force, tangle in forces:
angle = radians(tangle)
cartesian_forces.append((force * cos(angle), force * sin(angle)))
force_y = sum(y for x, y in cartesian_forces)
force_x = sum(x for x, y in cartesian_forces)
force = (force_x ** 2 + force_y ** 2) ** 0.5
angle = degrees(atan2(force_y, force_x))
print()
print("Die Kraft der y-Achse betragen")
print(f"{force_y:.3f}N")
print("Die Kraft der x-Achse betragen")
print(f"{force_x:.3f}N")
print()
print("Die resultierende Kraft beträgt")
print(f"{force:.3f}N")
print("Der Winkel der resultierenden Kraft beträgt")
print(f"{angle:.3f}N")
Re: Kräfteberechnung per Python
Verfasst: Sonntag 12. Juli 2020, 20:16
von cck1989
@Siruis3, danke für deine Antwort.
Langsam denke ich habe ich einen Zugang zu Python.
alles erledigt, keine offenen Fragen mehr
Thema kann geschlossen werden