终端未在Mac上打印python代码
为了好玩,我在我的桌面上制作了一个小python文件,我很沮丧地发现没有返回任何值。以下是文件中的代码:终端未在Mac上打印python代码,python,macos,Python,Macos,为了好玩,我在我的桌面上制作了一个小python文件,我很沮丧地发现没有返回任何值。以下是文件中的代码: def calc(x): chance =1 for i in range(1,x+1): chance *= ((365-i)/365) return chance * 100 string = calc(23) print string 以下是我在终端中输入的内容: cd Desktop #where file is located pyth
def calc(x):
chance =1
for i in range(1,x+1):
chance *= ((365-i)/365)
return chance * 100
string = calc(23)
print string
以下是我在终端中输入的内容:
cd Desktop #where file is located
python py.py #py is the name of the file
这就是它的回报:
0
在第一次迭代中,i=1。365-1 = 364. 364/365=0,因为它在python中是整数除法。所以答案总是给你0,除非你改变它,让你给一个浮动 将365更改为365.0将为您提供答案
chance = chance * ((365-i)/365.0)
我刚把365改成了365.0,我得到了
2.23071139399e-05
作为我的输出那么,在第一次迭代中,i=1。365-1 = 364. 364/365=0,因为它在python中是整数除法。所以答案总是给你0,除非你改变它,让你给一个浮动 将365更改为365.0将为您提供答案
chance = chance * ((365-i)/365.0)
我刚把365改成了365.0,我得到了
2.23071139399e-05
作为我的输出,因为
365
和i
是整数,所以您正在执行,它只返回结果的“全部”部分。由于365-i
小于365
,因此将二者相除将导致0
,连续将其乘以任何值仍将得到0
您可以使用365.0
符号来使用浮点除法,这将最终生成结果46.1655742085
:
chance = 1
for i in range(1,x+1):
chance *= ((365.0 - i) / 365.0)
# Floating point^-----------^
由于
365
和i
是整数,因此您正在执行,这只返回结果的“全部”部分。由于365-i
小于365
,因此将二者相除将导致0
,连续将其乘以任何值仍将得到0
您可以使用365.0
符号来使用浮点除法,这将最终生成结果46.1655742085
:
chance = 1
for i in range(1,x+1):
chance *= ((365.0 - i) / 365.0)
# Floating point^-----------^
Python2.x中的结果是正确的。当a/b和a小于b时,结果为0 将365修改为365.0它会将除法结果转换为浮点
chance *= ((365-i)/365.0)
Python2.x中的结果是正确的。当a/b和a小于b时,结果为0 将365修改为365.0它会将除法结果转换为浮点
chance *= ((365-i)/365.0)
这应该行得通。确保在shell中使用
cat py.py
执行正确的文件?还有,“结束我?”没那么可怕吧?这应该行得通。确保在shell中使用cat py.py
执行正确的文件?还有,“结束我?”没那么可怕吧?哦,当然。谢谢,这就是问题所在。很高兴我能帮上忙。谢谢,这就是问题所在。很高兴我能帮上忙