Seite 3 von 3

Re: Hallo, ein Neuling steckt in Schwierigkeiten :)

Verfasst: Sonntag 8. Juli 2012, 12:25
von Hyperion
Oops, ich hatte da wohl die letzte Aufgabe nicht korrekt gelesen. Hier die korrigierte Version. BlackJacks Ansatz mit der Datenstruktur ist aber wesentlich besser und auch beim Parsen müsste ich mir mehr "Mühe" geben.

@BlackJack: Dafür ist Deine Rückgabe bei Aufgabe 1 nicht korrekt ;-)

Re: Hallo, ein Neuling steckt in Schwierigkeiten :)

Verfasst: Sonntag 8. Juli 2012, 13:05
von hoola
Mal zu aufgabe 4 a).
Ich bin gerade dabei mir die Grundsätze des Dictionarys anzueignen .. scheint ja nicht all zu schwer zu sein.
Allerdings verstehe ich bei BlackJacks Lösung folgendes nicht ganz: "Date(2009, 1, 1)".
Ist "Date()" jetzt ein Tupel oder eine extra Funktion von Python oder was?
Verstehe grad den Grund nicht wirklich, warum der Stand in dieser Form dargestellt werden muss.
Kann man den Stand so besser ändern, wenn es mal eine "neue Version" einer Karte geben sollte?
Ich dachte Tupel sind immutabel, oder ist das gar kein Tupel?
Könnt ihr mir auf die Sprünge helfen?

Re: Hallo, ein Neuling steckt in Schwierigkeiten :)

Verfasst: Sonntag 8. Juli 2012, 13:07
von Hyperion
hoola hat geschrieben: Ist "Date()" jetzt ein Tupel oder eine extra Funktion von Python oder was?
Da hilft ein Blick ganz nach oben in BJs Lösung:

Code: Alles auswählen

from datetime import date as Date
Das ist ein spezieller Datentyp für ein Datum in Python. Kannst das in der Doku im `datetime`-Modul mal nachlesen.

Re: Hallo, ein Neuling steckt in Schwierigkeiten :)

Verfasst: Sonntag 8. Juli 2012, 13:15
von webspider
Was bewirkt die dreifache Zuweisung in ``sex = sexes = sex if sex in allowed_sexes else None``?

Re: Hallo, ein Neuling steckt in Schwierigkeiten :)

Verfasst: Sonntag 8. Juli 2012, 13:19
von hoola
Hyperion hat geschrieben:
hoola hat geschrieben: Ist "Date()" jetzt ein Tupel oder eine extra Funktion von Python oder was?
Da hilft ein Blick ganz nach oben in BJs Lösung:

Code: Alles auswählen

from datetime import date as Date
Das ist ein spezieller Datentyp für ein Datum in Python. Kannst das in der Doku im `datetime`-Modul mal nachlesen.
Super vielen Dank.

Re: Hallo, ein Neuling steckt in Schwierigkeiten :)

Verfasst: Sonntag 8. Juli 2012, 13:31
von Hyperion
webspider hat geschrieben:Was bewirkt die dreifache Zuweisung in ``sex = sexes = sex if sex in allowed_sexes else None``?

BlackJack "überschreibt" damit `sex`, damit er die Vorkommen im `defaultdict` korrekt hochzählen kann. Man will da ja wissen, wieviele "Fehler" aufgetreten sind, daher muss man sich da auf den Wert `None` beziehen und nicht auf `s` oder was da sonst noch stehen könnte.

Re: Hallo, ein Neuling steckt in Schwierigkeiten :)

Verfasst: Sonntag 8. Juli 2012, 13:51
von BlackJack
@Hyperion: Ups, hier 1 b) mit korrektem Rückgabetyp. :oops:

Code: Alles auswählen

# 
# 1 b)
# 
def get_unique_characters(string):
    """
    >>> get_unique_characters('')
    []
    >>> get_unique_characters('baabcad')
    ['a', 'b', 'c', 'd']
    >>> get_unique_characters('mississippi')
    ['i', 'm', 'p', 's']
    >>> get_unique_characters('python')
    ['h', 'n', 'o', 'p', 't', 'y']
    """
    return sorted(set(string))
