2017-02-20 2 views
-1

나는이 방법을 잘못 생각하고 있지만 2 행에서 인쇄 문자열 내에서 2 개의 사용자 입력을 빼기 위해 노력하고 있습니다.문자열 내에서 2 개의 정수를 빼는 방법

BTW 이것은 사용자가 금액을 선택하고 처음으로 이동 한 다음 컴퓨터를 재생하는 님 sum 게임입니다.

def setup(startamt, userturn): 
    print(str("there are " + startamt - userturn + " balls left")) 

def main(): 
    startamt = input("How many balls do you want to start with?(15 or more) ") 
    userturn = input("How many balls will you take?(1-4) ") 
    setup(startamt, userturn) 
+0

을 작동하는 것 같다 당신은 int''에'startamt'과'userturn' 캐스팅해야 현재 그들이 str' 유형 – ZdaR

+0

@Zdar '의이다, 당신은 왜 의견에 답변을하지 않습니다 "귀하의 답변"섹션에 있습니까? –

+0

@MaksimKneller 일부 질문은 단 하나의 강사에서 설명 할 수있는 사소한 오류나 수정 사항이 있으므로 주석 섹션을 선호하고 Answers 섹션을 특별한 질문으로 보존하십시오;) – ZdaR

답변

0

두 번째 줄에는 startamt - userturn이 각각 문자열로 평가됩니다.

는 당신도 할 수있다 : 더 파이썬입니다

print("there are " + int(startamt) - int(userturn) + " balls left")) 

또는 사용하여 문자열 서식을 :

print("there are {} balls left".format(int(startamt) - int(userturn))) 
+0

'startamt'와'userturn'은 문자열입니다. – Daniel

+0

@Daniel, 감사합니다. int로 캐스팅되었습니다. –

+0

@ JoshP, 각 하나를 int()로 캐스팅 했습니까? 게시물을 편집하고 새 코드를 추가 할 수 있습니까? –

1

첫 번째 문제는 그렇게 할, input() 문자열 (str) 객체를 반환한다는 것입니다 (int()) 또는 부동 소수점 (float()) 숫자로 변환해야합니다.

당신이 3.6 이니까 리터럴 문자열 보간을 사용할 수 있습니다. 예를 들어 :

startamt = "52" 
userturn = "9" 
print(f"there are {str(int(startamt) - int(userturn))} balls left") 

위의 f 우리가 { } 내부에서 수행되는 보간을 사용하는 나타냅니다.

+0

감사합니다. 나는 실수로 거짓말을했습니다. 3.5 –

+0

@JoshP : 괜찮습니다. 다음에 기대하는이 기능이 있습니다 .-) – cdarke

0

def setup(startamt, userturn): 

    print("there are", str((int(startamt) - int(userturn))), "balls left" 

def main(): 
    startamt = input("How many balls do you want to start with?(15 or more) ") 
    userturn = input("How many balls will you take?(1-4) ") 
    setup(startamt, userturn) 


main() 
관련 문제