Python Funktion zurücksetzen, aber wie?

Guten Tag,

ich habe ein kleines Programm mit Python 3.8 geschrieben.

Ich möchte das ein Button betätigt wird und es fünf Sekunden dauert, bis eine Rückmeldung kommt. Die Rückmeldung soll zwei Sekunden lang angezeigt werden, dann soll wieder die Aufforderung "Grundstellungsfahrt nach Störung" erscheinen. Schaut das unten verlinkte Video und dessen Beschreibung an. Hierzu würde ich gerne die Funktion wieder auf Start zurücksetzen.

Schaut das unten verlinkte Video und dessen Beschreibung an. Hier findet ihr ein übersichtliches Schema.

Hier einmal der Code:

from tkinter import
import time

#Funktionen:

#Button 1 startet Grundstellungsfahrt
def button_action():
  anweisung_label.config(text="Grundstellungsfahrt startet, in 5 Sekunden beendet!", background='light blue')
  time.sleep(5)
  anweisung_label.config(text="Grundstellungsfahrt beendet! Automatikbetrieb möglich!", background='light blue')
  time.sleep(2)

#Fenster erstellen
fenster = Tk()
#Fenstertitel
fenster.title("Dübelmaschine")
#Fenstergröße
fenster.geometry("320x240")
#Hintergrundfarbe
fenster.configure(background='light blue')
#Labels/Buttons erstellen:
change_button = Button(fenster, text="Grundstellung", command=button_action)
anweisung_label = Label(fenster, text="Nach Störung Grundstellung anfahren", background='light blue')
#Komponenten Fenster hinzufügen
anweisung_label.pack()
change_button.pack()
#Ereignissschleife warten auf Benutzereingabe
fenster.mainloop()

Ich habe noch ein Video aufgenommen, so wie der derzeitige Zustand ist:

https://www.youtube.com/watch?v=RHkkW_bM-P0

Computer, Technik, programmieren, Python, Technologie, Raspberry, tkinter
1 Antwort
Python "Schere-Stein-Papier" funktioniert nicht, man kann nicht gewinnen?

Ich bin nun so gut wie fertig mit meinem Spiel, aber man kann nicht gewinnen. Ich habe es auch mit "try except" versucht, aber hat auch nicht funktioniert. Woran kann das liegen?

Ich weiß man könnte das schöner/besser machen, aber mir passt es so:)

Code:

#Imports
import time
import random
random.seed()

	#Headline
print("*************************"); time.sleep(0.5)
print("*Schere - Stein - Papier*"); time.sleep(0.5)
print("*************************"); time.sleep(0.5)

true = True

while true == True:

	print("-------------------------------") #Abtrennung
	#Input
	print("Wählen Sie eine Figur: ")
	spielerwahl = input().lower()
	print("")
	
	computerwahl = ["schere", "stein", "papier"]

	#Output
	print("Sie wählten: ", spielerwahl)
	pc = random.choice(computerwahl)
	print("Der Computer wählte: ", pc)
	print("")

	#Verzweigungen
	if spielerwahl == pc:
		print("*********Unentschieden!*********")
		
	#Spielerwahl = Schere
	elif spielerwahl == "schere" or spielerwahl == "Schere" and pc == "stein":
		print("***********Verloren!***********")
		
	elif spielerwahl == "schere" or spielerwahl == "Schere" and pc == "papier":
		print("***********Gewonnen!***********")
	
	#Spielerwahl = Stein
	elif spielerwahl == "stein" or spielerwahl == "Stein" and pc == "papier":
		print("***********Verloren!***********")
		
	elif spielerwahl == "stein" or spielerwahl == "Stein" and pc == "schere":
		print("***********Gewonnen!***********")
	
	#Spielerwahl = Papier
	elif spielerwahl == "papier" or spielerwahl == "Papier" and pc == "schere":
		print("***********Verloren!***********")
		
	elif spielerwahl == "papier" or spielerwahl == "Papier" and pc == "stein":
		print("***********Gewonnen!***********")
		
	#Fehlermeldung
	else:
		print("*********Nicht möglich!*********")
	
	#Abtrennung
	print("-------------------------------")
	print(""); time.sleep(1.5)
