EX04 - While Loops


0. Pull the skeleton code

If you have already pulled the skeleton code for this week’s exercises, no worries about this step. You should already be good to go.

You will find the starter files needed by “pulling” from the course workspace repository. Before beginning, be sure to:

  1. Be sure you are in your course workspace. Open the file explorer and you should see your work for the course. If you do not, open your course workspace through File > Open Recent.
  2. Open the Source Control View by clicking the 3-node (circles) graph (connected by lines) icon in your sidebar or opening the command palatte and searching for Source Control.
  3. Click the Ellipses in the Source Control pane and select “Pull” from the drop-down menu. This will begin the pulling process from the course repository. It should silently succeed.
  4. Return to the File Explorer pane and open the exercises directory. You should see it now contains another directory named ex04. If you expand that directory, you should see the starter files for the two Python programs in this exercise.

If the above did not work, try the following:

  1. Click the Ellipses in the Source Control pane and select “Pull, Push” from the drop-down menu. Then select “Pull from”. Then select “upstream” and the main option. This will begin the pulling process from the course repository. It should silently succeed.
  2. Return to the File Explorer pane and open the exercises directory. You should see it now contains another directory named ex04. If you expand that directory, you should see the starter files for the two Python programs in this exercise

Exercise 04 – Factorial! (!!!)

After pulling the skeleton code above, you can find the starter code for Fortune Cookie in the file exercises/ex04/factorial.py.

Your program is expected to use the the input and int built-in functions to prompt the user for 1 integer. Compute the factorial of the number and print this out.

Some notes: 1. You may NOT use the built-in factorial function for this calculation. 2. We will only test your function with positive integers. No need to worry about computing the factorial of a negative number!

Example program run:

python -m exercises.ex04.factorial
Choose a number: 4
Factorial: 24

Exercise 01 - Repeat that Beat

After pulling the skeleton code, above, you can find the starter code for Fortune Cookie in the file exercises/ex04/repeat_beat.py.

This program will repeat a chosen word or phrase a specified number of times.

Use the input function to prompt the user for a beat (whatever string they want to repeat) and a number (however many times they want to repeat the beat).

The printed output should be the beat repeated however many times the user specified, with a space between each instance of the beat.

If the number given by the user is less than or equal to 0, print “No beat…”.

Example program run A:

python -m exercises.ex04.repeat_beat
What beat do you want to repeat? bop
How many times do you want to repeat it? 3
bop bop bop 

Example program run B:

python -m exercises.ex04.repeat_beat
What beat do you want to repeat? boom
How many times do you want to repeat it? -1
No beat...

Notes:

  • For full credit, you shouldn’t have a space after the final beat. For example, repeating bop 3 times should print “bop bop bop”.
  • If you’ve encountered the string multiplication operator before, we don’t want you to use it for this assignment. Use the concatenation operator instead for now.
  • Consider having a str variable, separate from the beat, that you can add to in a repetitive fashion.

Formatting and Documentation

  1. You should have a module docstring with a complete first sentence describing your progam at the start of each exercise.
  2. In each of your files, initialize a global variable named author set equal to your PID as a string

4. Make a Backup Checkpoint “Commit”

As you make progress on this exercise, making backups is encouraged. Note that you do not have to make a backup in order to submit your work, though you are encouraged to before each submission so that you can revert back to a previous point in your project if you accidentally change something you did not intend to.

  1. Open the Source Control panel (Command Palette: “Show SCM” or click the icon with three circles and lines on the activity panel).
  2. Notice the files listed under Changes. These are files you’ve made modifications to since your last backup.
  3. Move your mouse’s cursor over the word Changes and notice the + symbol that appears. Click that plus symbol to add all changes to the next backup. You will now see the files listed under “Staged Changes”.
    • If you do not want to backup all changed files, you can select them individually. For this course you’re encouraged to back everything up.
  4. In the Message box, give a brief description of what you’ve changed and are backing up. This will help you find a specific backup (called a “commit”) if needed. In this case a message such as, “Progress on Exercise 3” will suffice.
  5. Press the Check icon to make a Commit (a version) of your work.
  6. Finally, press the Ellipses icon (…), look for “Pull/Push” submenu, and select “Push to…”, and in the dropdown select your backup repository.

5. Submit to Gradescope for Grading

Login to Gradescope and select the assignment named “EX04 - While loops”. You’ll see an area to upload a zip file. To produce a zip file for autograding, return back to Visual Studio Code.

If you do not see a Terminal at the bottom of your screen, open the Command Palette and search for “View: Toggle Integrated Terminal”.

To produce a zip file for ex04, type the following command (all on a single line):

python -m tools.submission exercises/ex04

In the file explorer pane, look to find the zip file named “21.mm.dd-hh.mm-exercises-ex04.zip”. The “mm”, “dd”, and so on, are timestamps with the current month, day, hour, minute. If you right click on this file and select “Reveal in File Explorer” on Windows or “Reveal in Finder” on Mac, the zip file’s location on your computer will open. Upload this file to Gradescope to submit your work for this exercise.

Autograding will take a few moments to complete. For this exercise there will be points manually graded for style – using meaningful variable names and snake_case. If there are issues reported, you are encouraged to try and resolve them and resubmit. If for any reason you aren’t receiving full credit and aren’t sure what to try next, come give us a visit in office hours!