2013-10-20 1 views
1

주어진 비트 길이의 부호있는/부호없는 최대/최소 값을 찾는 함수를 작성하려고합니다. 하지만이 기능을 실행 할 때마다 나는 오류가 여기 내 코드입니다함수에서 정수로리스트의 숫자를 처리하는 방법

#function to find max and min number of both signed and unsigned bit values 

    def minmax (n) : 
     for numbers in n : 

      unsignedmax = (2**n)-1 
      unsignedmin = 0 
      signedmax = 2**(n-1)-1 
      signedmin = -2**(n-1) 
     print "number  ", "unsigned    ", "signed" 

    #Main 

    bitlist = [2, 3, 8, 10, 16, 20, 32] 

    minmax(bitlist) 

오류가 있는지 오류가

Traceback (most recent call last): 
    File "C:/Users/Issac94/Documents/Python Files/sanchez-hw07b.py", line 23, in <module> 
    minmax(bitlist) 
    File "C:/Users/Issac94/Documents/Python Files/sanchez-hw07b.py", line 6, in minmax 
    unsignedmax = (2**n)-1 
TypeError: unsupported operand type(s) for ** or pow(): 'int' and 'list' 
>>> 

내가 작성 완료하지만 만들기 위해 그것을 실행되지 않았습니다 없었다이다 논리 부분에 있지만 값을 찾으려고 할 때 한 오류가 발생합니다. int를 삽입하는 방법이 있을까요? 아니면 숫자가 정수형으로 취급되고 비슷한 일이 일어나고 있다고 가정하는 tyle list가 아닌가?

+1

'n' (매개 변수'bitlist'에 의해)은리스트이고리스트의 힘을 2로 올리려고합니다! 어떻게 든 'n'과 'numbers'를 바꾼 것 같습니다. – mshsayem

답변

3

변경이의 방법을 정의하고 첫 번째 줄 :

'숫자'와 'n'을 대체, 이들 두 줄
def minmax (numbers) : 
    for n in numbers : 

모든 곳에서 나타나는와 함께 '번호를'대체 'N'어디 그것 appers.

작성한대로 "numbers"변수는 처리하려는 목록의 항목을 보유하고 변수 "n"은 목록을 보유합니다. 그러나 나머지 코드는 역 전제로 작성됩니다.

관련 문제