Я создал скрипт, который должен выполнять простое математическое жонглирование путем переупорядочения чисел.Пожалуйста, разрешите python «magic» в этом вычислении
Что он должен делать:
x = 777.0
y = 5
calc = x/y # 155.4
... псевдокод:
Rearrange numbers (last digit + first) = 555.
Difference from 777 and 555 = 222
Add 222 to 555 = 777
В основном он должен воссоздать оригинальную переменную, не делая реальный расчет, но вместо того, чтобы просто переставить номера и добавить.
Из-за конструкции сценария я ожидал, что он будет работать только с 4-значными цифрами, такими как 333.3. Оказывается, он (кажется) работает также с цифрами вроде 2543.6452, которые кажутся невозможными хотя бы из моего (не академического) взгляда. Может кто-нибудь, пожалуйста, скажите мне, что здесь происходит? Правильно ли работает код или я создал что-то, чего я просто не понимаю? Это похоже на иллюзию. : D
x = 5.0
y = 7345.3297
z= y/x
print "Initial Value = " + str(y)
print "Calculate:"
print str(y) + "/" + str(x)
print z # 177.6
print
a = int(str(z)[0])
print "First Number = " + str(a)
print
b = int(str(z)[1])
c = int(str(z)[2])
print "In between = " + str(b) + str(c)
d = int(str(z)[-1]) # treat z as string, take first string after . from z and format it back to int
print "Last Number = " + str(d)
print
print "Rearrange Numbers"
res = str(a+d) +str(b) +str(c)
to_int = int(res)
dif = y - to_int
add = to_int + dif
print "number = " + str(add)
Итак, код делает именно то, что вы хотите, чтобы он сделал ..... и ... вы хотите знать, как он это делает? – DavidG
Не совсем. Он делает слишком много и слишком хорошо. : D Если, например, я беру номер 23135.34674 и выполняю вычисления, он должен иметь совсем другой результат, чем 23135.34674. Код предназначен (по крайней мере, я ожидал, что) работает только с «симметричными» значениями, такими как 666.666 или 888.8. Мне кажется, что мой код принимает только переменную y и печатает ее как результат. : D Значение «in_between» учитывает только вторую и третью цифры. Невозможно получить правильный результат с большими числами. – Horst23