Python 语法:n % 2 == 1 and n //= 2

Python Syntax: n % 2 == 1 and n //= 2

谁能解释一下

的语义
n % 2 == 1

n //= 2

据我了解,n % 2 == 1 检查 n 除以 2 的余数是否为 1

n //= 2呢?这是楼层划分吗?但是什么? n 除以 2?

n % 2 == 1表示returnTrue如果n / 2的余数等于1,与检查n是否为奇数相同。

所以如果n等于6,上面的表达式就会returnFalse。如果 n 等于 9,它将 return True.

n //= 2表示重新定义n变量,但将原值赋给2的floor除法计算进去。

所以如果n等于6,上面的表达式会把它的值变成3。如果 n 等于 9,它会将其值更改为 4