Python Variablen Webentwicklung?

2 Antworten

Halo Bmo,

also in Deiner Frage sehe ich ein paar Unklarheiten, die ich erstmal aus dem Weg räumen möchte, bevor ich Dir auf Deine direkte Frage antworte:

So, wie Du über Webentwicklung sprichst, meinst Du sicherlich eine Homepage, auf der auch ein Input vorkommt. Also Ein Browser. Dann befinden wir uns in der Welt von HTML, CSS und JavaScript. Hier findest Du keinen Python Code.

Ein Input wird in HTML definiert und mit JavaScript verarbeitet. Es gibt zwar Compiler für Python, die aus Python Code den für ein Frontend nötigen JavaScript Code erzeugen, aber das macht man eigentlich nur selten, wenn man JavaScript nicht gut beherrscht.

Wenn Du eine Webseite öffnest, lädst Du von einem Server die Daten für die Homepage: HTML-, CSS- und JavaScript-Dateien. Diese werden automatisch in Deinem Browser ausgeführt. Wenn Du jetzt in einen Input etwas eingibt, dann geht die Eingabe normalerweise wieder zurück an den Server, der die Webseite hostet.

DORT kann jetzt zum Beispiel Python zum Einsatz kommen. Ein Python Server also, der nach der Eingabe einen Ordner erstellt etc.

Das war jetzt das Vorspiel, damit wir hoffentlich über das gleiche sprechen. Deine Frage wäre jetzt: Wenn zwei User gleichzeitig etwas an den Server schicken, wie versteht der Server das dann?

Und da ist Dein Gedanke genau der richtige: Man verwendet "Sessions", die im Context die Information tragen, von wem diese Anfrage kam. Eine Session kann entweder durch einen Login mit Benutzername erstellt werden, oder einfach, wenn ein Client Daten vom Server holt (z.B. die Dateien für die Webseite). Jede Session, also jeder User bekommt dann eine eindeutige ID, die Session-ID.

Und dann macht man einzelne Threads für die Verarbeitungsschritte verschiedener Sessions auf.

Hoffe, das hilft Dir ein wenig,

Tailor

Danke - wusste zwar schon wie ne Webseite funktioniert aber eben nicht wie Python das handlet ;)

Danke

0

Das User/Client-Handling übernimmt der Webserver. Worum du dich kümmerst müsstest, wäre die Validation der eingegebenen Daten. Nutzer sollten nicht die Macht bekommen, direkt Ordner auf dem Server anzulegen.

Sessions werden verwendet, um Daten für eine bestimmte Zeit einem Nutzer zuordnen zu können.

Python: Ich kenne noch nicht alle Befehle für mein Programm. Könnt ihr mir helfen?

Ich programmiere aus Spaß ein Programm, welches Fragen stellt. Da ich mich noch nicht damit auskenne, kenne ich nicht alle Befehle aus Python. Wo die #'s sind, sind die Anweisungen, die ich nicht kenne, aber die so geschehen sollen, wie es da steht. Um es nochmal zu erwähnen, das ist Python (Thonny 3 oder PyCharm, ich nutze beide IDE's).

name = input("Geben sie ihren Namen ein: ")
nachname = input("Und ihr Nachname? ")
ansprechen = input("Womit soll ich sie ansprechen?: ")
alter = input("Okay, " + ansprechen + " " + nachname + ". Wie alt sind sie? ")

if int(alter) < 18:
  print("Sie sind zu jung, um unsere Software zu Nutzen!")

best = input("Sind ihre Angaben denn auch richtig, " + ansprechen + " " + name + "? ")

if str(best) == "nein":
  print("Bitte starten sie die Software neu, " + ansprechen + " " + nachname + "!")
  #Hier möchte ich, dass das Programm rebooted!
else:
  print("Schön, " + ansprechen + " " + nachname + "!")

if int(alter) < 18:
  #Hier möchte ich, dass das Programm danach endet!
else:
  print("Herzlichen Dank, dass sie unsere Software nutzen, " + ansprechen + " " + nachname + "!")
...zur Frage

Python input() Funktion funktioniert nicht?

Hallo allerseits. Ich habe mich mal ein Wenig mit Python beschäftigt und versucht "Schere Stein Papier" zu Programmieren. Im folgenden Script verliert man zwar immer (Wenn es funktionieren würde...) aber noch ist das beabsichtigt.

while "true":
    print("Rock (r), Paper (p) or Scissors (s)? (x to exit)")
    ropasc = input(":")
    if ropasc=="r":
        print("I chose Paper!")
        print("I won!")
        print()
        print()
    elif ropasc=="p":
        print("I chose Scissors")
        print("I won!")
        print()
        print()
    elif ropasc=="s":
        print("I chose Rock!")
        print("I won!")
        print()
        print()
    elif ropasc=="x":
        break
    else:
        print("I didn't understand this.")
print("Bye!")

