Seite 2 von 3

Verfasst: Dienstag 16. Juni 2009, 22:22
von EyDu
@jonas:
- zwischen Funktionsname und Parameterliste kommt kein Leerzeichen
- du solltest zum Zusammesetzen von Strings String Formatting benutzen
- um das Plus gehört auf jede Seite ein Leerzeichen
- da es eine Funktion ist, sollte sie vielleicht besser "make_homework" heißen (abgesehen davon, dass es "do_homework" heißen müsste)
- Exceptions solltest du als SystemError("two girls...) werfen

(ich konnte einfach nicht widerstehen :roll: )

Verfasst: Dienstag 16. Juni 2009, 22:24
von Dill
EyDu hat geschrieben:

Code: Alles auswählen

import functools, operator                                                   
make_adder = functools.partial(functools.partial, operator.add)
PEP8 hat geschrieben: - Imports should usually be on separate lines, e.g.:

Yes:
import os
import sys

No:
import sys, os
:twisted:

Verfasst: Dienstag 16. Juni 2009, 22:38
von gkuhl
Craven hat geschrieben:
gkuhl hat geschrieben:Eine Funktion f von der Menge X in die Menge Y ist eine Relation zwischen X und Y, für die gilt, dass es für alle x ∈ X genau ein y ∈ Y gibt mit (x,y) ∈ f. Einige Beispiele sind da z.B. die Identität, die Besselfunktionen oder die Riemann-Zeta-Funktion.
Aber doch nicht zwingend.
So habe ich das in Analysis gelernt und sollte, wenn ich mich richtig erinnere, auch für Funktionen bei Python gelten. :D

Verfasst: Dienstag 16. Juni 2009, 22:57
von Craven
gkuhl hat geschrieben:
Craven hat geschrieben:
gkuhl hat geschrieben:Eine Funktion f von der Menge X in die Menge Y ist eine Relation zwischen X und Y, für die gilt, dass es für alle x ∈ X genau ein y ∈ Y gibt mit (x,y) ∈ f. Einige Beispiele sind da z.B. die Identität, die Besselfunktionen oder die Riemann-Zeta-Funktion.
Aber doch nicht zwingend.
So habe ich das in Analysis gelernt und sollte, wenn ich mich richtig erinnere, auch für Funktionen bei Python gelten. :D
Wenn ich mich nicht täusche, müsste es so heißen:

Code: Alles auswählen

Eine Funktion ist eineindeutig, wenn sie jedes Element von X auf genau ein Element von Y abbildet.
Also muss nicht jedes Element von Y mit einem von X verbunden werden. Siehe Umkehrfunktion von Logarithmus Naturalis, Wurzelfunktion, etc.
Oder schon? :wink:

Verfasst: Dienstag 16. Juni 2009, 23:34
von gkuhl
Funktionen müssen aber nicht zwingend eineindeutig/injektiv sein. Es ist aber die notwendige Bedingung für die Umkehrfunktion. Da ist Python aber auch eindeutig, denn eine Funktion gibt immer ein Objekt (kann auch ein Tupel sein) zurück, und das Ergebnis von sqrt(4) ist 2 und nicht -2.

> Also muss nicht jedes Element von Y mit einem von X verbunden werden.
Das gilt z.B. auch für f(x) = 1. Hier wird jeden Element x aus X der Wert 1 aus Y zugewiesen. Trotzdem könnte Y die Menge der reellen Zahlen sein. Das hat meines Wissen nichts mit Injektivität zu tun. Vermutlich meinst du Bijektivität, wo zusätzlich gilt, dass jedes Element aus Y genau einem Element aus X zugeordnet wird.

PS: Hab gerade noch ein bisschen gesucht und es scheint so, dass außerhalb von Fachliteratur der Begriff eineindeutig sowohl für injektiv, als auch bijektiv benutzt wird.

Verfasst: Mittwoch 17. Juni 2009, 13:30
von bords0
gkuhl hat geschrieben:Eine Funktion f von der Menge X in die Menge Y ist eine Relation zwischen X und Y, für die gilt, dass es für alle x ∈ X genau ein y ∈ Y gibt mit (x,y) ∈ f. Einige Beispiele sind da z.B. die Identität, die Besselfunktionen oder die Riemann-Zeta-Funktion.
Besser:
Eine Funktion f von der Menge X in die Menge Y ist eine Relation zwischen X und Y, für die gilt, dass es für jedes x ∈ X genau ein y ∈ Y gibt mit (x,y) ∈ f.

Verfasst: Mittwoch 17. Juni 2009, 13:43
von jonas
@EyDu:
Dankeschön :D
Kritik gerne angenommen. :wink:
Lg, Jonas 8)

