[SOLVED] ITI1120 Lab4-order of execution, more strings, forloops, range function 

30.00 $

Category:
Click Category Button to View Your Next Assignment | Homework

You will receive the following solution file(s) instantly after successful payment:

zip file icon Lab4-5tjlbg.zip (522.9 KB)
Assignment Instructions Updated Recently? Submit Below and we will provide new Solution!
Submit New Instructions
🔒 Securely Powered by:
Secure Checkout
5/5 - (2 votes)

order of execution, more strings, forloops, range function

Starting Lab 4

  • Open a    browser    and      log into Brightspace
  • On the left hand   side     under  Labs    tab, find     lab4     material    contained in   lab4-students.zip    file
  • Download that     file to  the Desktop    and unzip

Before   starting,   always make sure you  are  running Python    3

This   slide      is    applicable  to   all   labs,    exercises,   assignments     …    etc

ALWAYS  MAKE   SURE    FIRST    that      you are    running       Python 3.4 (3.5       or 3.6 is      fine    too)

That   is,   when    you click      on  IDLE      (or  start    python any other    way)     look      at   the first    line that      the Python shell      displays.     It    should  say Python 3.4 or   3.5 or   3.6        (and    then      some    extra     digits)

If you do  not know    how      to   do  this,      read    the material      provided     with      Lab 1.   It    explains      it    step      by   step

Exercise from: Introduction to Computing Using Python by Lj. Perkovic

Task  1

In      Python  interpreter  assign   string      ‘good’   to   variable s1,  ‘bad’     to   variable  ‘s2’ and ‘silly’     to   variable s3.  Write  Python  expressions involving     strings   s1,  s2,  and s3 that  correspond  to:

  1. ‘ll’ appears in s3
  2. the blank      space      does        not  appear    in    s1
  3. the concatenation       of    s1,   s2,   and s3
  4. the blank      space      appears  in     the    concatenation       of    s1,   s2,   and s3
  5. the concatenation       of    10    copies     of    s3
  6. the total        number  of    characters      in     the    concatenation       of    s1,   s2,   and s3

Introduction to Computing Using Python by Lj. Perkovic

Indexing  operator, revisited

The indexing operator s[i:j] :   the slice     of   s starting   at   index    i and   returns the character ending   before  index    j

at index i (as a s[i:] :    the slice      of   s starting     at   index    i single character

string).                                     s[:j] :                                                                                               the                                                                                              slice                                                                                                  of                                                                                                   s ending                                                                                          before                                                                                            index                                                                                                   j

-5          -4            -3           -2            -1

çNote: There are no blank for visibility purposes

Introduction to Computing Using Python by Lj. Perkovic

Task  2

Start python interpreter

  1. In python interpreter, create aha variable and assign ‘abcdefgh’ to it.
  2. Then write Python expressions (in the interpreter) using string aha and the indexing operator that evaluate to:

a)‘abcd’

b)‘def’

c)‘h’

d)‘fg’

e)‘defgh’

f)‘fgh’

g)‘adg’

h)‘be’

Introduction to Computing Usi

String   methods

Usage Explanation
s.capitalize() returns   a      copy        of    s with        first character       capitalized
s.count(target) returns   the  number  of    occurences        of    target in   s
s.find(target) returns   the  index      of    the  first        occurrence    of    target in   s
s.lower() returns   lowercase      copy        of    s
s.replace(old, new) returns   copy        of    s with   every        occurrence    of    old replaced        with new
s.split(sep) returns   list   of    substrings      of    s,        delimited       by    sep
s.strip() returns   copy        of    s without        leading   and trailing    whitespace
s.upper() returns   lowercase      copy        of    s

Strings    are immutable; none     of   the string  methods     modify string    s

Introduction to Computing Using Python by Lj. Perkovic Task  3

Copy/paste the following expression (in black) to Python Interpreter:

s = ”’It was the best of times, it was the worst of times; it was the age of wisdom, it was the age of foolishness; it was the epoch of belief, it was the epoch of incredulity; it was …”’

(The beginning of A Tale of Two Cities by Charles Dickens.)

Then do the following, in order:

(a) Write a sequence of statements that produce a copy of s, named newS, in which characters ., ,, ;, and \n have been replaced by blank spaces. (b) Remove leading and trailing blank spaces in newS (and name the new string newS).

  • Make all the characters in newS lowercase (and name the new string newS).
  • Compute the number of occurrences in newS of string ‘it was’.
  • Change every occurrence of was to is (and name the new string newS).

 

Task4

  1. Follow the  link  in     (b)   and trace       through  the  two        Python   Vizualizer       examples               that have        “Code     Lence      1” and    “Code     Lence      2” in        the  You do   that by    clicking   Forward until        the  program ends,      like  we   did  it      class       (It        does       not  matter    here        that it      says Python        2.7. For  these      two programs       Python   2      and 3        behave           the  same).
  2. Then Answer  the  two multiple choice     questions      at        the  end

https://runestone.academy/runestone/static/thinkcspy/Functions/Functionsthatreturnvalues.html

  1. Then follow     this link  and         do   the  two multiple        choice exercises:https://runestone.academy/runestone/static/thinkcspy/Functions/FlowofExecutionSummary.html

Task     5: More    tracing  and   print   vs return

Open    the program      called    print-vs-return-and-function-calls.py,     provided      in    this lab.

The lines      the start      with      #     are commented      out. Thus      Python  will ignore   them.    In      other     words,  if     you press     Run Module the      lines      that       start      with      # will     not be      executed.    Uncomment       the lines      as      instructed   in    the file. Each      time      you do,      save      and press     “Run     Module”.     But      before   you press     “Run     Module”,     write      down    what     you think     the program      will      print.     Then     press     “Run     Module”      and      compare.

Note:    once             you uncomment a     line as      instructed,   leave     it    as   is    (do not put      back      the comments,  but rather   continue      with      the next      set  of   lines      you are      instructed    to   uncomment).

Programming exercise:   Solved   Problem

Suppose   that           you      are given   the      following  two     problems  to  solve.  Read      the two     problems. Think   about  how      you      would solve   them,  and      then      open   and      study   the two     provided      solutions  in   prog_solved_v1.py   and      prog_solved_v2.py.        Run     both.

Version     1:   Write  a    program   that     asks      a    user     for her name  and      age      and      prints  a    nice     message   stating if    the      user     is   eligible      to  vote.

Version     2: Write    a    program that asks     a      user     for name  and      age      and      prints      a    nice     message   stating if    the user     is      eligible      to  vote.   As  a    part     of   your      solution    the program   should have    a      function    called  is_eligible that     given      the age      as  input   parameter      returns      true     or  false    depending      on  weather      the age      is   less      than    18  or  not.

Programming exercise  1

Repeat    the  exercise  in     the  previous question (version  2), where     in     addition you need       to    ask  the  user for   their citizenship     and if      they are  currently in     prison     convicted for   a      criminal  offence. Your        program should    print       a nice message telling     the  user if      they are  eligible   to    vote (i.e. if      they are  18+, Canadian        and do   not  live  in     prison convicted       for   a      criminal  offence, then        they can  vote. Otherwise      not).       You should    modify    function is_eligible so    it      takes       to    additional      paramters      as    input.     In particular       the  head       of    the  function should    be:  is_eligible(age,      citizenship,    prison)

Your        program should    work       if      the  user enters     any  of the  following        versions of    answers  for   the  two new questions:

Canadian

Canada

Canada canadian

Yes

YES

No no and so on

Note that  in      Canada,    one   can   vote even if       in      prison          convicted for    a       criminal    offence.    This            example    if          fictional.

Programming exercise  2

Write    a     function      called   mess     that       takes    a       phrase  (i.e.,      a     string)   as   input    and then       returns the copy     of   that       phrase  where   each       character    that       is    one of   the last        8       consonants of   English alphabet     is    capitalized       (so,       r,    s,    t,    v,    w,   x,y ,       z)    and where       each     blank    space    is    replaced     by   dash.

For this question,    use a     for  loop      over      characters       of   a     string,   and “accumulator”. (We      will see,       or   have     seen,    that       in    Lecture 8     on       Monday).    When   called   from     the python shell,       your      function      should  behave as   follows:

>>> mess(‘Random access memory  ‘)

‘Random-acceSS-memoRY–‘

>>> mess(‘central processing   unit.’)

‘cenTRal-pRoceSSing—uniT.’

 

Built-in function range()