Wenn ich es jedoch ausführe kommt zuerst der output aber sobald ich etwas eingebe und enter drücke komm folgende Fehlermeldung (ich habe r eingegeben):

Traceback (most recent call last):
  File "rps.py", line 3, in <module>
    ropasc = input(":")
  File "<string>", line 1, in <module>
NameError: name 'r' is not defined
...zur Frage

Python, Script automatisch neutstarten lassen?

Hallo, ich wollte fragen wie man ein Script bei Python automatisch neustarten kann. Ich lange gesucht hab aber nichts hilfreiches gefunden. Hier mein Script:

import random from random import randint

print ('Schere, Stein, Papier') print ('Geben sie ihre Zahl ein') print ('1 = Schere') print ('2 = Stein') print ('3 = Papier')

i = int(input()) n = randint(1,3)

if i == 1: if n == 1: print ('Unentschieden, Computer nahm Schere') if n == 2: print ('Verloren, Computer nahm Stein') if n == 3: print ('Gewonnen, Computer nahm Papier')

if i == 2: if n == 1: print ('Gewonnen, Computer nahm Schere') if n == 2: print ('Unentschieden, Computer nahm Stein') if n == 3: print ('Verloren, Computer nahm Papier')

if i == 3: if n == 1: print ('Verloren, Computer nahm Schere') if n == 2: print ('Gewonnen, Computer nahm Stein') if n == 3: print ('Unentschieden, Computer nahm Papier')

...zur Frage

Python 3: Ich habe Fragen zur Implementation des Huffman-Code. Könnt ihr mir helfen?

Hallo Leute,

ich hoffe, dass ich hiermit nicht den Shitstorm of Doom heraufbeschwöre, aber ich komme seit fünf Tagen partout nicht weiter.

1) (2 Punkte) Gegeben sei folgende Nachricht: ”Mississippi River in Ontario isn’t Mississippi River in Mississippi!”

Zeichne den zugehörigen Huffman-Baum und stelle die Codetabelle auf, wie sie es in der Vorlesung gelernt haben. Geben Sie alle erforderlichen Werte an! Wie lautet die oben angegebene Nachricht in ihrer codierten Form?

2) (2 Punkte) Schreibe ein Python 3.7.x Programm, welches die in der Aufgabe 11.1 aufgestellte Codetabelle beinhaltet. Das Programm soll Befehle encode und decode verstehen und die darauffolgende Eingabe codieren oder decodieren können. Falsche Eingaben sind mit einer Warnung in der Konsole zu quittieren. Geben jeweils 5 Testfälle für Codierung und Decodierung an. Zusätzlich gebe an, wie Deine Implementierung die Nachricht

3) (4 Punkte) Schreibe ein in Python 3.7.x Programm, welches eine Eingabe (Nachricht) über die Konsole entgegennimmt, sie analysiert und basierend darauf eine Codetabelle aufbaut.

  • Gebe diese Codetabelle in der Konsole aus.
  • Gebe die codierte Eingabe in der Konsole aus.
  • Implementiere eine Funktion zur Decodierung und gebe die decodierte Nachricht zur Verifikation in der Konsole aus.

Setze die Befehle newbase und showtable um. Ermögliche damit eine neue Eingabe und lasse für diese eine neue Codetabelle berechnen und gegebenenfalls ausgeben. Setze weiterhin Befehle encode und decode um, wie Du es in der Aufgabe 11.2 gemacht hast.

Hinweise:

Zur Lösung dieser Aufgabe dürfen built-in Sortiermethoden verwendet werden. Denke daran, dass nicht alle Datentypen geordnet sind. Dennoch können hier auch solche Datentypen sehr hilfreich sein.

Nicht lauffähige Programme werden nicht bewertet, dabei gilt als Maßstab NUR die Ausführbarkeit in der Konsole!

Aufgabe 1 hab ich noch lösen können,

Ich weiß, im Netz gibt es gefühlt 3000 Huffman Code-Tutorials, aber die sind alle auf fortgeschrittenen Niveau und erklären auch nicht, wie ich diese Code-Tabelle implementieren soll. Zur Erklärung:

  • Spalte 1: Die relative Häufigkeit, wie oft ein Zeichen allgemein im String vorkommt.
  • Spalte 2: Der Logarithmus dualis:



  • Spalte 3: Blockcode der Reihe nach aufgeschrieben
  • Spalte 4: Der Huffman Code (auf den 0 und 1 in der Grafik basierend)
  • Spalte 5: Gewichtete Codelänge (Anzahl der Bits im Huffman-Code * Relative Häufigkeit)

Wie kann ich das in Python berechnen lassen und zusätzlich noch in so einer Tabellenform ausgeben? Dazu müsste man doch alle Werte von diesem Baum manuell eintragen, oder nicht?

Kann ich bei Aufgabe 2) nicht einfach die Variablen neu definieren, z.B. "M == 000" oder ist das geschummelt?

...zur Frage

Was möchtest Du wissen?