2017-09-14 7 views
0

Ich arbeite an Schulproblem, wo sie die Gleichung für die Identifizierung geben, wenn ISBN-Nummer gültig ist und geben uns zehn Eingaben (Zahlen) und einen Stop-Eingang am Ende.wie ich keine Ausgabe in Python geben

Dies war mein Code:

a=str(input()) 
b=int(input()) 
c=int(input()) 
d=int(input()) 
e=int(input()) 
f=int(input()) 
g=int(input()) 
h=int(input()) 
i=int(input()) 
j=int(input()) 
u=input() #this is where stop is usually at 
if j==int((int(a)+(2*b)+(3*c)+(4*d)+(5*e)+(6*f)+(7*g)+(8*h)+(9*i))%11): 
    print("OK") 
elif j!=int((int(a)+(2*b)+(3*c)+(4*d)+(5*e)+(6*f)+(7*g)+(8*h)+(9*i))%11): 
    print("WRONG") 
elif a=="stop": 
    print("") 

Die letzten beiden Zeilen gibt es da eine der Antworten nur eine Zeile eingegeben wurde: „stopp“. In diesem Fall sollte der Code keine Ausgabe geben, aber mein Code funktioniert nicht und da es nur eine Eingabe gibt, gibt es einen EOF in der zweiten Zeile des Codes aus. Wie kann ich das schaffen?

+0

Fixieren Sie bitte Ihre Einrückung! – Julien

+2

Versuchen Sie, die Logik mit einem Stift und Papier zu bearbeiten, und übersetzen Sie das dann in Ihren Code. Sie müssen Ihre Hausaufgaben wirklich selbst herausfinden. – wwii

+0

Warum verwenden Sie keine Eingabeaufforderungen mit der [Eingabefunktion] (https://docs.python.org/3/library/functions.html#input)? – wwii

Antwort

0

j entweder gleich int((int(a)+(2*b)+(3*c)+(4*d)+(5*e)+(6*f)+(7*g)+(8*h)+(9*i))%11) (die btw Sie nicht zweimal berechnen müssen ...), oder nicht. So wird elif a=="stop": nie erreicht. Test für a=="stop" erste Sache.

+0

Ich habe das versucht, aber es gibt immer noch eof bei Zeile 2 – Kiki

+0

FIRST thing: ' a = str (input()) 'dann test auf' a == "stop" 'sofort (dh in Zeile 2) – Julien

+0

habe es versucht und jetzt gibt es mir eof in Zeile 3 statt 2 – Kiki

Verwandte Themen