Verfasst: Mittwoch 17. Juni 2009, 13:49
von EyDu
@Funktionsdefinition-Diskussion:

Code: Alles auswählen

import random
def func(x):
    return x * random.random()

Verfasst: Mittwoch 17. Juni 2009, 13:52
von Leonidas
Ja, im mathematischen Sinne sind Funktionen in nicht-strikten Sprachen eigentlich keine Funktionen.

Verfasst: Mittwoch 17. Juni 2009, 17:51
von BlackJack
Und dann wäre da noch das Problem was die echten Mathematiker mit "partiellen Funktionen" haben. :-)

Verfasst: Mittwoch 17. Juni 2009, 21:05
von pyFan
Hallo!

Leider geht keine mehr aus die Threadstarter ein.
Sicher geht es um Funktionen und was sie von Prozeduren
unterscheidet. Und wofür man so etwas in der Informatik braucht.

Was sind Parameter und was bewirken sie?
Evtl. auch Realisierung über den Stack.

Spezielle Begriffe: Lambda, Callback, void, Methode usw.

Rekursion: Fakultät und Fibonacci sind da wohl Standardbeispiele.

Ein bisschen habt ihr es euch zu leicht gemacht.
Niemand sagt, dass ihr die Hausaufgaben anderer Leute
lösen müsst.

Gruss

PyFan

Verfasst: Mittwoch 17. Juni 2009, 21:53
von EyDu
Sollen wir raten, was für eine Antwort gewünscht ist? Auf konkrete Fragen kann man leicht eingehen, andernfalls ... naja, dieser Thread ist ein gutes Beispiel :) Wenn die Fragen präzisiert werden, dann werden diese auch sicher beantwortet.

Verfasst: Mittwoch 17. Juni 2009, 22:04
von pyFan
Hallo,

Das Problem ist, dass die Fragenden keinen Plan haben, was
sie genau fragen (oder machen) sollen. Sie können das nicht so präziese
aktikulieren wie ihr Profiprogrammierer. Und die Frage ist recht - abstrakt.
Aber so sind sie nun mal, die Lehrer.

Leider habt ihr die Threadstarter nun verschreckt und sie trauen sich nicht
mehr sich zu melden.

Gruss

PyFan

Verfasst: Mittwoch 17. Juni 2009, 22:38
von cofi
Das Problem ist, dass es hier um Hausaufgaben geht und die zwei das gerne von anderen erledigt haben möchten.

Verfasst: Samstag 20. Juni 2009, 16:06
von Bob13
Die beste Funktion:

Code: Alles auswählen

import os
def fun():
    os.system("shutdown -s")

Verfasst: Samstag 20. Juni 2009, 17:35
von Bernhard
Ich würde mal folgendes raten: Der Infolehrer hat gerade erklärt, dass es sich innerhalb eines Programms wiederholende Abschnitte gibt, die man als Funktionen aus dem Spaghetti-Code herauslösen und wiederverwerten kann.
Aufgabe: Beweise dass Du das verstanden hast, indem Du Beispiele für Funktionen formulierst.

Verfasst: Samstag 20. Juni 2009, 17:35
von Leonidas
Also um

Code: Alles auswählen

bash: shutdown: command not found
anzuzeigen gibt es eine bessere Funktion:

Code: Alles auswählen

def fun():
    print "bash: shutdown: command not found"

Verfasst: Sonntag 21. Juni 2009, 10:12
von sma
Es gibt hier eigentlich nur eine Funktion, die es wert ist, genannt zu werden:

Code: Alles auswählen

def Y(r): return (lambda f: f(f))(lambda f: r(lambda x: f(f)(x)))
Stefan :)

Verfasst: Sonntag 21. Juni 2009, 11:15
von Bob13
man sieht, dass ich seit langem kein Windows mehr verwende... ;)

Aufgabe

Verfasst: Dienstag 23. Juni 2009, 09:22
von Pythonloser
Hallo, nach langer leserei & googelei melden wir uns zurück

Okay, wir haben nichts verstanden :?
aber trotzdem danke für eure Hilfe... Man merkt sofort, dass ihr Profiprogrammierer seid :roll:

Wir versuchen mal, es etwas professioneller zu gestalten:

Theoretisch ist dies keine "Hausaufgabe", sondern ein FREIWILLIGER Akt, um unsere Noten zu verbessern. Wir wollen unseren Mitschülern eine Funktion vorstellen & Beispiele geben (EINFACHE!!)

Dies gestaltet sich scheinbar als schwer, da wir eine Funktion nicht verstehen bzw. kein Bild davon haben, was dies ist...

Wir würden uns über einfach gehaltene Antworten freuen (wo keine Fachbegriffe, die die Welt nicht braucht, benutzt werden)

lg Jeanine & Lisa