An alle Schüler und Studenten mit Informatikproblemen

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.
Darii
User
Beiträge: 1177
Registriert: Donnerstag 29. November 2007, 17:02

Leonidas hat geschrieben:Sorry, aber da herrscht ein gewaltiger Unterschied. Während du einmal explizit sagst, dass du das Zeichen als Zahl haben willst bekommst du beim anderen mal implizit eine Zahl, ohne dass du das erwartet hast (und bei einem Schüler und Studenten ist es unerwartet).
Was ist bitteschön, an Integer.valueOf('1') implizit? Expliziter kann man wohl kaum sagen: Wandel das Zeichen in eine Zahl um. Nenn mir doch mal bitte einen Fall, wo man wirklich einen Grund hat, sich zu wundern.

Davon abgesehen ist char in Java immer eine Zahl, da wird nichts implizit von Zeichen zu Zahl konvertiert. Der eigentliche Kritikpunkt wäre also, dass chars in Java Zahlen sind. Und ich denke das der Tatsache geschuldet, dass Java überhaupt zwischen primitiven Datentypen und Objekten unterscheidet. Das ist etwas, ich wiederum als potentiell verwirrend erachte.
Zuletzt geändert von Darii am Dienstag 15. Dezember 2009, 09:43, insgesamt 1-mal geändert.
BlackJack

@Darii: Also ich finde der Grund zum Wundern liegt bei der Ausgabe/Zeichenkettendarstellung von ``char``\s. Denn da wird für '1' wird nicht "49" ausgegeben, sondern "1". Das unterscheidet ``char`` von den anderen Zahlentypen. Und Anfänger denken oft "in Zeichenketten", weil es dass ist, was sie sehen und eingeben.
Darii
User
Beiträge: 1177
Registriert: Donnerstag 29. November 2007, 17:02

Ich glaube die Diskussion führt zu nichts, wir reden offensichtlich aneinander vorbei. Aber wir sind uns glaube ich einig, das Java nicht ideal für Anfänger ist.
Benutzeravatar
Masaru
User
Beiträge: 425
Registriert: Mittwoch 4. August 2004, 22:17

:lol: endlich mal einer, der das gemerkt hat

Die Diskussion hätte längst ausgelagert werden müssen.

Lasst diesen Thread zur Ruhe kommen und inhaltlich das repräsentieren, wofür er initial erstellt wurde.
Benutzeravatar
daemonTutorials
User
Beiträge: 171
Registriert: Sonntag 6. Februar 2011, 12:06
Kontaktdaten:

Gi hat geschrieben:Also ich (auch Informatikstudi) habe noch keine Erfahrungen mit Python. Letztens habe ich jedoch gelesen, Python wäre aufgrund seiner Einfachheit vorteilhaft. Begründung war, dies würde rein wirtschaftlich gesehen in weniger Arbeitszeit zu mehr gelösten Programmierproblemen führen. (der Wortlaut war anders, aber sinngemäß)
Ich habe nun einen kurzen Blick in Python bei Wikipedia gewagt, und konnte den Code eigentlich mit meinen C bzw. Java Vorkenntnissen ganz gut verstehen. Im hinblick auf Teamwork und stetig leistungsfähigere Computer glaube ich, das die obige Aussage bezüglich der Wirtschaftlichkeit Sinn macht!

Einzig die Tatsache, dass Python ein Interpreter ist hält mich noch etwas zurück mich näher damit zu beschäftigen. Nutzen würde ich Python weitgehend fürs Internet, wie seht ihr da die Vor- bzw. Nachteile zum Beispiel im Bezug auf PHP?

Freue mich auf jeden, der mich überzeugt ;-)!

Gruß Guido
Jo, also PHP ist ja extra für das Internet entwickelt und Python wird oft als Skriptsprache nur für Internet gedacht. Aber nein, Python kann GUI's erstellen, man kann Algorithmen programmieren und sogar eigene Projekte zusammenbasteln, siehe Bottle oder PyLucid. Sehr schick ist auch Inyoka und MoinMoin.

Also ich kann beides, PHP und Python.

PHP nutze ich meist für meine Webprojekte und Python als GUI Sprache mit Tkinter. Trotz allem, Web ist auch mit Python möglich und die wunderbare Integration eines Pythonscripts das als Server läuft und ein Clientscript das die Daten sendet. Wenn das nicht mal schön ist!

Kurz gesagt:
PHP - Webentwicklung
Python - GUI, Serveranwendung, Hintergrundanwendung (auf schnellen Servern auch Webentwicklung)

PHP ist standardmäßig für das Web ausgelegt, bei Python muss man meist folgende Imports tätigen:

Code: Alles auswählen

import urllib
import socket
import sys, os
import cgi
import cgitb; cgitb.enable()
os, socket und urllib nur in Fällen die was mit dem System, Serveranbindung oder Url manipulieren zutun haben!

