x = [2**0, 2**1, 2**2, 2**3, 2**4, 2**5, 2**6, 2**7, 2**8, 2**9, 2**10]
for i in range (0,len(x)):
if x[i]>y:
print (x[i-1],y)
break
import math
z = float(input('Z = ')) # например, 10
logz = math.log(z, 2) # 10 находится между 2**3 и 2**4, так что logz будет 3 с копейками (но меньше 4)
pwr = int(logz) # отбрасываем дробную часть, получаем 3
value = 2 ** pwr # ближайшее меньшее значение - 2 ** 3