请解决python" magic"在此计算中

时间:2016-04-01 14:40:26

标签: python

我创建了一个脚本,它应该通过重新排列数字来执行简单的数学运算。

应该做什么:

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

基本上它应该重新创建原始变量而不进行实际计算,而只是重新排列数字并添加。

由于脚本的设计我希望它只能使用像333.3这样的4位数字。事实证明它(似乎)也适用于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)

1 个答案:

答案 0 :(得分:1)

我们在这里做一些替代。底线是:

dif = y - to_int
add = to_int + dif

这可以写成一行:

add = y - to_int + to_int

或:

add = y

所以你做了所有这些“魔术”,然后完全忽略它来打印你开始的东西。您可以在此之上放置任何内容,所有这些代码最后都是打印y: - )