Danke schon mal für eure Hilfe.
Python Programm stürzt ab, funktionier aber in Notepa++
Guten Abend, zur aller erst, ich bin ein Programmierneuling. Mein Problem ist, dass ich mehrere Python Programme für die Uni geschrieben habe und die soweit auch bei Notepad++ so funktionieren, wie sie auch sollen. Aber wenn ich die Dateien aus dem Ordner starte und meine input eingaben "erledige" schießt das Eingabefenster und bekommen meinen print nicht.
Danke schon mal für eure Hilfe.
Danke schon mal für eure Hilfe.
Naja ich mache einen Doppelklick auf die Datei, so dass sich glaube der Python Interpreter öffnet.
x = input("Geschaetzte Stundenzahl(0-23) in Seoul: ")
y = input("Geschaetzte Minutenzahl(0-59) in Seoul: ")
z = int(x)*60 + int(y)
zD = z + 420
if zD < 1440:
zS = zD//60
zM = zD%60
if zM<10:
zM = "0"+str(zM)
t = str(zS) + ":" + str(zM)
print("Ankunftszeit in Deutschland: " + str(t))
else:
zD = zD - 1440
zS = zD//60
zM = zD%60
if zM<10:
zM = "0"+str(zM)
t = str(zS) + ":" + str(zM)
print("Ankunftszeit in Deutschland: " + str(t))
x = input("Geschaetzte Stundenzahl(0-23) in Seoul: ")
y = input("Geschaetzte Minutenzahl(0-59) in Seoul: ")
z = int(x)*60 + int(y)
zD = z + 420
if zD < 1440:
zS = zD//60
zM = zD%60
if zM<10:
zM = "0"+str(zM)
t = str(zS) + ":" + str(zM)
print("Ankunftszeit in Deutschland: " + str(t))
else:
zD = zD - 1440
zS = zD//60
zM = zD%60
if zM<10:
zM = "0"+str(zM)
t = str(zS) + ":" + str(zM)
print("Ankunftszeit in Deutschland: " + str(t))
Zuletzt geändert von Taioft am Mittwoch 30. Oktober 2019, 19:12, insgesamt 1-mal geändert.
Da kommt's dann drauf an, wer sich fuer die Dateiendung .py verantwortlich fuehlt. Und das kann ggf. Python 2 sein, aber du schreibst Python 3 - oder umgekehrt. Und dann geht das in die Hose. Versuch bitte stattdessen die Eingabeaufforderung. Ein simples meinprogramm.py sollte dem Doppelklick gleichkommen, aber hoffentlich einen Fehler zeigen (und nicht einfach verschwinden). Und "python meinprogramm.py" (ohne Anfuehrungszeichen, und ggf. vollen Pfaden zu sowohl Python als auch dem Programm) kannst du auch mal ausprobieren.
-
Fire Spike
- User
- Beiträge: 329
- Registriert: Montag 13. Mai 2019, 16:05
- Wohnort: Erde
Code: Alles auswählen
python "dateipfad"- __blackjack__
- User
- Beiträge: 14251
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
@Taioft: Bitte genau was Du eingegeben hast und genau was dann daraufhin ausgegeben wird. Nicht abtippen sondern kopieren.
Edit: Und bei dem Programm solltest Du dann dringend vernünftige Namen verwenden, diese gruselige `str()` und ``+`` Kombination durch Zeichenkettenformatierung mit der `format()`-Methode oder f-Zeichenkettenliteralen ersetzen, und das ``if``/``else`` loswerden. Oder zumindest nicht in beiden Zweigen fast das gleiche stehen haben. Wobei Du die Modulo-Operation bereits kennst. Die `divmod()`-Funktion solltest Du Dir mal anschauen. Oder gleich das `datetime`-Modul.
Edit: Und bei dem Programm solltest Du dann dringend vernünftige Namen verwenden, diese gruselige `str()` und ``+`` Kombination durch Zeichenkettenformatierung mit der `format()`-Methode oder f-Zeichenkettenliteralen ersetzen, und das ``if``/``else`` loswerden. Oder zumindest nicht in beiden Zweigen fast das gleiche stehen haben. Wobei Du die Modulo-Operation bereits kennst. Die `divmod()`-Funktion solltest Du Dir mal anschauen. Oder gleich das `datetime`-Modul.
Zuletzt geändert von __blackjack__ am Mittwoch 30. Oktober 2019, 20:00, insgesamt 1-mal geändert.
“All tribal myths are true, for a given value of 'true'.” — Terry Pratchett, The Last Continent
C:\Users\taita>Python C:\Users\taita\OneDrive\Desktop\Uni Python\Übung01\Aufgabe_1.py
C:\Users\taita\AppData\Local\Programs\Python\Python37\python.exe: can't find '__main__' module in 'C:\\Users\\taita\\OneDrive\\Desktop\\Uni'
C:\Users\taita\AppData\Local\Programs\Python\Python37\python.exe: can't find '__main__' module in 'C:\\Users\\taita\\OneDrive\\Desktop\\Uni'
- __blackjack__
- User
- Beiträge: 14251
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
@Taioft: Du gibst da mehr als einen Dateinamen an: C:\Users\taita\OneDrive\Desktop\Uni und Python\Übung01\Aufgabe_1.py. Python versucht dann das erste auszuführen und übergibt das zweite als Argument. Du brauchst entweder Anführungszeichen um den Dateinamen mit dem Leerzeichen, oder Du nennst denn "Uni Python"-Ordner so um, dass er kein Leerzeichen enthält.
Oder Du wechselst vorher in das Verzeichnis und gibst dann nur noch den Dateinamen an.
Oder Du wechselst vorher in das Verzeichnis und gibst dann nur noch den Dateinamen an.
Zuletzt geändert von __blackjack__ am Mittwoch 30. Oktober 2019, 20:18, insgesamt 1-mal geändert.
“All tribal myths are true, for a given value of 'true'.” — Terry Pratchett, The Last Continent
Nach dem ich das Leerzeichen bei dem Ordner "Uni Python" entfernt habe, klappt es. Jetzt funktioniert es auch genau so, wie es soll. Danke
Und auch danke für tippy beim programmieren an sich, da werde ich mich ran setzen.
Und auch danke für tippy beim programmieren an sich, da werde ich mich ran setzen.
- __blackjack__
- User
- Beiträge: 14251
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
Da der Zeitunterschied zwischen Seoul und Deutschland momentan 7 Stunden, also 420 Minuten beträgt, möchtest Du vielleicht neben dem `datetime`-Modul noch das externe `pytz`-Modul verwenden. Dann ist die Rechnung auch unabhängig von Faktoren wie Sommer/Winterzeit die etwas an den 420 Minuten ändern können, richtig.
“All tribal myths are true, for a given value of 'true'.” — Terry Pratchett, The Last Continent
Ein paar Tipps zu Deinem Code: erstmal steht im if-Block fast das selbe wie im else-Block. Das gemeinsame kann man einmal danach schreiben:
Jetzt ist der if-Block überflüssig und man kann einfach die if-Bedingung umdrehen.
Wenn man Zahlen ausgeben will, benutzt man String-Formatierung, dann kann man auch gleich angeben, dass man führende Nullen haben will.
Will man Teilen und Module gemeinsam ausrechnen, nimmt man divmod. Die Variablen könnten noch besser benannt sein.
Code: Alles auswählen
x = input("Geschaetzte Stundenzahl(0-23) in Seoul: ")
y = input("Geschaetzte Minutenzahl(0-59) in Seoul: ")
z = int(x)*60 + int(y)
zD = z + 420
if zD < 1440:
pass
else:
zD = zD - 1440
zS = zD//60
zM = zD%60
if zM<10:
zM = "0"+str(zM)
t = str(zS) + ":" + str(zM)
print("Ankunftszeit in Deutschland: " + str(t))Wenn man Zahlen ausgeben will, benutzt man String-Formatierung, dann kann man auch gleich angeben, dass man führende Nullen haben will.
Code: Alles auswählen
x = input("Geschaetzte Stundenzahl(0-23) in Seoul: ")
y = input("Geschaetzte Minutenzahl(0-59) in Seoul: ")
z = int(x)*60 + int(y)
zD = z + 420
if zD >= 1440:
zD = zD - 1440
zS = zD//60
zM = zD%60
print("Ankunftszeit in Deutschland: {}:{:02d}".format(zS,zM))
Code: Alles auswählen
stunden_seoul = input("Geschaetzte Stundenzahl(0-23) in Seoul: ")
minuten_seoul = input("Geschaetzte Minutenzahl(0-59) in Seoul: ")
minuten_gesamt_seoul = int(stunden_seoul)*60 + int(minuten_seoul)
minuten_gesamt_berlin = minuten_gesamt_seoul + 420
if minuten_gesamt_berlin >= 1440:
minuten_gesamt_berlin -= 1440
stunden_berlin, minuten_berlin = divmod(minuten_gesamt_berlin, 60)
print("Ankunftszeit in Deutschland: {}:{:02d}".format(stunden_berlin, minuten_berlin))Das ganze mal mit den richtigen Werkzeugen für Zeitrechnungen:
Code: Alles auswählen
from datetime import datetime as DateTime, timedelta as TimeDelta
import pytz
flugzeit = TimeDelta(hours=15)
zeitzone_berlin = pytz.timezone('Europe/Berlin')
zeitzone_seoul = pytz.timezone('Asia/Seoul')
uhrzeit_seoul = input("Startzeit in Seoul (HH:MM): ")
uhrzeit_seoul = zeitzone_seoul.localize(DateTime.strptime(uhrzeit_seoul, '%H:%M'))
uhrzeit_berlin = uhrzeit_seoul.astimezone(zeitzone_berlin) + flugzeit
print("Ankunftszeit in Deutschland: {:%H:%M} Uhr".format(uhrzeit_berlin))- __blackjack__
- User
- Beiträge: 14251
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
@Sirius3: Da fehlt noch ein `zeitzone_berlin.normalize()` auf das Ergebnis der Addition wenn ich die `pytz`-Dokumentation richtig verstanden habe.
“All tribal myths are true, for a given value of 'true'.” — Terry Pratchett, The Last Continent
