2012-03-08 3 views
1

그래서 나는 코드 (관련 코드)가 하기 위해서! 어떻게?파이썬 배가 정수 내부 "인쇄()"

+0

어떤 것을 시도 했습니까? 당신이 그것을 시도했을 때 무슨 일이 일어 났습니까? 너는 무엇을 원했는가? 왜 그렇게 생각하니? –

답변

4

int와 정수로 입력 문자열로 변환 :

valin = int(input("How much would you like to bet?: ")) 

다음 이전 진행합니다.

0

인쇄 ("이 짝수에 착륙 경우, % d의 승리"%의 VALIN * 2)

+0

다른 사람들이 지적한 것처럼'val'은'int' 대신에'str'입니다. 또한'%'는'*'보다 우선합니다. 'valin * 2'를'()'안에 넣어야합니다. – Avaris

2

사용 Python String Formatting :

print("If it lands on an even number, you win %d" % (int(valin) * 2)) 

편집 : 당신은 몇 가지 입력 작업을 수행 할 수 있습니다 확인을 통해 input에서 가져온 것이 정수인지 아니면 정수로 파싱되는지 확인한 다음 다시 묻습니다.

편집 2 : larsmans의 의견이 맞으면 입력을 int으로 구문 분석해야합니다. 위에 고정.

+3

OP는 파이썬 3을 사용하고있는 것 같습니다.'input'은 항상 파이썬 2에서'raw_input'처럼 문자열을 반환합니다. –

+1

python-3 기본 문자열 형식 지정 방법을 사용하는 것이 좋습니다.''짝수에 올랐 으면 {} ". format (int (valid) * 2)'를 얻습니다. 결국 같은 일이 일어납니다. – aquavitae

3

input()의 결과는 int이 아닌 str이되고 곱셈은 문자열에 대해 다른 의미를 갖습니다.

>>> valin = input("How much would you like to bet?: ") 
How much would you like to bet?: 20 
>>> type(valin)  # valin is a string! 
<type 'str'> 
>>> valin * 2  # multiplication will concatenate the string to itself 
'2020' 
>>> int(valin) * 2 # first convert it to an int, then multiply 
40 

당신은 larsmans이 제안 할, 그리고 곱셈 전에 int로 변환 할 필요가 예를 들면 다음과 같습니다. 다음은 몇 가지 추가 유효성 검사가 포함 된 버전입니다.

print("You have chosen to bet on the even numbers") 
while True: 
    try: 
     valin = int(input("How much would you like to bet?: ")) 
     break 
    except ValueError: 
     print("Invalid input, please enter an integer") 
print("If it lands on an even number, you win", valin*2)