Я пытаюсь написать функцию, которая находит как подписанные/unsigned max/min значения, заданные бит длины. Но каждый раз, когда я выполняю функции я получаю сообщение об ошибке, вот мой кодКак обрабатывать числа в списке как целые числа в функции
#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() или что-то подобное, чтобы число было обработано как целое число типа, а не список тилей, который im предполагает, что происходит?
'n' (по параметру' bitlist') - это список, и вы пытаетесь поднять 2 до мощности списка! Кажется, вы каким-то образом поменяли 'n' и' numbers'. – mshsayem