The Shed is going Social! Join us on FaceBook and Twitter and chime in on the conversation.
|
 |
|
Dev Shed Forums
> Programming Languages
> Python Programming
|
syntax thingy x % 2 != 0 amd x % 3 != 0
Discuss syntax thingy x % 2 != 0 amd x % 3 != 0 in the Python Programming forum on Dev Shed. syntax thingy x % 2 != 0 amd x % 3 != 0 Python Programming forum discussing coding techniques, tips and tricks, and Zope related information. Python was designed from the ground up to be a completely object-oriented programming language.
|
|
 |
|
|
|
|

Dev Shed Forums Sponsor:
|
|
|

July 8th, 2003, 10:20 PM
|
|
=) wannabe?
|
|
Join Date: Jul 2002
Location: florida
Posts: 2,153
 
Time spent in forums: 21 h 58 m 25 sec
Reputation Power: 13
|
|
|
syntax thingy x % 2 != 0 amd x % 3 != 0
Code:
def prms(x):
return x % 2 != 0 and x % 3 != 0
r = filter(prms,range(2,25))
print r
that'll return prime numbers from 2 to 25.
but i dont understand this line
return x % 2 != 0 and x % 3 != 0
is 0 flase in this case? what does the % sign mean.
please explain.
thank you
|

July 8th, 2003, 11:01 PM
|
|
Junior Member
|
|
Join Date: Jul 2003
Location: Los Angeles
Posts: 6
Time spent in forums: < 1 sec
Reputation Power: 0
|
|
|
Someone else may give you a more complete answer, but I believe the line is testing for remainders in the division of x by 2 and 3. If the remainder for either division is 0 then the number cannot be prime.
|

July 9th, 2003, 12:05 AM
|
|
=) wannabe?
|
|
Join Date: Jul 2002
Location: florida
Posts: 2,153
 
Time spent in forums: 21 h 58 m 25 sec
Reputation Power: 13
|
|
remainder is 0? i dont get that. 
|

July 9th, 2003, 12:34 AM
|
|
Junior Member
|
|
Join Date: Jul 2003
Location: Los Angeles
Posts: 6
Time spent in forums: < 1 sec
Reputation Power: 0
|
|
|
It's so simple, you will be wacking yourself on the head.
x % 2 #returns remainder of x / 2.
Prime numbers, by definition, are only divisible by 1 and themselves (duh, right?), so if "x" is evenly divisible by 2 and/or 3 then it cannot be prime and is not passed to "r"
|

July 9th, 2003, 11:41 AM
|
|
=) wannabe?
|
|
Join Date: Jul 2002
Location: florida
Posts: 2,153
 
Time spent in forums: 21 h 58 m 25 sec
Reputation Power: 13
|
|
|
=) i figured that part out. i just dont get the syntax.
i dont get the % and != 0 parts
|

July 9th, 2003, 12:47 PM
|
 |
Hello World :)
|
|
Join Date: Mar 2003
Location: Hull, UK
|
|
I've never seen anything like this before, it looks like an if-return combination. where did you see this?
% is a mathimatical operator, i dont really know how to describe it but i've used it in PHP, Perl and Python when working on the web to create alternate row colors. you'd do a loop and check the iterator number to see if it % 2.
!= 0 means if whatever is not equal to 0 (also faulse).
Hope this helps, it really is a strance bit of code i hae to say. Wasn't awar this was even possible but
Mark.
|

July 9th, 2003, 01:08 PM
|
|
Contributing User
|
|
Join Date: Aug 2002
Location: NC, USA
Posts: 364
Time spent in forums: 26 m 21 sec
Reputation Power: 11
|
|
|
% is the modulus operator. It returns the remainder of two numbers when one is divided by the other. For Example. 7/3 is 2 with a remainder of 1. So if you said x = (7/3) then x would be equal to 2, it drops the remainder. To find the remainder you would say 7%3 which is 1 because the remainder of 7/3 is 1. So, y = 7%3 would set y equal to 1.
|

July 9th, 2003, 02:22 PM
|
 |
Hello World :)
|
|
Join Date: Mar 2003
Location: Hull, UK
|
|
Thanks a lot damon, good to know  .
Mark.
|

July 9th, 2003, 03:44 PM
|
|
=) wannabe?
|
|
Join Date: Jul 2002
Location: florida
Posts: 2,153
 
Time spent in forums: 21 h 58 m 25 sec
Reputation Power: 13
|
|
|

July 9th, 2003, 04:44 PM
|
 |
Hello World :)
|
|
Join Date: Mar 2003
Location: Hull, UK
|
|
 interesting, thanks for the info.
|

July 10th, 2003, 06:24 PM
|
|
Tattooed Python-Lovin' Freak-Boy
|
|
Join Date: Dec 2001
Location: orange county, CA
Posts: 16
Time spent in forums: < 1 sec
Reputation Power: 0
|
|
this line
Code:
return x % 2 != 0 and x % 3 != 0
will return 1 if both expressions evaluate to true, or 0 otherwise (python 2.2 uses 1 and 0 for booleans, 2.3 uses the words True or False)
|

July 22nd, 2003, 03:53 AM
|
|
Contributing User
|
|
Join Date: Jul 2003
Posts: 133
Time spent in forums: < 1 sec
Reputation Power: 10
|
|
Just remember, using
Code:
x%2 != 0 and x %3 !=0
to see if x is a prime number will only work up to, and not including, 25.
Last edited by percivall : July 22nd, 2003 at 04:00 AM.
|

July 22nd, 2003, 12:29 PM
|
|
=) wannabe?
|
|
Join Date: Jul 2002
Location: florida
Posts: 2,153
 
Time spent in forums: 21 h 58 m 25 sec
Reputation Power: 13
|
|
|
why?
|

July 22nd, 2003, 12:57 PM
|
 |
Just another guy
|
|
Join Date: Jun 2003
Location: Wisconsin
|
|
|
Once you reach 25, there are more numbers (factors) to consider in determining if a number is prime.
ie- 25/2 != 0 and 25/3 != 0, but 25/5 == 0, so 25 is not prime, even though it fits the criteria of that line of code. Below 25, all the non-prime numbers are either even (divisible by 2) or divisible by 3, so that code works.
|

July 22nd, 2003, 01:22 PM
|
|
=) wannabe?
|
|
Join Date: Jul 2002
Location: florida
Posts: 2,153
 
Time spent in forums: 21 h 58 m 25 sec
Reputation Power: 13
|
|
oh. they never explained that
thanks for pointing that out.
|
Developer Shed Advertisers and Affiliates
| Thread Tools |
Search this Thread |
|
|
|
| Display Modes |
Rate This Thread |
Linear Mode
|
|
Posting Rules
|
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
HTML code is Off
|
|
|
|
|