Seite 2 von 2

Verfasst: Mittwoch 12. Juli 2006, 23:05
von 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)

Verfasst: Donnerstag 13. Juli 2006, 11:08
von newone_XXV.
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....

Verfasst: Donnerstag 13. Juli 2006, 13:58
von krass
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

Verfasst: Donnerstag 13. Juli 2006, 21:27
von Python 47
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

Verfasst: Freitag 14. Juli 2006, 01:25
von keppla
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

Verfasst: Freitag 14. Juli 2006, 10:55
von krass
*hüstel* der durchschnitt wird aber richtig berechnet

Verfasst: Freitag 14. Juli 2006, 13:45
von Python 47
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:

Verfasst: Freitag 14. Juli 2006, 13:52
von querdenker
:oops: :oops: :oops:

man sollte einen thread zu Ende lesen....