So I've been doing something with primes in python, and I'm currently using this
def isDivisible(number,divisor):
if number % divisor == 0:
return True
return False
to check if a number is divisible by the divisor. So I was wondering if there was a faster way to do this?
关于什么:
return (number % divisor == 0)
A speed test shows that checking not()
is faster than a != 0
solution:
%%timeit
not(8 % 3)
# 19 ns ± 0.925 ns per loop (mean ± std. dev. of 7 runs, 10000000 loops each)
%%timeit
8 % 3 != 0
# 27.1 ns ± 0.929 ns per loop (mean ± std. dev. of 7 runs, 10000000 loops each)
I doubt there is a "faster" way of checking this. And it seems pretty simple. However, I would write your function as:
def isDivisible(number, divisor):
return number % divisor == 0
maybe you can use lambda
:
isDivisible = lambda x,y: x%y==0
isDivisible(4,2)
output:
True
Not faster, but note that number % divisor == 0
already returns a boolean. So you could simply do:
is_divisible = lambda number, divisor: number % divisor == 0
to define your function. This however is still the same method you are using. Could be marginally faster, I haven't tested.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.