Presentation is loading. Please wait.

Presentation is loading. Please wait.

12 February 2016Birkbeck College, U. London1 Introduction to Programming Lecturer: Steve Maybank Department of Computer Science and Information Systems.

Similar presentations


Presentation on theme: "12 February 2016Birkbeck College, U. London1 Introduction to Programming Lecturer: Steve Maybank Department of Computer Science and Information Systems."— Presentation transcript:

1 12 February 2016Birkbeck College, U. London1 Introduction to Programming Lecturer: Steve Maybank Department of Computer Science and Information Systems sjmaybank@dcs.bbk.ac.uk Spring 2016 Week 6: Relational Operators and Boolean Variables

2 Revision: Strings  String literals: "Hello", "World!"  Length: len("Hello") # value 5  Convert a number to a string: str(5) # value "5" str(34.2) # value "34.2"  String concatenation: "H"+"W" # value "HW" 12 February 2016PFE Section 2.4.42

3 Revision: String Indexing  The characters in a string are indexed left to right, beginning with the index 0  Individual characters are obtained using […], e.g. "Hello" [1] # value "e" "Hello" [4] # value "o"  Negative indices can be used, counting from the right, -1, -2,... "Hello" [-1] # value "o" "Hello" [-3] # value "l"  Valid indices for "Hello" -5, -4, -3, -2, -1, 0, 1, 2, 3, 4 12 February 2016PFE Section 2.4.43

4 Revision: Escape Sequences  \" : include the character double quote in a string, e.g. "a\"b" is the string with three characters a, double quote (") and b  \n : new line, e.g. print("*\n*")  \\: include the character backslash in a string, e.g. "a\\b" is the string with three characters a, backslash (\) and b.  len("a\"b") = len("*\n*") = len("a\\b") = 3 12 February 2016PFE Section 2.44

5 Revision: Format Specifiers  %5d place an integer right justified in a field of 5 characters  %7.2f place a floating point number with two digits after the decimal point right justified in a field of 7 characters. The decimal point and the – sign, if present, each count as characters  %9s place a string right justified in a field of 9 characters  print("%5d" % 56) # three spaces then 56  print("%8.2f" % -586.189) # one space then -586.19  print("%8s" % "Hello") # three spaces then "Hello" 12 February 2016PFE Section 2.5.35

6 Relational Operators 12 February 2016PFE Section 3.26 Python Math Notation Description > > Greater than >= Greater than or equal < < Less than <= Less than or equal == = Equal != Not equal

7 Examples of Relational Operators 12 February 2016PFE Section 3.27 Expression ValueComment 3 <= 4 True 3 is less than 4; <= test for “less than or equal” 3 =< 4 Error Use <= for “less than or equal”, not =< 3 > 4 False > is the opposite of <= 4 < 4 False For True, the left-hand side must be strictly smaller than the right hand side 4 <= 4 True The two sides are equal 3 == 5-2 True == tests for equality 3 != 5-1 True != tests for inequality. It is true that 3 is not 5-1 3 = 6/2 Error Use == to test for equality 1.0/3.0 == 0.333333333 False The values are close but they are not exactly equal "10" > 5 Error A string cannot be compared with a number

8 Relational Operators and Strings  name1 = "John"  name2 = "John"  name3 = "Smith"  name1 == name2 # True  name1 == name3 # False  name1 != name3 # True 12 February 2016PFE Section 3.28

9 Ordering of Single Characters  All uppercase letters come before lower case letters  The space character comes before all printable characters  Numbers come before letters  Example " " < "0" < "1" < "9" < "A" < "B" < "Z" < "a" < "b" < "z" 12 February 2016PFE Section 3.29

10 Examples of Lexicographic Ordering 12 February 2016PFE Section 3.210 s1 s2 u1 u2 u1[0]<u2[0]?order "catch""cart" "tch""rt"No s1 > s2 "coal""coat" "l""t" Yes s1 < s2 "tone""ton" "e"""~ s1 > s2 "pit""pith" """h" ~s1 < s2 "pitch" "" ~ s1 == s2 Given strings s1, s2 find the longest string s such that s1 = s+u1 s2 = s+u2

11 Summary of Lexicographic Ordering 12 February 2016PFE Section 3.211

12 Boolean Variables  Variables of type bool have the value True or the value False, e.g. failed = False passed = True  True and False are special values, not numbers or strings. 12 February 2016PFE Section 3.712

13 Boolean Operators  A Boolean operator takes one or more Boolean values as input and produces a Boolean value as output.  Example: and input: two Boolean values True, True output: True  flag = True and True # The Boolean variable flag has the value True 12 February 2016PFE Section 3.713

14 Truth Tables 12 February 2016PFE Section 3.714 AB A and B True False True False AB A or B True False True False True False Anot A True False True

15 Boolean Operator Examples 12 February 2016PFE Section 3.715 ExpressionValue Comment 0 < 200 and 200 < 100False Only the first condition is true 0 < 200 or 200 < 100True The first condition is true 0 < 200 or 100 < 200TrueThe or is not exclusive or 0<x and x<100 or x == -1(0<x and x<100) or x== -1 The and operator has a higher precedence than the or operator not (0 < 200) False 0 < 200 is true, therefore its negation is false frozen == True frozen There is no need to compare a Boolean variable with True frozen == False not frozenIt is clearer to use not than to compare with False

16 The Operators and, or  Avoid confusing the operators and, or  E.g. x in the range 0 to 100 inclusive 0 <= x and x <= 100  E.g. x outside the range 0 to 100 inclusive x 100 12 February 201616

17 Chaining Relational Operators  The expression 0 <= value <= 100 is equivalent in Python to value >= 0 and value <= 100  The expression a b is equivalent to a b 12 February 2016PFE Section 3.717

18 Short Circuit Evaluation  Logical expressions are evaluated left to right. Evaluation stops when the value of the expression is known.  Examples: True or Anything # True False and Anything # False quantity > 0 and price/quantity < 10 # False if quantity == 0 12 February 2016PFE Section 3.718

19 De Morgan’s Law  Version 1 not(A and B) is the same as (not A) or (not B)  Version 2 not (A or B) is the same as (not A) and (not B)  To obtain version 2 from version 1, write not (A or B) = not(not not A or not not B) = not not (not A and not B) = not A and not B 12 February 2016PFE Section 3.719

20 Example of De Morgan’s Law  if not (country == "USA" and state != "AK" and state != "HI") : shippingCharge = 20.00  if(country != "USA" or state == "AK" or state == "HI") : shippingCharge = 20.00 12 February 2016PFE Section 3.720

21 PFE Review Question R3.20  Of the following pairs of strings, which comes first in lexicographic order? "Tom", "Jerry" "Tom", "Tomato" "church", "Churchill" "car manufacturer", "carburettor" "36", "A1" "36", "a1" 12 February 2016PFE R3.2021

22 Examples  Let x, y, z be variables with integer values. Construct a Boolean expression that is True if and only if exactly one of x, y, z is equal to zero.  Construct a Boolean expression with the following truth table, using one or more of the operators and, or, not. 12 February 2016PFE Section 3.722 A B Expression True False True False True False True False


Download ppt "12 February 2016Birkbeck College, U. London1 Introduction to Programming Lecturer: Steve Maybank Department of Computer Science and Information Systems."

Similar presentations


Ads by Google