Python – die neusten Beiträge

Warum Funktioniert mein Python Programm nicht, obwohl es fehlerfrei ist?

Hallo,

ich möchte so ein Wahl spiel in Python machen, wo das Programm dir Antworten vorschlägt und du sie dann eingeben musst usw. ...

Das Problem aber ist das das Programm nicht ausgeführt wird, obwohl es Fehlerfrei ist. Es kommt übrigens auch keine Fehlermeldung.

das Programm wird einfach gekillt, nachdem ich bei Laserschneider die 1 eingebe.(Die 1 steht ja auch für den Laserschneider)

Übrigens: was ep1wam1 und so weiter bedeutet, steht ganz am Anfang des Codex.

Vielen Dank im voraus!

FormulaSun12

Der Codex:

# ep = Episode
# wam = wahlmöglichkeiten
# wa = Wahl
# er = erneut
# sf = sicherheitsnachfrage


from time import sleep


episode1 = True
episode2 = False


def ep1wam1():
        ep1wam1 = int(input ("Laserschneider; Jet Pack; Untererde-Loch-graber-Maschiene; Einfach an der Tür Klopfen (1=Laserschneider)"))


# Begrüßung


name = input ("Name?") # Frägt nach Namen
print ("Wilkommen", name, ",")
print ("Beantworte die Fragen mit den angegebenen Antworten. Die angegebenen Antworten sind in Klammern")
sleep (1.0)
input ("Drücken sie eine Taste um fortzufahren!")
print ("Spiel Ladet, bitte warten...")
sleep (3.0)


# Episodenauswahl


episode = int(input ("Episodenauswahl, bitte wählen sie einen Episod! (1);(2)"))


# Wenn Episode 1 wurde ausgewählt und episode1 ist True dann:


if episode1 == True and episode == 1:
    print ("EPISODE 1")
    sleep (1.5)
    print ("20. JUNI 2022")
    sleep (1.5)
    print ("DU STEHST VOR EINEM RIESEGNEN, GUT BEWACHTEN GELDSPEICHER WO DU EINBRECHEN WILLST!")
    sleep (1.5)
    print()
    print ("WÄHLE EINEN DIESER SACHEN UND PROBIERE REINZUKOMMEN! ABER PASS AUF! DAS GEBÄUDE WIR SEHR STRENG ÜBERWACHT! VIEL GLÜCK!")
    print ()
    sleep (1.5)
    ep1wam1()



    # Wenn der Laserschneider ausgewählt wurde:
    if ep1wam1 == 1:
        print ("Die Maschine schneidet einen großen Loch in die Wand.")
        sleep(1.5)
        print ("Das hätte prima funktioniert wenn das ausgeschneidete Teil nicht auf dich draufgefallen wäre :/")
        sleep(1.5)
        print ("FAIL!")
        ep1wam1wa1er = int(input ("Erneut versuchen? (1 für ja);(2 für nein)"))


        if ep1wam1wa1er == 1:
            ep1wam1()
            
        elif ep1wam1wa1er == 2:
            ep1wam1wa1sf = int (input ("Das Spiel hört hier auf. Bist du sicher das du verlassen möchtest? Das Spiel Speichert NICHT! (1=ja);(2=nein)"))


            if ep1wam1wa1sf == 1:
                ep1wam1()
                
            elif ep1wam1wa1sf == 2:
                quit()




# Wenn Episode 2 noch nicht freigeschalten ist dann:


elif episode2 == False and episode == 2:
    print ("Diese Episode ist noch gesperrt! Schliese erst die Anderen ab!")

programmieren, Python, Python 3

Pygame: Rechteck mit Hitbox erstellen?

Angenommen, ich habe so ein Programm:

