Seite 1 von 1

funktionsvereinbarung aufrufen

Verfasst: Freitag 4. Juni 2010, 15:18
von n00by
hi leute

habe heut meinen ersten tag in python
habe folgende funktionsvereinbarung geschrieben

Code: Alles auswählen

Python 2.6.5 (r265:79096, Mar 19 2010, 21:48:26) [MSC v.1500 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.

  
IDLE 2.6.5      
>>> def funktion():
	print("Wie ist dein Name")
	name = raw_input()
	print("Hallo ")+ name

	
>>> funktion()

wenn ich nun mit funktion() aufrufe funktioniert es wie gewollt...
wenn ich es speichere und wieder aufrufe, kann ich die funktion nicht mehr nutzen
wenn ich auf Run Module geh kommt immer folgende fehlermeldung
"Syntax Error" "There's an error in your program:invalid syntax"
und ein verweis auf die versionsnummer von python

meine frage nun hängt das mit der versionsnummer zusammen oder irgendwelche einstellung von python.
kann mir auch vorstellen das noch bestimmer code fehlt, bin noch neuling.

meine zweite frage:
mir sind syntax unterschiede aufgefallen zb
print ("Hallo")
print 'hallo'

gibt es da in python noch mehr unterschiede? ist das wichtig? vlt Links?

mfg

Re: funktionsvereinbarung aufrufen

Verfasst: Freitag 4. Juni 2010, 15:28
von Hyperion
n00by hat geschrieben: habe folgende funktionsvereinbarung geschrieben
Wie kommst Du auf diesen komischen Namen für den Begriff "Funktion"? Wieso "Vereinbarung"?
wenn ich nun mit funktion() aufrufe funktioniert es wie gewollt...
wenn ich es speichere und wieder aufrufe, kann ich die funktion nicht mehr nutzen
wenn ich auf Run Module geh kommt immer folgende fehlermeldung
"Syntax Error" "There's an error in your program:invalid syntax"
und ein verweis auf die versionsnummer von python
Interessant wäre die exkate Fehlermeldung, die vor allem nämlich auf eine Zeile verweisen sollte.

In Python ab Verion 3.0 ist print eine Funktion. Davor war es ein Statement, weswegen man keine "()" brauchte. Du müßtest also schon wissen, welche Version Du benutzt.

Re: funktionsvereinbarung aufrufen

Verfasst: Freitag 4. Juni 2010, 15:29
von Darii
n00by hat geschrieben:wenn ich nun mit funktion() aufrufe funktioniert es wie gewollt...
wenn ich es speichere und wieder aufrufe, kann ich die funktion nicht mehr nutzen
Ja weil IDLE alles Speichert, was du da im Fenster siehst. Das ist aber kein gültiges Python. Mach ein neues leeres Fenster auf und speicher nicht die Shell.
meine zweite frage:
mir sind syntax unterschiede aufgefallen zb
print ("Hallo")
print 'hallo'
Ist unter Python 2.x identisch.

Re: funktionsvereinbarung aufrufen

Verfasst: Freitag 4. Juni 2010, 16:25
von lunar
Identisch allerdings nur, wenn kein Komma vorkommt. Das sollte erwähnt sein ...

Re: funktionsvereinbarung aufrufen

Verfasst: Freitag 4. Juni 2010, 16:47
von numerix
@n00by: In all dem, was jetzt schon dazu geschrieben wurde, geht der für dich momentan entscheidene Hinweis praktisch unter. Also, um es noch einmal auf den Punkt zu bringen:
Du musst den Quelltext zunächst in einem Editor eingeben (den bringt IDLE mit: [File]-[New Window]), dann speichern und dann den gespeicherten Quelltext ausführen (in IDLE mit <F5>).

Re: funktionsvereinbarung aufrufen

Verfasst: Sonntag 6. Juni 2010, 00:26
von n00by
hi

ja numerix darauf wollte ich hinaus...

musste es mit print ("") schreiben bei ' ' kam immer ein syntax fehler
aber ansonsten geht es jetzt...
danke =)

