终端不在Mac上打印python代码

时间:2017-06-21 18:46:13

标签: 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 
python py.py #py is the name of the file 

这就是它的回报:

0

3 个答案:

答案 0 :(得分:2)

由于365i是整数,因此您正在执行integer division,它只返回结果的“整个”部分。由于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^-----------^

.row {
  display: flex;
  flex-basis: 1
  flex-flow: row;
  align-items: center;
  border: 1px solid #666;
  margin-bottom: 10px;
}

.left {
  align-items: center;
  justify-content: center;
  font-size: 50px;
  padding: 0 0 0 10px;
}

ul li {
    color: #9e9e9e;
    font-size:30px;
    font-weight:lighter;
    list-style: none;
}

答案 1 :(得分:1)

那么在你的第一次迭代中你的i = 1. 365-1 = 364. 364/365 = 0因为它是python中的整数除法。所以答案总是会给你0,除非你改变它以允许你给浮点数。

将365更改为365.0将为您提供答案

cols = ['YEAR','MONTH','DAY','Customer']
df = df.groupby(cols, as_index=False).max().reindex_axis(df.columns, axis=1)
print (df)
   YEAR  MONTH  DAY  A  B  C  D  E  F  Customer
0  2007      1    1  1  1  0  0  0  0      5000
1  2007      1    2  0  1  1  0  0  0      5000

我刚刚将365改为365.0而且我得到了

chance = chance * ((365-i)/365.0)

作为我的输出

答案 2 :(得分:0)

Python2.x中的结果是正确的。当a / b和a小于b时,结果为0.

将365修改为365.0,它会将除法结果转换为float

   chance *= ((365-i)/365.0)