Computer, Technik, IT, programmieren, Informatik, Python, Technologie, Spiele und Gaming
3 Antworten
Python in Java übersetzen?

Hi, ich brauche eure Hilfe.

Ich habe für den Informatikunterricht in der Schule mit Python ein Programm geschrieben welches die Kosten für Pakete ausrechnet.

Nun ist mir eingefallen, dass ich in der Schule keine Python-Konsole habe, um das Programm laufen zu lassen. Wir haben nur BlueJ, was meines Wissens eine Java-Konsole ist.

Ich kann leider kein Java und im Internet bin ich auch auf keine Übersetzer gestoßen.

Hat jemand eine Idee wie ich diesen Code:

import time

a = "Die Kosten für ihr Paket betragen "
print("Paketrechner startet...")
time.sleep(1)
print("Paketrechner erfolgreich gestartet!")
print(" \n Bitte gib folgende Parameter an und bestätige mit Enter: \n")
print("Länge des Pakets:")
l = int(input())

if l > 175:
  print("Dein Paket ist zu lang!")

print("Breite des Pakets in cm:")
b = int(input())
print("Höhe des Pakets in cm:")
h = int(input())
p = 2(h + b) + l

if p > 300:
  print("Das Packmaß ist ungültig. Es beträgt über 300cm oder es wurden falsche Werte eingegeben. Die Länge des Pakets darf maximal 170 cm betragen!")

if p <= 300:
  print("Das Packmaß beträgt")
  print(p)
  print("Geben Sie nun das Gewicht des Pakets in kg ein.")
  g = int(input())

  if g > 31:
    print("Dieser Paketrechner unterstützt nur Pakete bis zu einem Gewicht von 31 kg!")
  elif g < 2:
    print(a + "3,80€")
  elif g < 4:
    print(a + "5,10€")
  elif g < 6:
    print(a + "6,30€")
  elif g < 8:
    print(a + "6,80€")
  elif g < 10:
    print(a + "7,40€")
  elif g < 12:
    print(a + "7,80€")
  elif g < 14:
    print(a + "8,50€")
  elif g < 18:
    print(a + "10,30€")
  elif g < 25:
    print(a + "13,30€")
  elif g < 31:
    print(a + "14,00")

in Java bekomme?

PC, Computer, programmieren, Java, Programmierung, BlueJ, Eclipse, Informatik, Python, übersetzen
2 Antworten
Schlange nimmt 2. Maus nicht mehr?

Ich habe eine 1 Jahr alte männliche Königsphyton. Er ist ca 85cm lang und wiegt um die 450-480g
Ich füttere ihm große Mäuse (siehe Bild) Jede Woche (Dienstags) 2 von Ihnen in Wasser langsam aufgetaut und auf angenehme Temperatur gewärmt. Am Anfang hat er als er noch kleinere bekommen hat, immer nur eine gekriegt. Jetzt wo er die größeren kriegt hab ich ihm auch immer nur eine gegeben, hab aber nach einiger Zeit gemerkt das er dann nach 2-3 tagen wieder im Terra auf Tour war um nach Futter zu suchen und unruhig war. Hab dann angefangen ihm immer 2 von den großen zu geben und er hat sie immer alle beide super genommen... bis auf die letzten 3 Male. Er nimmt die erste ganz normal von der Pinzette aber die 2 muss ich ihm liegen lassen. Habe ihm heute wieder 2 gegeben (da er auch die letzten 2 Tage wieder total unruhig war) und er hat die erste wieder sehr schön genommen und hatte starkes Interesse, aber die zweite musste ich ihm wieder liegen lassen (er frisst sie dann auch).
Mache ich was falsch? Wenn ich ihm nur eine geben hat er so schnell wieder Hunger und wenn ich ihm 2 gebe nimmt er die 2. nicht. Sind evtl die Mäuse die falschen für ihn? Evtl kleinere, größere, andere Marke? Ohne bereits irgendwelche Vitamine?
(Ich bin Anfänger und er ist meine erste Schlange also falls ihr tips und Kritik habt bitte immer gerne her damit(und ich hoffe ihr versteht die Frage und mein Problem))  
Danke :)

