2017-02-15 1 views
-1

저는 파이썬으로 시작했고 간단한 리키 계산기를 만들려고합니다.사용자 입력을 인수로 사용하려고하는 EOF 오류

def ricky_adds(x,y): 
    num1 = x 
    num2 = y 
    if num1 >= 10: 
     num1 = input("No. I said A number, not multiple numbers dummy. Try again :") 
    if num1 < 0: 
     num1 = input("Wow you're dumb, I said a number, not some imaginary shit. Try again :") 
    num2 = y 
    if num2 >= 10: 
     num2 = input("No. I said A number, not multiple numbers dummy. Try again :") 
    if num2 < 0: 
     num2 = input("Wow you're dumb, I said a number, not some imaginary shit. Try again :") 

    result = num1 + num2 
    return result 

ricky_adds(input("Gimmie a number. :"), input("Smokes, let's go. Another number, c'mon. :")) 

하지만 오류를 수정하는 방법을 알아낼 수 없습니다이 오류

Gimmie a number. :Smokes, let's go. Another number, c'mon. : 
Traceback (most recent call last): 
    File "..\Playground\", line 17, in <module> 
    ricky_adds(input("Gimmie a number. :"), input("Smokes, let's go. Another number, c'mon. :")) 
EOFError: EOF when reading a line 

를 받고. 인수에 대한 사용자 입력을 얻기 위해 "input()"을 사용할 수 있습니까?

+0

숫자를 입력하거나 'Enter'만 누르십니까? 'input()'이 아무것도받지 못하면'EOFError'가 나타납니다. – zwer

+0

코드가 잘 작동합니다 ('ricky_adds'에서 반환 된 값으로 아무것도하지 않는다는 사실을 제외하고). –

+0

여기에서 코드를 사용하고 [5] [Enter] [3] [Enter] 키를 입력하면 오류가 발생하지 않습니다. –

답변

0

좋아, 지금까지 모든 사람의 도움에 감사드립니다. 이것은 내가 지금 무엇을 가지고 :

def main(): 
    x = int(input("Gimmie a number. :")) 
    y = int(input("Smokes, let's go. Another number, c'mon. :")) 

    print("Here's the answer. See, Julian? I out smarted your stupid books and did that arthritis in my head and got " + str(ricky_adds(x,y))) 

def ricky_adds(x,y): 
    num1 = x 
    num2 = y 
    lessthanzeroerror = "Wow you're dumb, I said a number, not some imaginary shit. Try again :" 
    greaterthantenerror = "No. I said A number, not multiple numbers dummy. Try again :" 
    if num1 >= 10: 
     num1 = int(input(greaterthantenerror + ":")) 
    elif num1 < 0: 
     num1 = int(input(lessthanzeroerror + ":")) 
    if num2 >= 10: 
     num2 = int(input(greaterthantenerror + ":")) 
    elif num2 < 0: 
     num2 = int(input(lessthanzeroerror + ":")) 

    result = num1 + num2 
    return result 

main() 

이전 답 : 그래서 내가 Textwrangler을 사용하는 방법을 알아 냈어.

ricky_adds(input("Gimmie a number. :"), input("Smokes, let's go. Another number, c'mon. :")) 

에 :

는 또한 변경

print(ricky_adds(input("Gimmie a number. :"), input("Smokes, let's go. Another number, c'mon. :"))) 

그것은했다. 안내 질문에 모두 감사드립니다.

0

당신은 논리가 틀림 없다고 생각할 필요가 있습니다. 숫자는 10을 초과 할 수없고 여러 숫자가 될 수 없습니다. 달성하려는 대상에 nested if statements을 사용하십시오. 다음은

def ricky_adds(x,y): 
    num1 = x 
    num2 = y 

    if num1 >= 10: 
     num1 = input("No. I said A number, not multiple numbers dummy. Try again :") # what happens after this statement? what is the purpse of this input. You need to nest the statements to continue in a logical manner. 
    if num1 < 0: 
     num1 = input("Wow you're dumb, I said a number, not some imaginary shit. Try again :") 

    if num2 >= 10: 
     num2 = input("No. I said A number, not multiple numbers dummy. Try again :") 
    if num2 < 0: 
     num2 = input("Wow you're dumb, I said a number, not some imaginary shit. Try again :") 

if (num1>= 10 or num2 >= 10): 
    print("you have enter a number greater then 10") 
    data = input("try again") 
    if...... 
elif (num1 < 0 or num2 < 0): 
    print("you number is less than 0") 

    return (num1 + num2) 

는 또한, 정수 입력을 원하는 코드를 응축하는 방법입니다, 당신은 할 수 없습니다 것을. 그것을 달성하는 데 도움이되는 주요 기능을 만드십시오.

def main(): 
    x = int(input("Gimmie a number. :")) 
    y = int(input("Smokes, let's go. Another number, c'mon. :")) 

ricky_adds(x,y) 
+0

문자열은 캐릭터가 생각하고 말하는 방식을 모방 한 것으로되어 있습니다. 그 캐릭터는 Trailer Park Boys의 Ricky입니다. –

+0

"복수 숫자"는 Ricky가 여러 자리 숫자를 인식했음을 나타냅니다. 응축과 둥지에 대한 제안에 감사드립니다. 나는 그것을 시험해 보겠습니다. –

+0

확인.여기에 제가 지금 가지고있는 코드가 있습니다. 나는 아직도 내가 가진 if 진술을 응축시키는 가장 좋은 방법을 알아 내지 못했지만, 거기에 있었던 것을 정리했다. 희망이 있겠지만 그것은 주현으로 이어질 것이다. –