Ich persönlich nutze PHP am meisten. Python ist jetzt im Moment sehr gut für meine Seele!
LG Maik
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

daemonTutorials hat geschrieben: PHP ist standardmäßig für das Web ausgelegt, bei Python muss man meist folgende Imports tätigen:

Code: Alles auswählen

import urllib
import socket
import sys, os
import cgi
import cgitb; cgitb.enable()
os, socket und urllib nur in Fällen die was mit dem System, Serveranbindung oder Url manipulieren zutun haben!
Diese Aussage ist imho zu allgemein; in Python nutzt man sinnvoller Weise Frameworks für Webprojekte. Auf unterster Eben zu arbeiten ist heutzutage unüblich und vor allem idR. unnötig.
Ich persönlich nutze PHP am meisten. Python ist jetzt im Moment sehr gut für meine Seele!
Wenn Du Python beherrschst, arbeitest Du freiwillig mit PHP weiter??? :mrgreen:

SCNR
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

daemonTutorials hat geschrieben:Jo, also PHP ist ja extra für das Internet entwickelt und Python wird oft als Skriptsprache nur für Internet gedacht.
Nein. Fakt ist, dass Python und Web nur relativ spät erst populär geworden sind, eigentlich erst seitdem Ruby on Rails die Bühne betreten hat und davon inspirierte Frameworks wie TurboGears und Django entstanden sind.
daemonTutorials hat geschrieben:PHP - Webentwicklung
Python - GUI, Serveranwendung, Hintergrundanwendung (auf schnellen Servern auch Webentwicklung)
Von welchen schnellen Servern redest du? CPython ist eher schneller als PHP, vielleicht meinst du ja andersrum?
daemonTutorials hat geschrieben:PHP ist standardmäßig für das Web ausgelegt, bei Python muss man meist folgende Imports tätigen:

Code: Alles auswählen

import urllib
import socket
import sys, os
import cgi
import cgitb; cgitb.enable()
os, socket und urllib nur in Fällen die was mit dem System, Serveranbindung oder Url manipulieren zutun haben!
Quatsch. Das braucht man vielleicht wenn man CGI nutzt, aber davon wird seit, uhm, Jahren abgeraten. Und Tracebacks einfach so unkritisch zu aktivieren ist auch so eine Sache die man vielleicht besser bedenken sollte... denn man will ja schließlich nicht dass ggf. irgendwelche Passwörter in den Tracebacks auftauchen.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Benutzeravatar
daemonTutorials
User
Beiträge: 171
Registriert: Sonntag 6. Februar 2011, 12:06
Kontaktdaten:

Entschuldigung wenn ich etwas falsches gesagt haben sollte, aber so mach ich das!
Mit den Imports meine ich!

Und die anderen sachen, das nehme ich mal so mit!
LG Maik
apollo13
User
Beiträge: 827
Registriert: Samstag 5. Februar 2005, 17:53

daemonTutorials hat geschrieben: PHP ist standardmäßig für das Web ausgelegt, bei Python muss man meist folgende Imports tätigen:

Code: Alles auswählen

import urllib
import socket
import sys, os
import cgi
import cgitb; cgitb.enable()
os, socket und urllib nur in Fällen die was mit dem System, Serveranbindung oder Url manipulieren zutun haben!
Nein, niemand programmiert heutzutage noch für cgi…
Benutzeravatar
daemonTutorials
User
Beiträge: 171
Registriert: Sonntag 6. Februar 2011, 12:06
Kontaktdaten:

Also, ich benötige CGI für mein Projekt, da ich keinen Webserver mitliefern möchte, der massig Groß ist. Und in Django und andere programmiere ich grundsätzlich nicht. Ist mir zu Aufwendig und schwierig.
Außerdem mag ich es gerne, die Prozesse selber zu steuern.
LG Maik
BlackJack

@daemonTutorials: Dir wäre Bottle oder Flask im Gegensatz zu CGI zu schwierig? Ich glaube Du bist bei Python falsch. Du möchtest wohl lieber einen Webserver und CGIs in Assembler programmieren. Da hast Du dann noch mehr Kontrolle. :twisted:
Benutzeravatar
daemonTutorials
User
Beiträge: 171
Registriert: Sonntag 6. Februar 2011, 12:06
Kontaktdaten:

@BlackJack: Soweit kommt's noch! Nein, ich habe mir Bottle tatsächlich schonmal angeguckt. Aber mir fällt nichts auf, was ich nicht selber machen könnte. Etwa geht das mit Bottle so und mit CGI so! Da besteht nur minimaler Unterschied.

Bottle hat zwar einen intigrierte Webserver, aber da kann ich meinen eigenen nutzen.
Okay, ich werde mir die Features von Bottle anschauen.
LG Maik
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

