Seite 1 von 1

brauche Hilfe bei Rechner

Verfasst: Dienstag 17. Juli 2012, 15:25
von fffrogi
Hallo,

ich hab heute mit Python angefangen ,scheitere aber schon bei einem meiner ersten Programme:
Es ging darum einen einfachen Newton-Rechner zu programmieren.
Hier der Quelltext:

Code: Alles auswählen

print("NewtonRechner")
print("Hier Masse in kg eingeben:")
m = input()
print("Beschleunigung in m/s² eingeben:")
a = input()
f = m * a
print("Das Ergebnis in Newton lautet:", f)
input
Bis zu dem Punkt an dem das Ergebnis angezeigt werden soll läuft alles ohne Probleme? Könnt ihr mir meinen Fehler erklären?
Vielen Dank im Vorraus
Fabian :D

Re: brauche Hilfe bei Rechner

Verfasst: Dienstag 17. Juli 2012, 15:26
von Dav1d
Hallo und Willkommen im Forum,

Welche Python-Version verwendest du denn? Das sieht mir nach einem Mix zwischen Python2 und Python3 aus.

Re: brauche Hilfe bei Rechner

Verfasst: Dienstag 17. Juli 2012, 15:29
von sparrow
Und vor allem: was genau geht denn nicht? Fehlermeldungen? Unerwünschtes Verhalten? Ergebnis stimmt nicht?
Mehr Details bitte.

Re: brauche Hilfe bei Rechner

Verfasst: Dienstag 17. Juli 2012, 15:36
von fffrogi
Ich verwende Python 3.2.3.

Die Fehlermeldung lautet:

Code: Alles auswählen

Traceback (most recent call last):
  File "C:/Python/NewtonRechner", line 6, in <module>
    f = m * a
TypeError: can't multiply sequence by non-int of type 'str'

Re: brauche Hilfe bei Rechner

Verfasst: Dienstag 17. Juli 2012, 15:39
von deets
Du musst die Eingaben erstmal zu Zahlen wandeln - denn sie sind Strings.

Code: Alles auswählen

a = int("10")

Re: brauche Hilfe bei Rechner

Verfasst: Dienstag 17. Juli 2012, 15:43
von fffrogi
Und wenn a durch den Benutzer eingegeben werden soll dann so:

Code: Alles auswählen

a = int(input)
?? :K

Re: brauche Hilfe bei Rechner

Verfasst: Dienstag 17. Juli 2012, 15:47
von EyDu
Fast. Du wills ja das ERGEBNIS von input in einen Integer umwandeln, daher musst du input noch aufrufen:

Code: Alles auswählen

m = int(input())

Re: brauche Hilfe bei Rechner

Verfasst: Dienstag 17. Juli 2012, 15:48
von fffrogi
Jetzt hab ichs verstanden, Danke für eure schnelle Hilfe. :)

Re: brauche Hilfe bei Rechner

Verfasst: Dienstag 17. Juli 2012, 15:53
von mutetella
@fffrogi:
'input()' liefert einen string.
'int()' liefert eine Zahl.
Das was 'input()' also liefert, musst Du wiederum an 'int()' weiterreichen. Also:

Code: Alles auswählen

>>> a = input()
10
>>> a
'10'
>>> a = int(a)
>>> a
10
Etwas kompakter:

Code: Alles auswählen

>>> a = int(input())
10
>>> a
10
Und einen Prompt kannst Du übrigens auch gleich an 'input()' übergeben, damit sparst Du Dir ein 'print()':

Code: Alles auswählen

>>> a = int(input('Beschleunigung in m/s² eingeben: '))
Beschleunigung in m/s² eingeben: 10
>>> a
10
mutetella

Re: brauche Hilfe bei Rechner

Verfasst: Dienstag 17. Juli 2012, 18:36
von fffrogi
Ich habs das gleiche noch mit der Masse versucht, aber es kommt immer was falsches raus :K

Code: Alles auswählen

#Masse ausrechnen
#g=Kraft
#b=Beschleunigung
#r=Masse
     print("Hier Kraft in N eingeben:")
     g = int(input())
     print("Hier Beschleunigung in m/s² eingeben:")
     b = int(input())
     r = g * b
     print("Das Ergennis in kg lautet:", g)
     input()
     exit
:oops:

Re: brauche Hilfe bei Rechner

Verfasst: Dienstag 17. Juli 2012, 19:01
von /me
Wenn du Nachkommastellen möchtest, dann solltest du keine Integerwerte verwenden. Verwende in dem Fall float() statt int().

Wenn du ein Tutorial für den Einstieg suchst dann schau mal unter http://docs.python.org/py3k/tutorial/.

Re: brauche Hilfe bei Rechner

Verfasst: Dienstag 17. Juli 2012, 19:05
von EyDu
Hallo,

da stimmen gleich mehrere Sachen nicht: Zunächst musst du dir über den richtigen Datentyp Gedanken machen. Momentan wandelst du alles in einen Integer um, vielleicht wäre ``float`` hier aber doch angebracht und nicht ``int``. Außerdem rufst du ``exit`` überhaupt nicht auf, da hast du einfach die Klammern vergessen. Aber wahrscheinlich brauchst du den exit-Aufruf gar nicht.

Wenn bei dir etwas nicht funktioniert wie gewünscht, dann solltest du auch angeben, wie es zu dem Fehler kommt und was für ein Ergebnis du erwartest. Also konkret: was hast du eingegeben, was wurde ausgegeben und was hätte ausgegeben werden sollen. Und ggf. dazu noch die Fehlermeldung inklusive des gesamten Tracebacks.

Nun aber zu deinem eigentlichen Fehler: Beim Programmieren ist es unglaublich wichtig, dass man sprechende Namen vergibt. g, b und r sagen mal gar nichts aus. Bennene bei dir mal alles richtig, dann wirst du schon über den Fehler stolpern (und dich darüber ärgern, wie dumm dieser Fehler war ;-) ).

Sebastian

Re: brauche Hilfe bei Rechner

Verfasst: Dienstag 17. Juli 2012, 19:19
von fffrogi
stimmt hab die namen der Variablen verändert und bin selbst drauf gekommen!! :D