Я работаю над этой проблемой -
modify powerOfTwo() to meet the conditions below
# - accept 1 integer parameter; an exponent
# - print to the screen 2 raised to the exponent argument, example:
# --- "2 to the power of 2 is 4"
# - also return the result (for the example, you would return 4)
мой код выглядит следующим образом:
def powerOfTwo(exp):
x = int(input("please enter a number for what power of 2: "))
e = (2**x)
print("2 to the power of",x, "is: ",e,)
return (2**x)
При запуске программы код моего профессора проверяет мой код на точность, и я считаю, что он проверяет его неправильно. Программа возвращает следующее, включая мой собственный ввод "5":
please enter a number for what power of 2: 5
2 to the power of 5 is: 32
+3 function call w/ correct # of params is present
+2 return value is correct type: <class 'int'>
-- return value is incorrect
Expected: 64
Returned: 32
Ожидаемое значение 64, очевидно, неверно. Что-то не так с моим кодом или с кодом профессора, который проверяет мою проблему? (включено ниже):
q2s = 0
e = random.randint(3,11)
try:
print("\nq2-1: Checking powerOfTwo(" + str(e) + ")")
p2 = powerOfTwo(e)
print("+3 function call w/ correct # of params is present")
score += 3
q2s += 3
if isinstance(p2, int):
print("+2 return value is correct type:",type(p2))
score += 2
q2s += 2
if p2 == (2 ** e):
print("+2 return value is correct:",p2)
score += 2
q2s += 2
else:
print("-- return value is incorrect")
print("Expected: ",2 ** e)
print("Returned: ",p2)
e = random.randint(12,22)
print("\nq2-2: Checking powerOfTwo(" + str(e) + ")")
p2 = powerOfTwo(e)
if p2 == (2**e):
print("+2 return value is correct:",p2)
score += 2
q2s += 2
else:
print("-- return value is incorrect")
print("Expected: ",2**e)
print("Returned: ",p2)
else:
print("-- return value is incorrect type:",type(p2))
except:
print("**Something is wrong with powerOfTwo()")
printErr()