ПИТОН

Напишите программу, которая вводит два вещественных числа, x и y , и вычисляет значение x y .

Входные данные
Входная строка содержит два вещественных числа, разделённых пробелом.

Выходные данные

Нужно вывести одно значение – x y – с тремя знаками в дробной части.

Примеры
входные данные
1.23 4.56
выходные данные
2.570

Ответы

Ответ дал: lozromanik
1

Відповідь:

numbers = list(map(float,input().split()))

numbers = str(numbers[0]**numbers[1]).split('.')

print(numbers[0]+"."+numbers[1][:3])


styles23: Спасибоооо!
mathgenius: У этого способа есть минус, ибо происходит округление. Например: print('{0:.3f}'.format(2.5678)) дает на выходе: 2.568, а нас такое не устраивает.
lozromanik: Благодарю, сделал ещё лучше
mathgenius: Да, так тоже можно.
Ответ дал: mathgenius
0

#Первый способ.

value1 = input().split()

value2 = float(value1[0])**float(value1[1])  

print(str(value2)[:len(str(int(value2))) + 4])

#Второй способ

from functools import reduce

value = str(int(reduce(pow, map(float,input().split()))*1000))

print(value[:-3] + '.' + value[-3:])


mathgenius: красивый способ, но есть недостаток с отображение ''лишнего нуля''. Хотя на самом деле в каком-то смысле это даже достоинство.
mathgenius: А вот теперь придумал как можно избежать исчезновение нуля. Просто нереальный способ. Да, да у меня совсем поехала кукуха и мне нечего делать...
mathgenius: print(str((int(pow(*map(float,input().split()))*10000) +1)/10000)[:-1])
lozromanik: Ля, ну такое уже, нечитабельно немного, но да - 1 строка хэхэхэх
mathgenius: Кстати там не совсем верно. Ну да ладно. Для читабельности можно такой способ (отредактировал как раз свою ошибку)
mathgenius: value1 = map(float, input().split())

value2 = (int(pow(*value1)*1000)*10 + 1)/10000

print(str(value2)[:-1])
mathgenius: Вот еще что придумал. Уже совсем для "мажоров"
mathgenius: value1 = map(float, input().split())

value2 = int(pow(*value1)*1000)

print(f'{value2 // 1000}.{value2 % 1000}')
mathgenius: Но можно оптимально сократить применив мою самую первую идею:
mathgenius: value = pow(*map(float, input().split()))
print(str(value)[:4 + len(str(int(value)))])
Вас заинтересует