我正在研究Euler problems,并在网上找到了第三个问题的代码。
我使用Python 3来解决第三和第四个问题。
def lpf(c): # largest_prime_factor
i = 2
while i * i <= c:
if c % i:
i += 1
else:
c //= i # c // i returns the integer quotient of c/i
return c
我知道//
会返回一个除法的整数商,但是当一个等号放在它之后会发生什么?
c //= i
- &gt; c/i
的整数商是否受变量c
影响?
,我正在处理问题4的回文,我找到了这个算子::
。
例如,以下是使用它的代码:
> s = str(12321)
> print(s == s[::-1])
Output : True
(如果数字是回文数,则输出为True
,否则输出为False
。)
运算符::
是否正在读取字符串并使用选项进行更改?如果是这样,你如何使用它?
答案 0 :(得分:4)
如果您通过??=
特殊运营商阅读??
等运营商,通常(并非总是),可以替换为:
c ??= e
成:
c = c ?? e
因此操作已完成 inplace 。所以你在这里写道:
c = c // i # equivalent to c //= i
请注意,有时就地操作与非现场操作不同。例如列表 la += lb
is not equal to la = la + lb
。由于数值值是不可变的,因此我们可以在这里进行优化,因此对于数字,上面的(可能)总是保持不变。