habe gerade angefangen mit python hab als erstes tutorial A Byte of Python deutsch
wenn ich
name = raw_input()
eingebe, kommt NameError: name 'raw_input' is not defined
habe es genauso so abgetippt wie beschrieben.
kann es sein das manche tuts im web veraltet sind? irgendwie verwirrt mich das ganze

Re: funktionsvereinbarung aufrufen

Verfasst: Sonntag 6. Juni 2010, 01:43
von /me
n00by hat geschrieben:wenn ich

Code: Alles auswählen

name = raw_input()
eingebe, kommt NameError: name 'raw_input' is not defined
Bist du sicher, dass du nicht Python 3.x verwendest? Und falls ja, woher weißt du das?

Re: funktionsvereinbarung aufrufen

Verfasst: Sonntag 6. Juni 2010, 12:03
von Dingels
@n00by:
In deinem ersten Beitrag gibst Du an, Python 2.6.5 zu verwenden. Wenn 'raw_input' bei dir aber nicht definiert ist und 'print' als Statement auch nicht funktioniert, dann scheint es so, als ob Du in Wirklichkeit Python 3.* verwendest.

Im übrigen würde ich dir raten, zuallererst mal das entsprechende Tutorial in der Doku für deine Python-Version durchzuarbeiten.
2.6 -> http://docs.python.org/tutorial/index.html
3.1 -> http://docs.python.org/py3k/tutorial/index.html
Du solltest dich nicht scheuen, englische Tutorials zu lesen. Die deutschen Tutorials und Übersetzungen sind aus meiner Sicht nicht der Kracher. Es empfiehlt sich übrigens derzeit noch, Version 2.6 zu nutzen, weil immer noch nicht genug Bibliotheken für Version 3.* umgeschrieben worden sind.

Re: funktionsvereinbarung aufrufen

Verfasst: Sonntag 6. Juni 2010, 12:15
von cofi
Dingels hat geschrieben:Du solltest dich nicht scheuen, englische Tutorials zu lesen. Die deutschen Tutorials und Übersetzungen sind aus meiner Sicht nicht der Kracher.
Das ueberles ich mal :) Fuer 3.1 (und 3.2) gibt es eine deutsche Uebersetzung des offiziellen Tutorials. Wenn du das doch kanntest und konkrete Kritik hast bin ich natuerlich offen :)

Re: funktionsvereinbarung aufrufen

Verfasst: Sonntag 6. Juni 2010, 12:24
von Dingels
cofi hat geschrieben:
Dingels hat geschrieben:Du solltest dich nicht scheuen, englische Tutorials zu lesen. Die deutschen Tutorials und Übersetzungen sind aus meiner Sicht nicht der Kracher.
Das ueberles ich mal :) Fuer 3.1 (und 3.2) gibt es eine deutsche Uebersetzung des offiziellen Tutorials. Wenn du das doch kanntest und konkrete Kritik hast bin ich natuerlich offen :)
Na da schau her, nein, ich wusste nicht, dass es eine Übersetzung des offiziellen Tutorials gibt. Danke für dein Hinweis. :) Aber bei Übersetzungen bin ich grundsätzlich immer etwas skeptisch, ob auch wirklich alles korrekt übersetzt worden ist. Um Missverständnisse zu vermeiden, bleibe ich immer lieber direkt beim Original.

Re: funktionsvereinbarung aufrufen

Verfasst: Sonntag 6. Juni 2010, 12:47
von BlackJack
@Dingels: Falls das nicht so klar rübergekommen sein sollte: Die Übersetzung ist von cofi und da haben mittlerweile einige regelmässige Nutzer dieses Forums drübergelesen.

Re: funktionsvereinbarung aufrufen

Verfasst: Sonntag 6. Juni 2010, 21:23
von n00by
hi leute habs jetzt gecheckt... lag an den versionen..
dank an euch =)