python – 我的答案正在改变相同的代码

我是一个完整的python初学者,我正在努力解决这个问题:

A number is called triangular if it is the sum of the first n positive
integers for some n For example, 10 is triangular because 10 = 1+2+3+4
and 21 is triangular because 21 = 1+2+3+4+5+6. Write a Python program
to find the smallest 6-digit triangular number. Enter it as your
answer below.

我已经写了这个程序:

n = 0
trinum = 0
while len(str(trinum)) < 6:
    trinum = n*(n+1)/2
    n += 1
print(trinum)

而且它只适用于我安装在我的电脑上的python,如果我说len(str(trinum))< 8:但是它应该是len(str(trinum))< 6 :.所以我去了http://www.skulpt.org/,并在那里运行我的代码,它给了我正确的答案,而len(str(trinum))< 6:喜欢它应该是。但是它并不适用于我的电脑上安装的python 6。有人有什么想法吗?

最佳答案
简答

在Python 3中,分区总是浮点分割。所以在第一遍,你会得到像str(trinum)==’0.5’的东西。哪个不是你想要的

你正在寻找整数除法。那个操作符是//。

长回答

分区运算符在Python 2.x中更改为3.x。以前,结果的类型取决于参数。所以1/2做整数除法,但是1./2做浮点除法。

为了清理这个,一个新的运算符被介绍了://。该运算符将始终进行整数除法。

所以在Python 3.x中,这个表达式(4 * 5)/ 2等于10.0。请注意,该数字小于100,但它有4个字符。

如果相反,我们做了(4 * 5)// 2,我们将得到整数10。这将使您的条件成立。

转载注明原文:python – 我的答案正在改变相同的代码 - 代码日志