Seite 1 von 2
ziemlich billige anfängerfrage
Verfasst: Samstag 8. Juli 2006, 12:28
von krass
Ich habe mir das Buch "Python für Kids" von Gregor Lingl gekauft !
Ich kann das Buch jedem anfänger empfehlen
Ich habe ein kleines problem, sogar ein ziemlich lächerliches.
Code: Alles auswählen
print "Ein toller Tag heute"
benutzername = raw_input("Wie heisst du ?")
print "Toll das du hier bist", benutzername
geld = raw_input("Wie viel verdienst du im Monat")
geld = float(geld)
print "Wow das sind ja", geld * 12
Zu meinem problem:
Ich möchte das die ausgabe von zeile 7 so aussieht:
"wow das sind ja "8000 Euro im Jahr und nicht "wow das sind ja 8000"
[/b]
Verfasst: Samstag 8. Juli 2006, 12:41
von Biggy
So?
Code: Alles auswählen
print "Ein toller Tag heute!"
benutzername = raw_input("Wie heisst du? ")
print "Toll, dass du hier bist", benutzername,"!"
geld = raw_input("Wie viel verdienst du im Monat? ")
geld = float(geld)
print "Wow das sind ja", geld * 12, "Euro im Jahr!"
Verfasst: Samstag 8. Juli 2006, 12:45
von jAN
Verfasst: Samstag 8. Juli 2006, 13:29
von krass
hatte ich auch probiert aber kam eine fehler meldung !! Aber ich hatte hinter der 12 kein komma gesetzt
thx
Verfasst: Samstag 8. Juli 2006, 14:50
von SigMA
ich hätte auch noch ne Version anzubieten
feel free
SigMA
Verfasst: Samstag 8. Juli 2006, 14:52
von newone_XXV.
jAN hat geschrieben:entweder so:
Ja, aber es geht auch, da es ja nur 1 Objekt ist das ersetzt wird. Ansonsten halt die Klammern und ein Kommer zwischen die Werte:
Oder auch ein %d für Zahlen. Aber ich nehme auch immer %s. Kann man weniger Fehler machen. ;
Verfasst: Samstag 8. Juli 2006, 16:27
von Leonidas
newone_XXV. hat geschrieben:
Das ist das selbe, da jANs "Tupel" gar keine Tupel ist. Wenn es eine sein sollte, müsste es dann "(geld * 12,)" heißen, also mit einem Komma. So wird (geld * 12) einfach zu geld * 12 evalutiert.
Verfasst: Samstag 8. Juli 2006, 20:59
von BlackJack
Ich hätte Klammern darum gesetzt weil ich jetzt nicht aus dem Kopf gewusst hätte, dass Multiplikation stärker bindet als Modulo. Sind ja beides "Punkt-Rechnung".
Verfasst: Samstag 8. Juli 2006, 21:50
von jAN
wenn man sich nicht sicher ist, falsch sind sie auf jeden fall nicht...
Verfasst: Samstag 8. Juli 2006, 22:09
von beewee
@Blackjack: % ist in dem Fall kein Modulo, das wäre ja, um den Rest einer Division zu bekommen
BeeWee
Verfasst: Sonntag 9. Juli 2006, 22:27
von murph
Verfasst: Sonntag 9. Juli 2006, 23:18
von Python 47
Du solltest mal Beiträge gründlicher durchlesen, das selbe hatte Jan schon gepostet.
Verfasst: Montag 10. Juli 2006, 09:30
von BlackJack
beewee hat geschrieben:@Blackjack: % ist in dem Fall kein Modulo, das wäre ja, um den Rest einer Division zu bekommen
Es ist der Modulo-Operator der dazu missbraucht wird. Man kann frei implementieren wie ein Objekt darauf reagieren soll, aber die Bindungsstärke der Operatoren bleiben immer gleich -- die sind fest von Python vorgegeben.
Verfasst: Montag 10. Juli 2006, 14:43
von murph
@ Python Master 47:
sry., habe ich nicht gesehen.
Verfasst: Mittwoch 12. Juli 2006, 14:59
von krass
ähm *hüstel* bevor ich nen neuen Thread aufmach......
Ich hock da jetzt schon über ne stunde dran *schäm*
Code: Alles auswählen
print "Programm zur Notendurchschnittsberechnung"
Name = raw_input("Wie heisst du ?")
Fach = raw_input("In welchen Fach willst du berechnen ?")
print "Noten fuer"
note1 = raw_input("die erste Klassenarbeit")
note2 = raw_input("die zweite Klassenarbeit")
note3 = raw_input("die dritte Klassenarbeit")
durchschnitt = note1 + note2 + note3 / 3
print "Der Notendurchschnitt von", Name, "in", Fach, "ist", durchschnitt
fehler meldung:
unsupported operand type(s) for /: 'str' and 'int'
zuerst lief das programm aber es hat die 3 die zahlen ausgegeben die ich eingab zb: 614 anstatt 11
WICHTIG: Bitte keine Lösung posten !! nur einen klitzekleinen typ
Verfasst: Mittwoch 12. Juli 2006, 15:05
von N17R0
hmm... raw_input ist für Strings, für Zahlenwerte darfste nur input nehmen und schonma um nem fehler vorwegzunehmen, punktrechnung geht vor strichrechnung
//edit:
aso, und zur erklärung von 614. du hast die werte als strings, also text eingelesen., d.h. aus "6"+"1"+"4" wird "614" und die fehlermeldung sagt dir nun, dass er den text "614" nicht durch 3 teilen kann, 1. weil es den operator / bei string meiner meinung nach nicht gibt und 2. weil er jetzt text und zahlen miteinander mischen müsste
Verfasst: Mittwoch 12. Juli 2006, 15:23
von krass
moment hab grad im buch gelesen das man geeignete Strings in zahlen umwandeln kann...
ich glaub ich hab den fehler gefunden
Verfasst: Mittwoch 12. Juli 2006, 16:16
von krass
ich habs geschafft *freu* !! Es funktioniert !! aber laut meinem Buch hätten 6 Variablen gelangt......
Code: Alles auswählen
# Autor: Ich
# Datum: 12.07.2006
# durschnittsberechnung.py
print "Programm zur Notendurchschnittsberechnung"
Name = raw_input("Wie heisst du ?")
Fach = raw_input("In welchen Fach willst du berechnen ?")
print "Noten fuer"
note1 = raw_input("die erste Klassenarbeit")
note2 = raw_input("die zweite Klassenarbeit")
note3 = raw_input("die dritte Klassenarbeit")
### damit ich nicht durcheinander komm :-)
note1 = float(note1)
note2 = float(note2)
note3 = float(note3)
durchschnitt = (note1 + note2 + note3) /3
durchschnitt = float(durchschnitt)
print "Der Notendurchschnitt von", Name, "in", Fach, "ist", durchschnitt
was hätte man besser machen können ? ich glaube 3 zeilen hätte man sich irgendwie sparen können
Verfasst: Mittwoch 12. Juli 2006, 16:26
von ws
raw_input() gibt die einen String zurück. Wenn Du Strings mit "+" addierst, werden die einfach hintereinandergehängt.
Deshalb wird aus "6" + "1" + "4"
der String "614".
Dann versuchst Du, "614" durch 3 zu teilen. Eine Division String/Zahl ist aber nicht definiert, deshalb die Fehlermeldung. Wenn Du Zahlen über die Tastatur einlesen willst, musst Du die erhaltenen Strings konvertieren, z.B.
meineZahl = int(raw_input())
wenn Du ganze Zahlen erhalten willst.
Gruss
Wolfgang
Verfasst: Mittwoch 12. Juli 2006, 16:59
von N17R0
Code: Alles auswählen
# Autor: Ich
# Datum: 12.07.2006
# durschnittsberechnung.py
print "Programm zur Notendurchschnittsberechnung"
Name = raw_input("Wie heisst du ?")
Fach = raw_input("In welchen Fach willst du berechnen ?")
print "Noten fuer"
note1 = input("die erste Klassenarbeit")
note2 = input("die zweite Klassenarbeit")
note3 = input("die dritte Klassenarbeit")
durchschnitt = (note1 + note2 + note3) /3.0
print "Der Notendurchschnitt von ", Name, " in ", Fach, " ist ", durchschnitt