funktionsvereinbarung aufrufen

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.
Antworten
n00by
User
Beiträge: 10
Registriert: Freitag 4. Juni 2010, 15:00

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
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

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.
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
Darii
User
Beiträge: 1177
Registriert: Donnerstag 29. November 2007, 17:02

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

Identisch allerdings nur, wenn kein Komma vorkommt. Das sollte erwähnt sein ...
Benutzeravatar
numerix
User
Beiträge: 2696
Registriert: Montag 11. Juni 2007, 15:09

@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>).
n00by
User
Beiträge: 10
Registriert: Freitag 4. Juni 2010, 15:00

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
Benutzeravatar
/me
User
Beiträge: 3555
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

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?
Dingels
User
Beiträge: 61
Registriert: Dienstag 23. Dezember 2008, 19:50

@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.
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

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 :)
Dingels
User
Beiträge: 61
Registriert: Dienstag 23. Dezember 2008, 19:50

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.
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.
n00by
User
Beiträge: 10
Registriert: Freitag 4. Juni 2010, 15:00

hi leute habs jetzt gecheckt... lag an den versionen..
dank an euch =)
Antworten