2016-03-23 15 views
-3

CHALLENGE übersetzt diesen Entwurf in einen Arbeits Python-Code !: setzePseudocode-Design wird

definieren inputInt (Prompt) Funktion:

Endlos-Schleife: Prompt für die Eingabe mit prompten Parametern

Versuchen: Convert Reaktion auf int und Speicher in numResponse Variable

auf Valueerror Ausnahme: drucken 'ungültige Eingabe' Fehlermeldung

zur nächsten Iteration der Schleife Weiter Return numResponse Variable (beendet die Funktion/Pausen-Schleife)

ich mit diesem bin nicht sehr gut, aber mit ive zu kommen:

gibt es viele Fehler in weiß, aber im sehr verwirrt

numResponse = [] 
    def inputInt(int): 
    while False: 
     value = input('Enter a value') 
    if value == int: 
      try:    
       numResponse.append(int(value)) 
    except ValueError: 
      print('Invalid input - Try again.') 

    print('Value is', value) 
    value = inputInt('Enter an int: ') 
+1

wir sind hier, um Ihnen zu helfen, Ihre Probleme zu lösen. Eher dann vollständig antworten. Bitte lassen Sie uns wissen, welche Bemühungen Sie unternommen haben, dies zu tun. – Nehal

+0

def inputInt (int): während value == False value = int (Eingabe) ('Geben Sie einen Wert ein') – kurt

+0

versuchen Sie dies in Frage anstelle von – Nehal

Antwort

0

Zunächst einmal gehe ich davon aus das die Vertiefung für Ihr Code:

numResponse = [] 
def inputInt(int): 
    while False: 
     value = input('Enter a value') 
     if value == int: 
      try:    
       numResponse.append(int(value)) 
      except ValueError: 
       print('Invalid input - Try again.') 

print('Value is', value) 
value = inputInt('Enter an int: ') 

Erste Sache ist, dass die letzten beiden Zeilen aus der Ordnung sind, den Wert nicht existiert, bis er von inputInt zurückgegeben:

value = inputInt('Enter an int: ') 
print('Value is', value) 

aber value wird immer None da Ihre Funktion nie zurückkehren wird nichts. (Es gibt standardmäßig keine zurück.) Vielleicht möchten Sie zu einem bestimmten Zeitpunkt return value, aber warum verwenden Sie eine Liste? Wenn Sie nur die Eingabe wollen, wenn es gültig ist, versuchen Sie einfach zu return int(value):

  try:    
       return int(value) 
      except ValueError: 
       print('Invalid input - Try again.') 

aber dies wird immer noch Probleme geben, weil Sie den int builtin Namen mit dem Parameter abgedeckt haben bis:

def test(int): 
    return int("5") 
test('Enter an int: ') 
------------------------------------------ 
Traceback (most recent call last): 
    File "<pyshell#22>", line 1, in <module> 
    test('Enter an int: ') 
    File "<pyshell#21>", line 2, in test 
    return int("5") 
TypeError: 'str' object is not callable 

Wenn es soll die Aufforderung als Argument nehmen, dann sollten Sie es prompt stattdessen nennen, aber versuchen Sie es mit eingebauten Namen zu vermeiden allgemein:

def inputInt(prompt): 
    while False: #this line is still wrong 
     value = input('Enter a value') #you don't use the prompt 
     if value == int: #this line is still wrong 
      try:    
       return int(value) 
      except ValueError: 
       print('Invalid input - Try again.') 

value = inputInt('Enter an int: ') 
print('Value is', value) 

aber while False: ist nicht sehr nützlich; eine while-Schleife wird Schleife, bis die Bedingung False also, wenn es es falsch beginnt dann nie etwas tut:

while False: 
    raise RuntimeError("EMPTY LOOP WAS EXECUTED?!?!?!") 

dies den Fehler nie erhöhen würde, weil die Bedingung nicht wahr sein kann, in Ihrer Funktion, da die return Aussage wird die Funktion verlassen, wird es auch aus der Schleife ausbrechen, so dass Sie einfach while True: verwenden können und es wird nur aufhören, wenn ... nein, es würde tatsächlich nicht aufhören wegen if value == int:.

if value == int: wird nie wieder als wahr ausgewertet werden, da value immer ein str Objekt sein wird und wird nie jedoch auf den int Typ Objekt, gleich sein, da Sie bereits try ing zu konvertieren gibt es keine Notwendigkeit, dass der Eingang zu überprüfen ist, wird gelingen:

def inputInt(prompt): 
    while True: 
     #value = input(prompt) #probably want this instead? 
     value = input('Enter a value') 
     try:    
      return int(value) 
     except ValueError: 
      print('Invalid input - Try again.') 

value = inputInt('Enter an int: ') 
print('Value is', value) 
+0

zurückgeben Auch, weil Sie neu sind, nehmen Sie sich bitte die Zeit, um zu lernen, [wie die Annahme einer Antwort funktioniert] (http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer -work) und [Welche Themen kann ich hier fragen?] (http://stackoverflow.com/help/on-topic) –

+0

Danke das macht jetzt Sinn! :) – kurt

Verwandte Themen