Der Spieler kann sich auf der X- und Y-Koordinate frei bewegen. Naja, nicht komplett frei. Der Spieler muss immer vollständig auf dem Screen sein. Dazu habe ich eingestellt, dass die Velocity (=Geschwindigkeit) nur die Position des Spielers verändert, wenn sich die Koordinaten des Spielers, und vorallem der player.rect (Rechteck), sich auf dem Screen befinden. Wenn er also außerhalb war, wurde die Geschwindigkeit zwar berechnet, hatte aber keine Auswirkungen auf seine Koordinaten und somit bewegte er sich einfach nicht mehr weiter. Hierbei ist wichtig: Die beiden Koordinaten (x & y) sind voneinander unabhängig! Wenn sich der Spieler also beispielsweise links am Rand befindet, kann er sich zwar nicht mehr nach links bewegen, jedoch kann er immernoch nach unten und oben gehen (X-Achse).

Soweit, so gut. Jetzt will das gleiche machen, nur für ein anderes pygame.rect (Rechteck). Hierbei ist der zentrale Unterschied, dass sich der Spieler hier nicht, wie beim Screen, nicht aus dem Bereich bewegen darf, sondern er darf hier nicht den Bereich betreten. Dafür gibt es ja die Funktion pygame.rect.colliderect(). Die sagt, ob sich die beiden pygame.rect's überschneiden, also kollidieren. Das Problem jedoch, ich komme nicht auf die Idee, wie ich die Koordinaten voneinder unabhängig machen kann.

Angenommen, mein Spieler würde sich jetzt hier befinden:

Wie soll ich im Programm klarmachen, ob der Spieler von oben oder von links kommt? Und überhaupt, woher soll ich mir das klarmachen? Das kann man ja nicht sagen, woher er gekommen ist, er könnte ja auch von rechts gekommen sein. Diese Methode, wie beim screen würde hier also nicht funktionieren.

Hat jemand eine Idee, wie ich das sonst machen könnte? Bringen mir die Velocities vielleicht etwas?

Falls jemand eine Idee hat: Ich brauche jetzt nicht unbedingte einen Code, ich bräuchte nur ein Konzept, was ich dann auch selber umsetzen kann.

Danke im Vorraus!

Bild zum Beitrag
Computer, Mathematik, Python, Pygame

Wie kann ich button Ausrichten (Python)?

Ich wollte in folgendem Code den Button abstand entfernen, damit diese nicht so eine große lücke haben.

from tkinter import *
import random
from tkinter import messagebox

root = Tk()
root.title('Lock')
root.geometry('400x780')

one_btn = Button(root, text='1', command=one_btn_press, activebackground='#3a3b3c', background='#2a2b2c', fg='#7a7b7c', height='3', width=10)
two_btn = Button(root, text='2', command=two_btn_press, activebackground='#3a3b3c', background='#2a2b2c', fg='#7a7b7c', height='3', width=10)
three_btn = Button(root, text='3', command=three_btn_press, activebackground='#3a3b3c', background='#2a2b2c', fg='#7a7b7c', height='3', width=10)
four_btn = Button(root, text='4', command=four_btn_press, activebackground='#3a3b3c', background='#2a2b2c', fg='#7a7b7c', height='3', width=10)
five_btn = Button(root, text='5', command=five_btn_press, activebackground='#3a3b3c', background='#2a2b2c', fg='#7a7b7c', height='3', width=10)
six_btn = Button(root, text='6', command=six_btn_press, activebackground='#3a3b3c', background='#2a2b2c', fg='#7a7b7c', height='3', width=10)
seven_btn = Button(root, text='7', command=seven_btn_press, activebackground='#3a3b3c', background='#2a2b2c', fg='#7a7b7c', height='3', width=10)
eight_btn = Button(root, text='8', command=eight_btn_press, activebackground='#3a3b3c', background='#2a2b2c', fg='#7a7b7c', height='3', width=10)
nine_btn = Button(root, text='9', command=nine_btn_press, activebackground='#3a3b3c', background='#2a2b2c', fg='#7a7b7c', height='3', width=10)
plus_btn = Button(root, text='+', command=plus_btn_press, activebackground='#3a3b3c', background='#2a2b2c', fg='#7a7b7c', height='3', width=10)
minus_btn = Button(root, text='-', command=minus_btn_press, activebackground='#3a3b3c', background='#2a2b2c', fg='#7a7b7c', height='3', width=10)
mult_btn = Button(root, text='*', command=mult_btn_press, activebackground='#3a3b3c', background='#2a2b2c', fg='#7a7b7c', height='3', width=10)
div_btn = Button(root, text='/', command=div_btn_press, activebackground='#3a3b3c', background='#2a2b2c', fg='#7a7b7c', height='3', width=30)
square_btn = Button(root, text='^', command=square_btn_press, activebackground='#3a3b3c', background='#2a2b2c', fg='#7a7b7c', height='3', width=30)



