基本上我做了这个程序来练习python(我是一个完整的菜鸟),我非常喜欢python,作为我学习的第一个编程语言,或者在完成一个有效的程序时我觉得非常有成就(即使它是你好世界)。所以无论如何,我使用从书本和互联网上的东西学到的技术制作了一个小程序,我有一个问题,该程序工作正常,没有问题,但最后有一个分区,其中justr出错,它不能分开任何东西,除非它是一个整数(例如,100/20 = 5,但如果我做了20/100它将等于0而不是0.2),这也会影响它,如果数字将是负数,它只是恐慌。我试过15/20,看它是否正在四舍五入,但它仍然说0.任何帮助都会很棒^ _ ^ 这是代码:
a=100
b=50
c=10
z=110
o=5
zoo=z+o+o
print "What is the value of zoo if:"
print "z=110"
print "o=5"
print "zoo=z+o+o"
import time
time.sleep(5)
print zoo,"of course!"
import time
time.sleep(1)
print "Wait..",a+b-(c)*3,"is the same as zoo except we just did it there using other code!"
import time
time.sleep(3)
print "We did it using 100+50-(10)*3 which then adds to zoo or 120!"
import time
time.sleep(3)
print "were gonna try something fun now!"
import time
time.sleep(2)
print "Please pick a number:"
number=int(raw_input())
print "and another:"
another=int(raw_input())
print "the two numbers you chose multiplied together makes",number*another
import time
time.sleep(2)
print "ok now were going to take your two numbers and divide them"
print "Your two numbers divided=",number/another
import time
time.sleep(1)
print "Ok im bored now, im going to go, have a nice day ^_^"
这是一个有问题的芒果:
What is the value of zoo if:
z=110
o=5
zoo=z+o+o
120 of course!
Wait.. 120 is the same as zoo except we just did it there using other code!
We did it using 100+50-(10)*3 which then adds to zoo or 120!
were gonna try something fun now!
Please pick a number:
15
and another:
20
the two numbers you chose multiplied together makes 300
ok now were going to take your two numbers and divide them
Your two numbers divided= 0
Ok im bored now, im going to go, have a nice day ^_^
哦,我在python 2.7.6
答案 0 :(得分:0)
在此行上方添加:
print "Your two numbers divided=",number/another
此代码:
number, another = number + .0, another + .0
您的代码无效的原因是因为您正在使用int's
。除以整数时,它们返回整数或整数。您需要通过向数字添加floats
将数字转换为.0
。这将允许您获得绝对分割结果。
答案 1 :(得分:0)
15/20 = 0
,因为结果小于1
。因此它会截断为0
。
//
用于划分整数,/
用于浮点数 - 您使用了错误的运算符,因此得到的结果不正确:
>>> 15 / 20
0
>>> 15 // 20
0.75
您可以通过从from __future__ import division
添加到您的脚本来解决此问题。当使用float
运算符并使用/
进行整数除法时,这将始终执行//
除法 - 所以只需执行您正在执行的操作,它将返回预期结果:
>>> from __future__ import division
>>> 15 / 20
0.75
我会使用import
的上述解决方案;但还有其他方法。另一种选择是使至少一个操作数为float
,例如, float(number) / another
。
>>> number = 15
>>> another = 20
>>> float(number) / another
0.75
以上是有效的,因为除法的结果取决于Python中使用的值类型。
答案 2 :(得分:0)
您可以添加
from __future__ import division
位于文件顶部。然后默认的除法策略将是您所期望的,即浮点除法。 Python 2.7默认执行整数除法。
答案 3 :(得分:0)
在Python 2.x中,两个int的/是一个int。
在Python 2.x中,一个int和一个浮点数的/是浮点数。
在Python 2.x中,两个浮点数的/是浮点数。
在Python 3.x中,两个int的/是一个浮点数。
在Python 3.x中,一个int和一个float的/ quot是浮点数。
Python 3.x中两个浮点数的/是浮点数。
Python 3.x中两个int的//商是一个int。
在Python 3.x中,一个int和一个float的//是一个整数浮点数。
Python 3.x中两个浮点数的//商是一个整数浮点数。
在Python 2.x中,你可以" from __future__ import division
"在模块的顶部,以获得3.x行为。
因此,既然您正在使用2.x,那么您可能应该" from __future__ import division
"在模块的顶部,或者在/ division之前将一个或两个int转换为float(int_var)浮动。
答案 4 :(得分:0)
添加到所有答案。在某些语言(包括python)中,除法运算符结果取决于所使用的值类型,例如:
>>> 1 / 2 # integer divided by integer
0
>>> 1.0 / 2 # float divided by integer
0.5