@webspider: Das ist nur eine zweifache Zuweisung. Da wird entweder der Wert von `sex` oder `None` an `sex` und `sexes` gebunden, je nach dem ob es ein erlaubter Wert ist oder nicht. Das da `sexes` mit drin steht hat den Grund in der IMHO komischen Aufgabenstellung dass die Funktion eine Änderung der Liste als Seiteneffekt haben soll.

Re: Hallo, ein Neuling steckt in Schwierigkeiten :)

Verfasst: Sonntag 8. Juli 2012, 13:54
von Hyperion
Ja, da sind einige Sachen eher "unpythonisch" und allgemein sonderbar. Ich denke wir sind uns auch einig, dass da vieles eben nicht mit Bordmitteln gelöst werden soll - Aufgabe 1 ist mit unserer Lösung ja eher, nunja, "trivial". Ich vermute doch mal stark, dass hier eher C-like Schleifen a la "problembär" benutzt werden sollten. Aber vielleicht irre ich mich auch :-)

Re: Hallo, ein Neuling steckt in Schwierigkeiten :)

Verfasst: Sonntag 8. Juli 2012, 14:50
von BlackJack
@Hyperion: Aufgabe 1 b) scheint mir gar keine ernsthafte Programmieraufgabe zu sein, sondern einfach nur geschenkte Punkte für Leute, die den gegebenen Quelltext von 1 a) verstanden haben und sich noch erinnern wie man Funktionen definiert. ;-)

Re: Hallo, ein Neuling steckt in Schwierigkeiten :)

Verfasst: Sonntag 8. Juli 2012, 15:12
von hoola

Code: Alles auswählen

ISBN = {
    '9783768825825':['Delius Klasing','MV - Bornholm', Date(2009, 1, 1), 54.90, 2],
    '9783768832021':['Delius Klasing','MV - Bornholm', Date(2011, 1, 1), 54.90, 13],
    '9783892255598':['Edition Maritim','Rund Rügen', Date(2008, 3, 1), 29.90, 15],
    '9783892252368':['Delius Klasing','Küstenhandbuch MV', Date(2006, 3, 1), 29.90, 3],
    '9783980672016':['Quick Maritim Medien','Törnplaner/-atlas Peene, Oder, Bodden', Date(2006, 4, 1), 25.00, 5],
    '9783768831017':['Delius Klasing','Kieler Bucht und Rund Fünen (2010)', Date(2010, 3, 1), 69.90, 17]
    }

def inventur(dictionary):
    summe = 0
    for key in dictionary.keys():
        summe += dictionary[key][3]*dictionary[key][4]
    return summe

print(inventur(ISBN))
Aufgabe 4 b) geschafft .. Dictionarys scheinen relativ einfach sein.
Geht die Lösung so?

Re: Hallo, ein Neuling steckt in Schwierigkeiten :)

Verfasst: Sonntag 8. Juli 2012, 15:53
von pillmuncher
Oder einfacher:

Code: Alles auswählen

def aggregated_value_of_inventory(stock):
    return sum(value[3] * value[4] for value in stock.values())

Re: Hallo, ein Neuling steckt in Schwierigkeiten :)

Verfasst: Sonntag 8. Juli 2012, 18:33
von Leonidas
An dieser Stelle brauchst du doch nur die Values, dann nimm doch besser gleich ``values()`` oder in Python 2.x ``itervalues()`` statt ``keys``

Code: Alles auswählen

for key in dictionary.keys():
Und wenn man das weiter optimiert kommt man bei pillmunchers Lösung raus.

Re: Hallo, ein Neuling steckt in Schwierigkeiten :)

Verfasst: Freitag 13. Juli 2012, 11:43
von hoola
Ahoi,
wollte mich nur nochmal zurückmelden und euch für eure Hilfe bedanken.
Hab ne 2,0 in der Prüfung bekommen, es hat also was gebracht! :)

Gehabt euch wohl!

Peace

Re: Hallo, ein Neuling steckt in Schwierigkeiten :)

Verfasst: Sonntag 15. Juli 2012, 14:22
von Hyperion
hoola hat geschrieben: Hab ne 2,0 in der Prüfung bekommen, es hat also was gebracht! :)
Na dann: Glückwunsch!

Konntest Du denn `enumerate` anbringen? :-D