one_btn.grid(row=0, column=0, pady=0, padx=0)
two_btn.grid(row=0, column=1, pady=0, padx=0)
three_btn.grid(row=0, column=2, pady=0, padx=0)
four_btn.grid(row=1, column=0, pady=0, padx=0)
five_btn.grid(row=1, column=1, pady=0, padx=0)
six_btn.grid(row=1, column=2, pady=0, padx=0)
seven_btn.grid(row=2, column=0, pady=0, padx=0)
eight_btn.grid(row=2, column=1, pady=0, padx=0)
nine_btn.grid(row=2, column=2, pady=0, padx=0)
plus_btn.grid(row=0, column=3, pady=0, padx=0)
minus_btn.grid(row=1, column=3, pady=0, padx=0)
mult_btn.grid(row=2, column=3, pady=0, padx=0)
div_btn.grid(row=3, column=1, pady=0, padx=0)
square_btn.grid(row=3, column=2, pady=0, padx=0)


root.call('wm', 'attributes', '.', '-topmost', '1')
root.mainloop()
programmieren, Python

Chrome Driver | Python | Ubuntu?

Hey,

wenn ich versuche den Chromedriver mit Selenium und Python zu starten bekomme ich den Fehler:

[WDM] - ====== WebDriver manager ======
[WDM] - Current google-chrome version is 102.0.5005
[WDM] - Get LATEST chromedriver version for 102.0.5005 google-chrome
[WDM] - Driver [/root/.wdm/drivers/chromedriver/linux64/102.0.5005.61/chromedriver] found in cache
test2.py:41: DeprecationWarning: use options instead of chrome_options
  driver = webdriver.Chrome(chrome_options=options, service=Service(ChromeDriverManager().install()))
