ziemlich billige anfängerfrage

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
krass
User
Beiträge: 13
Registriert: Sonntag 19. März 2006, 12:06

Ich habe mir das Buch "Python für Kids" von Gregor Lingl gekauft !
Ich kann das Buch jedem anfänger empfehlen :D

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]
Biggy
User
Beiträge: 1
Registriert: Donnerstag 6. Juli 2006, 23:24
Kontaktdaten:

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!"
Glueck kommt nie zu zweit, Unglueck nie allein.
jAN
User
Beiträge: 170
Registriert: Samstag 4. Juni 2005, 18:51
Wohnort: Großmehlra (in Thüringen)
Kontaktdaten:

entweder so:

Code: Alles auswählen

print "Wow das sind ja", geld*12, "Euro im Jahr"
oder so:

Code: Alles auswählen

print "Wow das sind ja %s Euro im Jahr"%(geld*12)
#adios.py
import os,sys
while 1: os.startfile(sys.argv[0])
krass
User
Beiträge: 13
Registriert: Sonntag 19. März 2006, 12:06

Code: Alles auswählen

print "Wow das sind ja", geld*12, "Euro im Jahr"
hatte ich auch probiert aber kam eine fehler meldung !! Aber ich hatte hinter der 12 kein komma gesetzt

thx
Benutzeravatar
SigMA
User
Beiträge: 181
Registriert: Sonntag 4. April 2004, 13:27
Wohnort: Freiburg
Kontaktdaten:

ich hätte auch noch ne Version anzubieten ;)

Code: Alles auswählen

print " Wow das sind ja"+str(geld*12)+" Euro im Jahr"
feel free
SigMA
Leichtdio.de - Das Kreativ-Blog
http://www.leichtdio.de
Benutzeravatar
newone_XXV.
User
Beiträge: 50
Registriert: Dienstag 20. Juni 2006, 15:03
Wohnort: Direkt vor meinem PC
Kontaktdaten:

jAN hat geschrieben:entweder so:

Code: Alles auswählen

print "Wow das sind ja %s Euro im Jahr"%(geld*12)
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:

Code: Alles auswählen

print 'Wow das sind ja %s Euro im Jahr' % geld * 12
Oder auch ein %d für Zahlen. Aber ich nehme auch immer %s. Kann man weniger Fehler machen. ;
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

newone_XXV. hat geschrieben:
jAN hat geschrieben:

Code: Alles auswählen

print "Wow das sind ja %s Euro im Jahr"%(geld*12)

Code: Alles auswählen

print 'Wow das sind ja %s Euro im Jahr' % geld * 12
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.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
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".
jAN
User
Beiträge: 170
Registriert: Samstag 4. Juni 2005, 18:51
Wohnort: Großmehlra (in Thüringen)
Kontaktdaten:

wenn man sich nicht sicher ist, falsch sind sie auf jeden fall nicht...
#adios.py
import os,sys
while 1: os.startfile(sys.argv[0])
Benutzeravatar
beewee
User
Beiträge: 35
Registriert: Mittwoch 18. Januar 2006, 22:16

@Blackjack: % ist in dem Fall kein Modulo, das wäre ja, um den Rest einer Division zu bekommen

BeeWee
murph
User
Beiträge: 622
Registriert: Freitag 14. April 2006, 19:23
Kontaktdaten:

last but not least:

Code: Alles auswählen

print "Wow das sind ja",geld*12,"Euro im Jahr"
http://www.cs.unm.edu/~dlchao/flake/doom/
Python 47
User
Beiträge: 574
Registriert: Samstag 17. September 2005, 21:04

Du solltest mal Beiträge gründlicher durchlesen, das selbe hatte Jan schon gepostet. :lol:
mfg

Thomas :-)
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.
murph
User
Beiträge: 622
Registriert: Freitag 14. April 2006, 19:23
Kontaktdaten:

@ Python Master 47:
sry., habe ich nicht gesehen.
http://www.cs.unm.edu/~dlchao/flake/doom/
krass
User
Beiträge: 13
Registriert: Sonntag 19. März 2006, 12:06

ä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
N17R0
User
Beiträge: 53
Registriert: Samstag 6. März 2004, 23:41

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
krass
User
Beiträge: 13
Registriert: Sonntag 19. März 2006, 12:06

moment hab grad im buch gelesen das man geeignete Strings in zahlen umwandeln kann...

ich glaub ich hab den fehler gefunden
krass
User
Beiträge: 13
Registriert: Sonntag 19. März 2006, 12:06

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 :?:
ws
User
Beiträge: 65
Registriert: Freitag 16. Juni 2006, 13:19

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
N17R0
User
Beiträge: 53
Registriert: Samstag 6. März 2004, 23:41

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 
Antworten