daemonTutorials hat geschrieben:@BlackJack: Soweit kommt's noch! Nein, ich habe mir Bottle tatsächlich schonmal angeguckt. Aber mir fällt nichts auf, was ich nicht selber machen könnte. Etwa geht das mit Bottle so und mit CGI so! Da besteht nur minimaler Unterschied.
Jo, nur dass du mit CGI das Rad immer neu erfinden musst und mit Bottle bereits vorhandenen Code nutzen kannst. Ich verstehe nicht dein Argument, warum du selbst was implementieren willst, was andere schon besser gemacht haben (siehe die Cookie-Funktionalität, von der letztens im Forum die Rede war).
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Benutzeravatar
daemonTutorials
User
Beiträge: 171
Registriert: Sonntag 6. Februar 2011, 12:06
Kontaktdaten:

Im Moment brauche ich keine Cookes, keine DB! Das einzige ist, ich möchte die URL auslesen. Und das geht mit Bottle glaube ich nicht.

Wenn es falsch ist, belehrt mich etwas anderem!
LG Maik
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

daemonTutorials hat geschrieben:Im Moment brauche ich keine Cookes, keine DB! Das einzige ist, ich möchte die URL auslesen. Und das geht mit Bottle glaube ich nicht.
Hu? Doch klar geht das, sonst wäre Bottle auch irgendwie ziemlich witzlos.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Benutzeravatar
daemonTutorials
User
Beiträge: 171
Registriert: Sonntag 6. Februar 2011, 12:06
Kontaktdaten:

Aber wie kann ich bei so einem Beispiel die übergebenen Daten über die URL auslesen:

Code: Alles auswählen

# firlefanz

@route("/projects")
def projects():
    print("Hello World!")
In diesem Fall kann man http://localhost/test.py/projects eingeben oder kann man folgendes eingeben: http://localhost/projects.

Also? Ich kann die URL auch nativ über die Standard Library von Google auslesen, aber das macht wenig sinn, da das eine Heidenarbeit ist.

Ups! Genau das müsste ich ohne Middleware etc. machen! Verdammt!

Okay, ich schaue mir Bottle an und lade es herunter.
LG Maik
Benutzeravatar
daemonTutorials
User
Beiträge: 171
Registriert: Sonntag 6. Februar 2011, 12:06
Kontaktdaten:

Oh:

Code: Alles auswählen

from bottle import route, run

@route("/:project")
def index(project="World"):
    return "Hello %(world)s" % { "world" : project }

run(host="localhost", port=8080)
Aber wie kann man aus der URL das Projekt auslesen? Oder ist das so, wenn index() ausgeführt werden soll, dass project dann ein String enthalten muss?
Kann man das so vergleichen?:

Code: Alles auswählen

if project == "World":
    return "Hello %s" % project
Oder wie ist das?

EDIT:
"Utilities: Convenient access to form data, file uploads, cookies, headers and other HTTP related metadata."

Das bedeuted doch soviel, dass Bottle Tools für Form Data, Dateiupload, Cookies und HTTP Headers besitzt?
LG Maik
Benutzeravatar
snafu
User
Beiträge: 6731
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

@daemonTutorials: Ich denke mal, du suchst request.url, bzw was willst du denn jetzt tun: Die URL erhalten oder einen bestimmten Teil davon? Und es wäre übrigens schön, wenn du für deine Bottle-Fragen einen Thread in dem dafür vorgesehenen Forum erstellen könntest.

Achja, und nochwas: Man könnte natürlich alle möglichen Zusatzmodule selbst implementieren. Wenn es nur eine ganz spezielle Funktion ist, die man auch in einem Dreizeiler schreiben könnte, weil sie in keiner Abhängigkeit zum restlichen Code steht, dann sollte man das auch ruhig tun. Wenn da aber erheblich mehr Arbeit auf einen zukommt und man insbesondere keine Erfahrung bei dem Thema hat, dann würde ich durchaus zum Nutzen einer externen Bibliothek raten. Bottle und Flask haben sich halt zum Ziel gemacht, möglichst viel Kernfunktionalität zu bieten und dabei für "erweiterte" Anforderungen auf Middleware zu verweisen.
print ('python')
User
Beiträge: 14
Registriert: Mittwoch 18. Mai 2011, 13:40

ich bin voll und Ganz deiner Meinung
dein Beitrag ist der erste den ich lese ( ich bin neu in der python welt )
und ich bin schockiert das es Leute gibt die so was tuen :evil:
ich selber programmiere in meiner Freizeit und habe einen Heiden spaß daran.
Allerdings auch ein problem (um mehr darüber zu erfahren geht auf ALLGEMEINE FRAGEN \ PROBLEM)
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

print ('python') hat geschrieben:ich bin voll und Ganz deiner Meinung
Wessen Meinung? Mir ist der Bezug recht unklar... ;-)
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
Antworten