Function range() is used to iterate over a sequence of numbers in a specified range

  • This iterates over the n numbers 0, 1, 2, …, n-1 for i in range(n):
  • This iterates over the n numbers k, k+1, k+2, …, n-1 for i in range(k, n):
  • This iterates over the n numbers k, k+c, k+2c, k+3c, …, n-1 for i in range(k, n, c):

In particular the first time a program encounters a forloop it creates the variable whose name follows the keyword for. In the above examples, the variable name is  i. Then that variable, i in this case, takes values in the given range one by one. Each time it takes the next value it enters the for-loop and executes its body. The for-loop terminates after i has taken on all the values in the range, as shown above)

Python  Visualizer

Go  to   Python  Visualizer     here      (make   sure       you choose  Python  3) http://www.pythontutor.com/visualize.html#mode=edit

for i in range(1,10, 3):

print(i)

and copy/paste, only       by   one,      the following     loops to   it    and click      Forward       to   visualize      the execution.   Pay attention     what     is    assigned      to variable i and      when    does      loop      terminate.

Task 6

Before attempting the following exercise study the examples from the previous slide.

Then open a new file in IDLE and write a program with 6 separate for loops that will print the 6 sequences listed below in parts a) to f). (you do not have to print commas, but you can if you know how to).

Note that if you put ,end=” ” at the end of a print function call, then the print function will print the blank space when it finishes rather than go to the new line.

Eg: this prints numbers 0 to 9 in one line

>>> for i in range(10): print(i,end=” “)

0 1 2 3 4 5 6 7 8 9 >>>

a)0, 1, 2, 3, 4, 5, 6, 7, 8 , 9, 10

b)1, 2, 3, 4, 5, 6, 7, 8, 9

c)0, 2, 4, 6, 8

d)1, 3, 5, 7, 9

e)20, 30, 40, 50, 60

f)10, 9, 8, 7, 6, 5, 4, 3, 2, 1

Programming exercise 3:

Open     the file  ex23n8.py.  Inside    of   that       file:

  1. write a     function       called    print_all_23n8(num),      that       takes     as   input     a     non-negative      integer  num and      prints    all   the the non-negative      numbers      smaller than      num that      are divisible by   2     or   3     but not     You should      use the function       that       is    already present in      the file  (and      that       you developed   for  the      last lab)
  2. Outside of that       function       ask the user       for  a      non-negative     Your      program      should      then      print      all   non-negative     numbers      that       are divisible by   2     or   3     but not 8,    by      making a     call to   function       print_all_23n8
  3. Run your      program      and test it    by   entering,      for  example,            1000     when    prompted    for      a     number

Programming exercise 4:

This program: for i in range(4): print(“*************”)

Prints        :

*************

*************

*************

*************

Write        a       program   that  asks  a       user  for    a       positive     integer         and   a       character. And  then draws        half   piramid     with the         given         number     of               raws using         that  character. For         example    if                 the   user  enter         3       and   $,      your program         should       draw (that is,      print):

$                                                #        

$$

###        $$$

#####      

Bonus                                                                                                                           excercise:                                                                                                                        #######     

For   a       callenge,   draw a       real   pirmaid     like   the   one   to      the         right #########     that       should       be     displayed  if       the         user  entered     10     and   #       ###########   

#############  

############### 

#################

19

###################

Programming exercise 5:

  1. Write a     program      that       asks       a     user       for      a     positive integer  and then      prints    all   the      divisors of   the given     For example      if      the user       entered 6,    the program      should      print:    1,    2,    3,    6
  2. Add a     function,      called    prime, to     this           Function      prime takes a     positive      integer  as   input     parameter   and tests      if     it      is    a     prime    (that     is,   it    returns  true       if      the given     number is    a     prime    and false      otherwise).  Recall    that       a     number is    prime      if     it    at   least      2     and if     it    is    only      divisible by   1     and itself.    Then     make     a      call to   this function       and print      the message      stating  if     the number the user       inputted      in      1)   is    a     prime.
  3. Copy/paste your whole   solution into Python      Visualizer,    click      through with      Forward       to      understand see how      it    runs
  4. Bonus exercise:      Write    a     program      that      asks       a     user       for  a     positive integer, n,          and prints    all   the primes  smaller than

Making  a   table

With   these  tools, you     now    can make  a    program  that    prints nice tables.      See     here:

  • Lab4-5tjlbg.zip