操作顺序-Python 3

时间:2018-10-11 13:19:08

标签: python python-3.x

有人可以解释为什么c等于25而不是30吗?通过乘以a *(b // a),然后再加上b,我一直保持30。

a=10
b=3*(a-5)
c=b+(b//a)*a

4 个答案:

答案 0 :(得分:0)

只需一步一步地做,您就会发现自己正在做

c = 15 + 1*10

因此,c为25。b // a为下限,表示15/10变为1

答案 1 :(得分:0)

了解发生了什么的一种简单方法是打印每个步骤:

a=10
b=3*(a-5)
print(b)
print(b//a)
print((b//a)*a)
print(b+(b//a)*a)
c=b+(b//a)*a

输出

15
1
10
25

答案 2 :(得分:0)

(15//10)等于1,因此c的公式等于15+1*10 //运算符是累加除法,向下舍入到最接近的整数。此外,您使用的所有值都是整数。要获得30,您需要使用常规除法运算符/,并将除法运算中的一个操作数设置为浮点数,如下所示:c = b+(float(b)/a)*a该代码将c设置为30.0

答案 3 :(得分:0)

c = b + (b//a)*a = b + ((b//a)*a) = 15 + ((15//10)*10) = 15 + (1*10) = 25

这可以清除吗?

关键部分是15//10,因为//执行整数除法,舍入到下一个整数。请注意Python 3中///之间的区别。

>>> 15/10
1.5
>>> 15//10
1