2015-01-28 3 views
0

오류 메시지가 표시되는 이유 및 해결 방법을 설명 할 수 있습니까?입력이있는 메르 센

def mersenne(n): 
    return (2**n-1) 

print('Enter a number') 
numberOne = input() 
mersenne(numberOne) 
print('Enter a number') 
numberTwo = input() 
mersenne(numberTwo) 
print('Enter a number') 
numberThree = input() 
mersenne(numberThree) 
print('Your Mersenne numbers are ' + numberOne + ', ' + numberTwo + ', ' + numberThree + '.') 

내가 IDLE에서 얻을 오류 메시지는 다음과 같이 입력을 캐스팅 할 필요가

TypeError: unsupported operand type(s) for ** or pow(): 'int' and 'str' 
+0

미리보기 기능을 사용하고 코드 블록을 사용하여 다음 번에 코드의 형식을 지정하십시오. – Evert

+0

'input()'은 문자열을 반환합니다. 'pow' ('**') 함수에 적용하기 전에 그것을 정수로 변환하거나 float으로 변환해야합니다. 예를 들어,'numberOne = int (input())'. – Evert

+0

'input()'함수에 (질의) 문자열을 넣을 수도 있습니다. '입력 ("숫자 입력 :")'. – Evert

답변

0

입니다 : int(input("Enter a number: "))

+0

그래도 작동하지만 최종 결과에는 수식이 사용되지 않습니다. 한 번 더 도움을 청 할까? – holaprofesor

0

그럼 당신은 정수로 문자열에서 입력을 변환해야합니다 . 다음 중 한 가지 방법으로이 작업을 수행 할 수 있습니다

numberOne = int(input()) 
자동으로 입력에게 정수를 만드는

또는 : 함수를 실행하는 동안 숫자로 입력을 전환

return (2**int(n)-1) 

합니다. float()과/또는 raw_input()도 사용할 수 있습니다. 입력을 정수 또는 실수로 변경하는 것을 잊지 마십시오! 이게 너를 돕기를 바란다. 함수 return 라인에 int을 사용하지 않고

, 당신은 사용할 수 있습니다 또한

def mersenne(n): 
    return (2**n-1) 

print('Enter a number') 
numberOne = int(input()) 
mersenneOne = mersenne(numberOne) 
print('Enter a number') 
numberTwo = int(input()) 
mersenneTwo = mersenne(numberTwo) 
print('Enter a number') 
numberThree = int(input()) 
mersenneThree = mersenne(numberThree) 
print('Your Mersenne numbers are ', mersenneOne, ', ', mersenneTwo, ', ', mersenneThree, '.', sep='') 

당신은 :

print('Your Mersenne numbers are ' + int(numberOne) + ', ' + int(numberTwo) + ', ' + int(numberThree) + '.') 
+0

그래, 그 작품은 최종 결과에 수식이 사용되지 않습니다. 한 번 더 도움을 청 할까? – holaprofesor

+0

물론! 질문이 뭐야? –

0

변수에 mersenne에서 int에 입력 캐스트 및 반환 값을 할당 정수를 문자열에 연결하여 +으로 연결할 수 없습니다. (이것은 JavaScript가 아닙니다). 위의 코드는 print 기능을 가진 Python 3에서 작동합니다. Python 2를 사용하고 있다면 항상 str으로 다시 변환 할 수 있습니다.

print('Your Mersenne numbers are ' + str(mersenneOne) + ', ' + str(mersenneTwo) + ', ' + str(mersenneThree) + '.') 
관련 문제