<< Chapter < Page | Chapter >> Page > |
With the exception of (//) and (%), the behavior of all of the operators in Figure 1 should be self-explanatory. The behavior of those two operators was explained in the earlier module titled Itse1359-1020-Numbers .
These are the operators that are typically used in the conditional clause of decision logic. Basically the operators test to determine if the operatordescribes the relationship between the left and right operands. If so, the expression returns true. Otherwise, it returns false.
Figure 2 shows all, or at least most of the relational operators.
Figure 2 . Relational operators. |
---|
<a<b (true if a is less than b)<= a<= b (true if a is less than or equal to b)
== a == b (true if a is equal to b)!= a != b (true if a is not equal to b)>= a>= b (true if a is greater than or equal to b)>a>b (true if a is greater than b) |
The logical operators are shown in Figure 3 .
Figure 3 . Logical operators. |
---|
and And a and b (true if both a and b are true)
or Inclusive Or a or b (true if either a or b are true)not Negation not a (switch a from true to false
or from false to true)&Bitwise And a&b
^ Bitwise Exclusive Or a ^ b| Bitwise Inclusive Or a | b
~ Bitwise Inversion ~ a |
The operators in Figure 3 are often used to embellish the relational operators from Figure 2 in decision logic.
The first operator ( and ) returns true if both operands are true.
The second operator ( or ) returns true if either operand is true.
The third operator ( not ) has only one operand and it is on the right side of the operator. It switches the operand from true to false or from false to true.
The script in Listing 1 shows examples of the use of these three operators in conjunction with the equality relational operator.
Listing 1 . Logical operators "and", "or", and "not". |
---|
a=5
print(a==5 and a==5)print(a==5 and a==4)
print(a==5 and not a==5)print(a==5 and not a==4)
print(a==5 or a==5)print(a==5 or a==4)
print(a==4 or a==4)#This script produces the following output:True
FalseFalse
TrueTrue
TrueFalse |
The last four operators in Figure 3 are used to perform logical operations at the bit level. An explanation of these operators is beyond the scope ofthis module.
The operators in Figure 4 are used to shift bits to the right or left. As with the bitwise logical operators, a discussion of the behavior of these operatorsis beyond the scope of this module.
Figure 4 . Bit shift operators. |
---|
Left Shift a<<b
Right Shift a>>b |
Figure 5 shows a variety of miscellaneous operators. You are already familiar with the behavior of the concatenation operator. Thebehavior of the remaining operators will be explained when and if they are used in future modules.
Figure 5 . Miscellaneous operators. |
---|
Concatenation seq1 + seq2
Containment Test obj in seqIdentity a is b
Identity a is not bIndexed Assignment obj[k] = vIndexed Deletion del obj[k]Indexing obj[k]Slice Assignment seq[i:j] = valuesSlice Deletion del seq[i:j]
Slicing seq[i:j]String Formatting s % objTruth Test obj truth(obj) |
Other than the code shown in Listing 1 , I won't present code to illustrate the use of these operators in thismodule. Instead, I will use the operators in code in future modules and discuss them, as appropriate when they are used.
This section contains a variety of miscellaneous information.
Financial : Although the Connexions site makes it possible for you to download a PDF file for thismodule at no charge, and also makes it possible for you to purchase a pre-printed version of the PDF file, you should beaware that some of the HTML elements in this module may not translate well into PDF.
I also want you to know that, I receive no financial compensation from the Connexions website even if you purchase the PDF version of the module.
In the past, unknown individuals have copied my modules from cnx.org, converted them to Kindle books, and placed them for sale on Amazon.com showing me as the author. Ineither receive compensation for those sales nor do I know who does receive compensation. If you purchase such a book, please beaware that it is a copy of a module that is freely available on cnx.org and that it was made and published withoutmy prior knowledge.
Affiliation : I am a professor of Computer Information Technology at Austin Community College in Austin, TX.
-end-
Notification Switch
Would you like to follow the 'Itse 1359 introduction to scripting languages: python' conversation and receive update notifications?