Anfänger-Frage :

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
Brockhoff
User
Beiträge: 1
Registriert: Sonntag 29. Dezember 2013, 10:34

Hallo !
Meine Tochter benötigt Python und ich der Vater bin
von einer prozeduralen Sprache " verdorben".
Ich arbeite mit einem Mac, habe die Software PsychoPy2 ( Version 1.78.01 ).
Folgendes kleine Programm will ich zum laufen bringen :

Code: Alles auswählen

# wurzel_n.py
a = float(input("Zu berechnende n.Wurzel: "))
n = float(input("Eingabe von n: "))
x = float(input("Schätzwert: "))
# float bedeutet, dass mit Kommazahlen gerechnet werden soll!
print "Iteration  Näherungswert"
print "_________________________"   
for i in range(1,6):
  x = ((n-1)*x+a/(x**(n-1)))/n
  #  Bemerkung: x**(n-1) bedeutet x hoch n-1
  print '   ',i,'    ',x
Wer kann helfen ? Bitte per email antworten.
Meine Tastatur hat kein Ziffernblock !
Danke
HB
Zuletzt geändert von Anonymous am Sonntag 29. Dezember 2013, 10:46, insgesamt 1-mal geändert.
Grund: Quelltext in Python-Code-Tags gesetzt.
BlackJack

@Brockhoff: Es wäre auch praktisch wenn Du das Problem beschreiben würdest, denn sonst muss man raten. Du bekommst doch sicher eine Fehlermeldung, oder das Programm verhält sich nicht so wie Du erwartest. Dann wäre schön wenn Du beschreiben würdest wie es sich verhält und was Du stattdessen erwartet hättest. Eventuell noch warum, damit man klären kann wo ein Verständnisproblem liegen könnte.

Wenn ich jetzt mal rate das es Python 2 sein soll, dann müsste das `input()` durch `raw_input()` ersetzt werden. Und man müsste einen Kodierungskommentar oben angeben oder die Zeichen ausserhalb von ASCII im Quelltext durch ASCII-Zeichen ersetzen. Aus dem `range()` könnte man noch ein `xrange()` machen wenn man wollte, denn die Liste die `range()` in Python 2 zurück gibt, wird ja nicht wirklich benötigt.

Sollte es dagegen unter Python 3 laufen, dann müssen aus den ``print``-Anweisungen Funktionsaufrufe werden, denn ``print`` ist zu einer Funktion geworden.

Das Du von einer prozeduralen Sprache „verdorben” bist macht bei diesem Programm ja noch nicht viel aus, das ist ja rein imperativ.
Benutzeravatar
darktrym
User
Beiträge: 784
Registriert: Freitag 24. April 2009, 09:26

Code: Alles auswählen

# -*- coding: utf-8 -*-
„gcc finds bugs in Linux, NetBSD finds bugs in gcc.“[Michael Dexter, Systems 2008]
Bitbucket, Github
Benutzeravatar
bwbg
User
Beiträge: 407
Registriert: Mittwoch 23. Januar 2008, 13:35

@darktrym: Die Vorgabe der Kodierung ist schon alleine deswegen sinnfrei, als dass Du gar nicht wissen kannst, mit welcher Kodierung die Datei abgespeichert wurde.

Richtig bleibt jedoch, dass man eine angeben sollte, wenn man Zeichen außerhalb des ASCII-Zeichensatzes verwendet (hier: Umlaute).

Mit dem "leidigen" Unicode und einhergehenden Kodierungen kann man ohnehin ganze Bücher füllen.

Kann man "prozedural verdorben" sein? OOP wird maßlos überbewertet ;).
"Du bist der Messias! Und ich muss es wissen, denn ich bin schon einigen gefolgt!"
Benutzeravatar
darktrym
User
Beiträge: 784
Registriert: Freitag 24. April 2009, 09:26

Du meinst der Ersteller hat extra für uns den Text umkodiert? Ich hoffe das kommt bei deinem Silvesterabend besser an.
„gcc finds bugs in Linux, NetBSD finds bugs in gcc.“[Michael Dexter, Systems 2008]
Bitbucket, Github
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

@darktrym: Wie kommst Du darauf, dass der OP den Text UTF-8 kodiert rumliegen hat? Also ich kann hier ohne Probleme aus einem Editor Text in CP1252 Kodierung per Copy & Paste einfügen, welcher Umlaute enthält...

Code: Alles auswählen

Hallöle!
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
BlackJack

@bwbg: Klar kann man „prozedural verdorben” sein. Das einzig Wahre™ ist funktional. Haskell über alles! :twisted:
Benutzeravatar
bwbg
User
Beiträge: 407
Registriert: Mittwoch 23. Januar 2008, 13:35

@BlackJack: LYAH liegt hier noch so vorwurfsvoll mit einem Lesezeichen (IIRC bei Monoids) rum. Irgendwann hat mein Verstand ausgesetzt. Vielleicht klappt es mit Festtagsspeck besser ;)
"Du bist der Messias! Und ich muss es wissen, denn ich bin schon einigen gefolgt!"
Antworten