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.
BlackJack

krass hat geschrieben:ich habs geschafft *freu* !! Es funktioniert !! aber laut meinem Buch hätten 6 Variablen gelangt......
Man bekommt auch eine Lösung mit 5 hin. Eine Verbesserung wäre es zum Beispiel die Noten in einer Liste zusammen zu fassen und nicht drei einzelne Namen zu verwenden. Dann kann man den Quelltext auch recht einfach unabhängiger von der Anzahl der Klassenarbeiten/Noten machen. Im folgenden muss man nur an einer Stelle etwas ändern um mehr oder weniger Klassenarbeiten in die Berechnung einzubeziehen.

Code: Alles auswählen

print 'Notendurchschnittberechnung'
name = raw_input('Dein Name? ')
subject = raw_input('Welches Fach? ')

grades = list()
print 'Note fuer...'
for number in ('erste', 'zweite', 'dritte'):
    grades.append(float(raw_input('die %s Klassenarbeit: ' % number)))
average = sum(grades) / len(grades)
print 'Der Notendurchschnitt von %s in %s ist %.1f' % (name, subject, average)
Benutzeravatar
newone_XXV.
User
Beiträge: 50
Registriert: Dienstag 20. Juni 2006, 15:03
Wohnort: Direkt vor meinem PC
Kontaktdaten:

Du musst versuchen aus dem String einen anderen Datentyp zu machen, der dividieren kann. Probier mal was mit der Eingabe aus, ob Du da was umstellen kannst.

PS: Du wolltest ja nur einen kleinen Tip.... Hoffe mal, das Dir der nicht zu groß ist....
krass
User
Beiträge: 13
Registriert: Sonntag 19. März 2006, 12:06

hi newone_XXV

habs weiter oben schonmal gepostet
Du musst versuchen aus dem String einen anderen Datentyp zu machen

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 
[/code=py]
Hab die ergebnisse von den strings in gleitkomma zahlen verwandelt, etwas "exotisch" aber nach niederschmetternden erfahrungen mit anderen programmiersprachen eine mega Erfolgsergebniss für mich !!! :D
Python 47
User
Beiträge: 574
Registriert: Samstag 17. September 2005, 21:04

Hi Krass,

eine Sache noch zu deinem Code(Ich gehe nicht genauer auf die Umständlichkeit etc. ein):

du machst 27 und 28 einen Fehler. Ich geb dir nur mal einen kleinen Denkanstos *g*

falsch:

Code: Alles auswählen

x=6/5
float(x)
richtig:

Code: Alles auswählen

x=6/5.0
print x
Einfach mal ausprobieren. Du kommst, denk ich mal von alleine drauf. :D
mfg

Thomas :-)
Benutzeravatar
keppla
User
Beiträge: 483
Registriert: Montag 31. Oktober 2005, 00:12

du machst 27 und 28 einen Fehler
Sicher, dass es ein Fehler ist, und nicht nur einfach eine überflüssige Zeile 28? Denn eine Addition aus Floats ergibt ein Float, und

Code: Alles auswählen

x=3.0/6
print x # ergibt 0.5
krass
User
Beiträge: 13
Registriert: Sonntag 19. März 2006, 12:06

*hüstel* der durchschnitt wird aber richtig berechnet
Python 47
User
Beiträge: 574
Registriert: Samstag 17. September 2005, 21:04

Ups gar nicht gemerkt, das du in Zeile 23-15 die Zahlen in float umwandelst. Sorry war mein Feher. :oops:

Trotzdem kann man einiges vereinfachen. :D

Achja und Variablennamen schreibt man nicht groß! :wink:
mfg

Thomas :-)
querdenker
User
Beiträge: 424
Registriert: Montag 28. Juli 2003, 16:19
Wohnort: /dev/reality

:oops: :oops: :oops:

man sollte einen thread zu Ende lesen....
Antworten