数字输出有时有 .0

代码:


n = 18

total = 0

while n <=35:

 total += (n/2)

 print(total)

 n += 2 

输出:`


9.0

19.0

30.0

42.0

55.0

69.0

84.0

100.0

117.0`

第二个代码:


n = 40

total = 2

while n >=25:

 total += n

 print(total)

 n -= 3 `

输出:


42

79

113

144

172

197

问题:为什么第一个输出在整数后面有 .0 而第二个输出没有,尽管 2 个代码看起来相似


至尊宝的传说
浏览 366回答 3
3回答

慕妹3242003

例如,在 Python 3 中,使用/运算符将两个整数相除会产生float值>>> 1/20.5... 但是也>>> 1/11.0(在 Python 2 中,你会得到0和1!)在第一次迭代中,要添加int,并float与total += (n/2)两个float在随后的迭代秒。这两个加法都会产生float值。尾随.0看起来很奇怪,因为您专门计算可以表示为整数的值。已经int_a/int_b成为一个float(在Python 3),即使结果可以写成一个整数,仅仅是一致的。如果将一些整数相除会产生float值而将一些其他整数相除会产生值,那将会很奇怪int。在您的第二个代码片段中,您只将整数相加和相减,从而产生int值,因此您看不到尾随的.0.最后,如果要强制执行整数除法,请使用//运算符。>>> 1//20>>> 1//11//在 Python 3 中的行为就像/在 Python 2 中一样。

qq_笑_17

除法运算符/在 Python 3 中总是产生一个浮点数。//如果你确定它n总是偶数,或者如果你不需要余数,你应该改用整数除法运算符:total&nbsp;+=&nbsp;n&nbsp;//&nbsp;2

素胚勾勒不出你

Python3 中的运算符 '/' 返回一个浮点数,作为结果使用整数除法 '//' 获得整数。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python