numerator, denominator = [float(s) for s in raw_input().strip().split("/")]
print 2 ** (numerator/denominator)
I полоса пробела от ввода, разделить его на части, а затем преобразовать части в числа с помощью списка .
Это не удастся, если ввод не в дробной форме. Проверять и вести себя соответственно ...
line = raw_input().strip()
if "/" in line:
numerator, denominator = [float(s) for s in line.split("/")]
exponent = numerator/denominator
else:
exponent = float(line)
print 2 ** exponent
Если вы пытались использовать 2 ** (1/2)
и это не помогло, это потому, что 1
и 2
являются целыми числами, поэтому Python 2 использует целочисленное деление и игнорирует дробную часть. Вы можете исправить это, набрав 1.0/2
в вашем скрипте или input()
.