Traceback (most recent call last):
  File "test2.py", line 117, in <module>
    webscraperopen()
  File "test2.py", line 41, in webscraperopen
    driver = webdriver.Chrome(chrome_options=options, service=Service(ChromeDriverManager().install()))
  File "/usr/local/lib/python3.8/dist-packages/selenium/webdriver/chrome/webdriver.py", line 70, in __init__
    super(WebDriver, self).__init__(DesiredCapabilities.CHROME['browserName'], "goog",
  File "/usr/local/lib/python3.8/dist-packages/selenium/webdriver/chromium/webdriver.py", line 92, in __init__
    RemoteWebDriver.__init__(
  File "/usr/local/lib/python3.8/dist-packages/selenium/webdriver/remote/webdriver.py", line 275, in __init__
    self.start_session(capabilities, browser_profile)
  File "/usr/local/lib/python3.8/dist-packages/selenium/webdriver/remote/webdriver.py", line 365, in start_session
    response = self.execute(Command.NEW_SESSION, parameters)
  File "/usr/local/lib/python3.8/dist-packages/selenium/webdriver/remote/webdriver.py", line 430, in execute
    self.error_handler.check_response(response)
  File "/usr/local/lib/python3.8/dist-packages/selenium/webdriver/remote/errorhandler.py", line 247, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: unknown error: Chrome failed to start: exited abnormally.
  (unknown error: DevToolsActivePort file doesn't exist)
  (The process started from chrome location /usr/bin/google-chrome is no longer running, so ChromeDriver is assuming that Chrome has crashed.)
Linux, Python

Ist es möglich 2 Python Dateien in eine exe zu konvertieren, beim indirekten Ansprechen der Datei (kein import)?

Guten Tag erstmal,

ich versuche aktuell mir ein Python Chatbot für Twitch zu bauen. Dieser Funktioniert ansich schon ziemlich gut. Ich habe aber ein "Problem" bzw. ich hätte etwas gerne anders. Kurz zum Case. Das Projekt selbst besteht aus 2 verschiedenen Dateien. Zum einen eine script.py und eine gui.py. Wie die namen schon sagen, enthält die script.py das Script des eigentlichen Chatbots und die gui.py die dazugehörende Benutzeroberfläche. Die gui startet über ein button das script und gibt die Konsolenausgabe in einem TextEdit Feld (PyQt5) aus.

(Das wird über self.process.start("script.exe") ermöglicht)

Aktuell ist es so, dass ich das Script zuerst zu einer .exe packen muss und dann die gui diese Datei öffnet. Das fertige Programm besteht demnach aus 2 .exe Dateien. Das Problem ist dabei, dass die Zeit, bis das Script ausgeführt wird, relativ hoch ist und die eigentliche Projekt Größe. (Aktuell ca .100 mb).

Ich habe diesen Weg bisher gewählt, weil ein paar Kollegen diesen Bot auch gerne verwenden möchten. Die haben allerdings kein Python installiert, weshalb ein direktes ansprechen der script.py (z.B. self.process.start("python", "script.py"))nicht möglich ist.

Meines Wissens nach werden die notwendigen Bibliotheken für das script in diesem Fall bei der Konvertieren in eine exe nicht mitgenommen. Aktuell verwende ich für das einpacken in eine exe, Auto-py-to-exe.

Nun die Frage:

Gibt es eine Möglichkeit die script.py anzusprechen und sowohl die gui als auch die script.py in nur einer exe komplett auszuführen, ohne das Python installiert werden muss ? Hätte dazu jemand eine Idee?

Entschuldigt bitte ggf. Rechtschreibfehler und fehlende Satzzeichen :D

Computer, Technik, programmieren, Python

Python für Anfänger wie Automatischen kauf bot erstellen?

Hey Leute, ich habe angefangen mich für Schuhe zu interessieren und will ein Geschäft daraus machen bzw. ein Gewerbe anmelden, jedoch möchte ich erstmal das Programmieren mit Python beherrschen. Es gibt täglich Sneaker Releases der eine Sneaker ist Mehr und der andere weniger Wert. Die Sneaker die viel Profit erwirtschaften sind sehr schwierig zu kriegen, da die Leute mit sogenannten Sneaker Bots vorangehen. Das funktioniert in dem sie 50-100 Accounts erstellen mit verschiedenen Proxys und somit den Bot laufen lassen und ergattern sich einfach mal auf schnelle 1-6 Schuhpaare und jemand wie ich der manuell rangeht hat da keine Chane. So ein Bot kostet Schweineteuer vor paar Monaten 7000-6000€ jetzt ca. 1000-2000€ Primär geht es mir nicht um den Preis. Ich möchte jetzt lernen wie man Programmiert, weil ich schon seitdem ich ein kleiner dulli war (ca. 8 Jahre Alt) es vor hatte zu lernen und aber es nie irgendwie ernst genommen habe, aber jetzt da ich richtig motiviert bin Sneaker zu ergattern und ich nebenbei die Python Sprache lernen möchte habe ich richtig bock darauf bekommen. Hauptsächlich möchte ich lernen wie man solche Bots erstellt. Ich habe mir diesen Kurs gekauft https://www.udemy.com/course/python-bootcamp/ um einen Einblick zu kriegen bzw. um zu wissen wo überhaupt links und rechts ist, da ich noch nie in meinem Leben was mit Programmieren zu tun hatte. Im Link könnt ihr sehen, was der Kursinhalt so zu bieten hat. Ehrlichgesagt langweile ich mich bei dem Kurs, aber wenn ich das brauche um zu Botten, dann ziehe ich weiter durch. Was sagt ihr zum Kursinhalt? Ist da etwas dabei was ich unbedingt nicht verpassen sollte fürs Botten? Und was habt ihr für Tipps für mich?

Computer, programmieren, Bot, Programmiersprache, Python

Meistgelesene Beiträge zum Thema Python