Tiere, Reptilien, Schlangen, Amphibien, Python, Terrarium, Königsphyton
2 Antworten
YouTube Counter für eigene Webseite mit Python - Abonnenten werden nicht aktualisiert. Wie kann ich das Problem lösen?

Ich würde gern einen YouTube-Counter für mein Programm machen und wollte da halt die Top 10 YouTuber einbauen. Aber es soll, wenn ein YouTube-Kanal den anderen überholt automatisch geändert werden und dafür dachte ich, das ich das was du mir geschickt hast, verwenden kann. Aber so wie es aussieht, funktioniert es trotzdem nicht.

import tkinter as tk
import urllib.request
import json
import time

YouTube API KEY


YouTube Daten gesamt auslesen

pew_data = urllib.requesthttps://www.googleapis.com/youtube/v3/channels?part=statistics&forUsername=PewDiePie&key=key=key=key=" + key).read()
budentv_data = urllib.request.urlopen( https://www.googleapis.com/youtube/v3/channels?part=statistics&forUsername=Node&key=key=" + key).read()
tseries_data = urllib.request.urlopenhttps://www.googleapis.com/youtube/v3/channels?part=statistics&forUsername=TSeries&key=key=" + key).read()

Subscriber/Subs auslesen

pew_subs = json.loads(pew_data)["items"][0]["statistics"]["subscriberCount"]
budentv_subs = json.loads(budentv_data)["items"][0]["statistics"]["subscriberCount"]
tseries_subs = json.loads(tseries_data)["items"][0]["statistics"]["subscriberCount"]

Sortierung

def custom_sort(t):
  return t[1] L = [("PewDiePie", pew_subs), ("BudenTv", budentv_subs), ("T-Series", tseries_subs)]

L.sort(key=lambda x: x[1], reverse=True)

Tkinter Gui
root = tk.Tk()
frame = tk.Frame(root)
frame.pack()
  
Ergebnis wird angezeigt,

labels = {}


Mein Problem ist, dass, wenn ich das Skript laufen lasse, die Abonnenten nicht aktualisiert werden. Wie kann ich das Problem lösen?

Computer, programmieren, Python
1 Antwort
Wie in Python eine Variable mit einer unbestimmten Wortanzahl in mehrere Variablen teilen?

Hallo,

ich programmiere zur Zeit zum Spaß einen sprachgesteuerten Assistenten in Python, aber komme nicht mehr weiter. Jedes Wort, welches ich sage, soll in eine verschiedene Variable gespeichert werden, um später durch bestimmte Keywords, wie z.B. "suche" "in Google", etwas in Google zu suchen.

Nun ist meine Frage, wie ich das machen soll, wenn ich nicht weiß, wie viele Wörter ich sage? Wenn ich es z.B. mit:

antwort1, antwort2, antwort3 = antwort.split()

mache, bekomme ich eine Fehlermeldung, wenn ich weniger als drei Wörter sage. Gibt es da eine andere Methode?

Mein Code:

import speech_recognition as sr
import sys
import webbrowser
import pyttsx3
engine = pyttsx3.init()

url = http://www.google.com/m//"
url1 = "http://www.youtube.com/"

if len(sys.argv) == 1:
  r = sr.Recognizer() with sr.Microphone() as source:
    print ("Höre zu...")
    audio = r.listen(source)
else:
  r = sr.Recognizer() with sr.AudioFile(sys.argv[1]) as source:
    audio = r.listen(source)

print (r.recognize_google(audio, language="de_DE"))
antwort = r.recognize_google(audio, language="de_DE")
antwort1, antwort2, antwort3, antwort4 = antwort.split()

if antwort == "öffne google":
  webbrowser.open_new_tab(url)
elif antwort == "öffne youtube":
  webbrowser.open_new_tab(url1)

if antwort1 or antwort2 or antwort3 or antwort4 =https://www.google.com/search?q=h?q=com/search?q=h?q=arch?q=h?q=com/search?q=h?q=" + antwort2 + "&oq=" + antwort2 + "&aqs=chrome..69i57j0l5.872j0j8&sourceid=chrome&ie=UTF-8"
  webbrowser.open_new_tab(urlNEW)
  engine.say(antwort2 + " wird in Google gesucht");
  engine.runAndWait();

LG Philipp

programmieren, Programmierung, Assistent, Programmiersprache, Python, Sprachassistent
1 Antwort
Python Code Falsch?

Moin Moin, ich lerne aktuell Python und stoße auf folgendes Problem:

class Train():
  def __init__(self,route, position):
    self.route = route
    self.position = position
  def show_station(self):
    print(self.route[self.position])
  def move(self):
    if self.position == 4:
      print("Endstation! Alle aussteigen!")
    else:
      self.position = self.position +1
  def move_back(self):
    if self.position == 0:
      print("Alles einsteigen")
    else:
      self.position = self.position - 1

orientexpress = Train(["Paris", "Budapest", "Bukarest", "Istanbul"], 0)
print(orientexpress.position)
orientexpress.show_station()
orientexpress.move()
print(orientexpress.position)
orientexpress.show_station()
orientexpress.move()
orientexpress.show_station()
orientexpress.move()
orientexpress.show_station()
orientexpress.move()
orientexpress.move()
orientexpress.move_back()
print(orientexpress.position)
orientexpress.show_station()

Ich möchte, dass er mir das ausgibt:

Paris
Budapest
Bukarest
Istanbul
Endstation! Alle aussteigen!
Bukarest

Aber ich bekomme das:

0
Paris
1
Budapest
Bukarest
Istanbul
Endstation! Alle aussteigen!
3
Istanbul

Ich denke, der Code ist eigentlich relativ simpel, falls es aber noch einer weiteren Erläuterung braucht:

Es ist so, dass das Attribut self.position den richtigen wert von 3 annimmt, wenn die move_back-Funktion aufgerufen wird, aber die show:station-Funktion gibt trotzdem Istanbul aus. Ich weiß wirklich nicht, warum, die print-Befehle habe ich eingefügt, um den Wert zu überprüfen.

Computer, programmieren, Python, Python3
2 Antworten
Tkinter: Scrollbar erstellen?

Hey Leute!

Ich habe nochmal eine Frage.

Ich wollte für mein erstes GUI-Projekt in Python eine Scrollbar hinzufügen. Ich habe allerdings keine Ahnung, wie ich dass angehen soll.

Es wäre nett, wenn mir das jemand mithilfe meines Codes erklären könnte. 😄

PS.: Ja, ich weiß, dass der Code ziemlich chaotisch und optimierungsfähig mit OOP ist. 😄

from tkinter import *
from functools import partial
import time

quests = [
  'first_quest',
  'second_quest',
  'third_quest',
  'fourth_quest'] fenster = Tk() fenster.title('MiniQuiz')
fenster.geometry('800x800')

def welcome(sentence, quest1, quest2, quest3, quest4, result1, result2, result3, result4):
  question = Label(text=sentence)
  question.config(width=1000)
  question.pack()
  a_button = Button(text=quest1, command=result1)
  a_button.pack()
  b_button = Button(text=quest2, command=result2)
  b_button.pack()
  c_button = Button(text=quest3, command=result3)
  c_button.pack()
  d_button = Button(text=quest4, command=result4)
  d_button.pack()

def counter(punkte):
  punktestand = Label(text='Punktestand:')
  counter = Label(fenster, text= punkte)
  punktestand.pack(anchor=NW)
  counter.pack(anchor=NW)

def right():
  output = Label(text='Richtig!')
  output.pack()

  for item in quests:
    if 'first_quest' == quests[0]:
      quests.remove('first_quest')
      second_quest()
    elif 'third_quest' == quests[0]:
      quests.remove('third_quest')
      fourth_quest()

def right2():
  output = Label(text='Richtig!')
  output.pack()

  for item in quests:
    if 'second_quest' == quests[0]:
      quests.remove('second_quest')
      third_quest()

def final():
  output = Label(text= 'Du hast gewonnen! Herzlichen Glückwunsch')
  output.pack()

def wrong():
  output = Label(text='Leider falsch! Viel Glück beim nächsten mal!')
  output.pack()

def first_quest():
  welcome('BEVOR es losgeht: Du kannst einen Button nur einmal anklicken, machst du es öfters kannst du nicht mehr gewinnen! ' 'Frage 1: Was ist das größte Bundesland Deutschlands?', 'Bayern', 'Niedersachsen', 'Nordrhein Westfahlen', 'Schleswig-Holstein', right, wrong, wrong, wrong)

def second_quest():
  counter(1)
  welcome('Frage 2: Welches Atom ist am einfachsten Aufgebaut?', 'Sauerstoff', 'Wasserstoff', 'Helium', 'Atome unterscheiden sich nicht vom Aufbau', wrong, right2, wrong, wrong)

def third_quest():
  counter(2)
  welcome('Frage 3: Welches Spiel hat 1993 die Videospielszene mit seiner 3D Optik "Revolutioniert" ?', 'Counter Strike Source', 'Half-Life', 'Doom', 'Call Of Duty', wrong, wrong, right, wrong)

def fourth_quest():
  counter(3)
  welcome('Frage 4: Wie hieß das erste Lebewesen, welches von Menschen in die Umlaufbahn der Erde befördert wurde?', 'Bruno', 'Neil Armstrong', 'Michael Collins', 'Laika', wrong, wrong, wrong, final)

def winner():
  counter(4)
  output = Label(fenser, text='Du hast gewonnen!')
  output.pack()

first_quest()
fenster.mainloop()
Computer, Internet, programmieren, Python, Scrollbar, tkinter python
2 Antworten
Python 3 nach subprocess fehler script weiter ausführen?

Hallo alle zusammen, ich habe vor kurzem ein kleines Python Programm geschrieben. Alles funktioniert, aber da gibt es ein kleines ungelöstes Problem. Ich benutze im Code "subprocess.check_call()". Das funktioniert auch alles ganz gut, nur manchmal, wenn das aufgerufene Programm einen Fehler zurückmeldet, wird das ganze Programm beendet. Ich gebe mal ein Beispiel:

import subprocess
print("Die Temperatur beträgt:")
subprocess.check_call("wetter.exe -standort Hamburg", shell=True)
print("Die dritte Zeile..")

Wenn das Programm wetter.exe jetzt zum Beispiel an einer fehlenden Internet Verbindung, oder was auch immer scheitert, wird "Die dritte Zeile" nicht ausgegeben. Sondern es erscheint irgendwas mit:

Traceback (most recent call last):
  File "C:\Users\chris\Desktop\error.py", line 5, in <module>
    raise RuntimeError("command '{}' return with error (code {}): {}".format(e.cmd, e.returncode, e.output))
RuntimeError: command 'xyz' return with error (code X)

Es währe jedoch schön, wenn das Programm trotzdem weiterlaufen würde. Meinetwegen kann der Fehler ja auch angezeigt werden, aber das Programm soll allgemein weiterlaufen. ABER: Es soll erst auf eine Antwort warten, und dann weitermachen (also wie es normalerweise so ist). Es ist ok, wenn der output am ende so aussieht:

Die Temperatur beträgt:
Traceback (most recent call last):
  File "C:\Users\chris\Desktop\error.py", line 5, in <module>
    raise RuntimeError("command '{}' return with error (code {}): {}".format(e.cmd, e.returncode, e.output))
RuntimeError: command 'xyz' return with error (code X)
Die dritte Zeile..

Danke im Voraus. Und ich wollte mich eigentlich kurz fassen.. Tut mir leid.

Computer, Technik, programmieren, Error, Python, Technologie, Python3, py3, Subprocess, Spiele und Gaming
2 Antworten

Meistgelesene Fragen zum Thema Python

Wie kann ich mit Python Elemente einer Liste addieren und diese in eine neue schreiben?

2 Antworten

Python Elemente einer Liste zählen

1 Antwort

Python Taschenrechner

6 Antworten

Exponenten in Python 3.2

2 Antworten

Python | Ziffern einer Zahl zerlegen

1 Antwort

Was bedeutet % in python

4 Antworten

Python Wurzel ziehen

4 Antworten

Float nur mit 2 Nachkommastellen ausgeben?

1 Antwort

Grundlegende unterschiede zwischen Python und Java?

4 Antworten

Python - Neue und gute Antworten