2017-11-11 26 views
-2

für meine Informatics-Klassenzuordnung bittet es mich, eine try/except/else-Struktur zu meinem Code zu verwenden. Ich weiß, dass ich auf dieser Website keine anfängerfreundlichen Fragen stellen sollte, aber ich brauche Hilfe.Wie würde ich die try/except/else-Struktur in meinen Code implementieren?

Überprüfen Sie, ob der Benutzer eine gültige Monatsnummer und eine gültige Tagesnummer eingibt. Verwenden Sie eine try/except/else-Struktur, um sicherzustellen, dass numerische Daten eingegeben werden. Ich habe bereits die if/else-Struktur.

Ich weiß nicht, ob die Frage mich fragt, einen von ihnen oder alle drei zu verwenden.

Hier ist mein Code und es funktioniert völlig in Ordnung:

#This program will ask the user to enter a month (in numeric form), a day in a months, and a two-digit year. 
#Then, determine if this is a special date(the month times the day equals the year). 

#Special Date 
print("The date February 10, 2020 is special because when it is written in the following format the month times the day equals the year : 2/10/20.") 

#Inputs 
userInputMonth = int(input("Please enter a valid month:")) 
userInputDay = int(input("Please enter a valid day:")) 
userInputYear = int(input("Please enter a valid two-digit-year:")) 

print() 

if userInputMonth * userInputDay == userInputYear: 
    print("The date you provided " + str(userInputMonth) + "/" + str(userInputDay) + "/" + \ 
     str(userInputYear) + " is the special date.") 
else: 
    print("The date you provided " + str(userInputMonth) + "/" + str(userInputDay) + "/" + \ 
      str(userInputYear) + " is not the special date.") 

Ich muss nur herausfinden, wie die try/except/else Struktur zu implementieren, um sicherzustellen, dass seine ein gültiger Monat gültig Tag, gültig Jahr.

Antwort

-1

Sind Sie auf der Suche nach so etwas?

try: 
    userInputMonth = int(input("Please enter a valid month:")) 
except ValueError as error: 
    print(str(error)) 
else: 
    print("Input month is ok!") 

Wenn userInputMonth falsch ist, wird das obige Programm eine Fehlermeldung aus.


bearbeiten: Sie können Ihre code wie folgt ändern.

while True: 
    try: 
     userInputMonth = int(input("Please enter a valid month:")) 
    except ValueError: 
     print("Please provide a numeric input for the month. Try again...") 
    else: 
     break 

while True: 
    try: 
     userInputDay = int(input("Please enter a valid day:")) 
    except ValueError: 
     print("Please provide a numeric input for the day:") 
    else: 
     break 

while True: 
    try: 
     userInputYear = int(input("Please enter a valid two-digit-year:")) 
    except ValueError: 
     print("Please provide a numeric input for the year.") 
    else: 
     break 
+0

Pastebin.com/MbWsjD7H Hier ist, was ich jetzt habe, Wenn ich einen ungültigen Wert eingeben, geht es einfach zur nächsten Zeile und ignoriert sie. Ich versuche es zu wiederholen, bis es korrekt ist. – GeForce

+0

@GeForce siehe den Bearbeitungsbereich meiner Antwort. –

0

Try-except-else in Python arbeitet grob auf diese Weise:

try: 
    dosomething() # see if something works 
except: 
    handleproblem() # it didn't work, handle the problem 
else: 
    domorestuff() # it did work, proceed normally 

In Ihrem Fall eine Benutzereingabe Parsen wäre etwas, das, wie wenn die Benutzereingabe war abc anstelle einer Zahl fehlschlagen könnte.

try: 
    usermonth = int(input("Please enter a valid month:")) 
except ValueError as e: 
    print("Please provide a numeric input next time") 
else: 
    print("Thank you, month is ok") 

Das ist keine vollständige Lösung für Ihr Problem, aber sollten Sie beginnen.

Verwenden Sie eine try/except/else-Struktur, um sicherzustellen, dass numerische Daten eingegeben werden.

Meine Interpretation dieser Anforderung Ihrer Aufgabe ist es, dass Sie genau das, was ich oben, verwenden try-except-else sicher den Benutzer in der Tat haben numerische Daten eingeben, um strich tun sollen.

Um einen litte Hinweis zu geben, wie die Struktur Ihres endgültigen Programms aussehen könnte:

in Variablen
  1. Collect Benutzereingaben (noch nicht analysieren, es ist einfach zu speichern)
  2. versuchen zu analysieren Druck gespeicherten Benutzereingabe mit int()
  3. if (2) nicht mit der Ausnahme Ion, eine scolding Nachricht
  4. anderes drucken Sie nette Nachricht, tun Sie dieses spezielle Datum Sache, usw.
Verwandte Themen