CS21 Lab 1: First Programs
Due Saturday, February 3, before midnight
Goals
The goals for this lab assignment are:
-
Practice using a text editor such as Visual Studio Code.
-
Write your first python programs!
-
Use variable assignment to store values
-
Get comfortable with
print()
andinput()
-
Get comfortable with python data types:
int
,float
,str
-
Use type casting with
input()
to get numeric data
You should complete your lab on the CS lab machines. Visual Studio Code, python3, and the linux shell are configured such that lab instructions should work without modification on the lab machines. |
CS21 assignments are individual assignments. In-class lectures and lab write-ups provide all the tools and features you need to complete the lab. You are encouraged to ask faculty, instructional staff, and ninjas questions about your lab solutions. You should not consult online resources outside of the course website, online textbook, and the EdStem forum. Additionally, you may not collaborate on work submitted for a grade with students in this course, or other students. We want to ensure all students completing CS21 demonstrate basic proficiency in the course material prior to more CS courses (where partnered labs are common). |
A first program (Optional Warmup)
The file intro.py
is initially empty. Practice using an editor and type in the program below.
Since the point is to start getting used to typing Python code, you should actually type this, rather than using copy/paste. |
This part will not be graded. It is an optional (but recommended) warmup to help make sure you understand the workflow before you start trying to come up with your own code.
-
After saving your file, run the program and fix any errors.
Here is the program to type:
"""
This is a sample python program
Author: <Put your name here>
Date: <Put today's date here>
"""
#define the main function
def main():
name = input("What is your name? ")
print("Hello")
print(name)
print("Nice to meet you")
# run the body of the main function defined above
main()
Here are two examples of the running program. User input is shown in bold.
$ python3 intro.py What is your name? Brit Hello Brit Nice to meet you!
$ python3 intro.py What is your name? Shafi Goldwasser Hello Shafi Goldwasser Nice to meet you!
A note on printing strings
Printing Strings in Python
Here’s an example of printing two words separated by a single blank space:
The extra space after Hi there! You can also use
will result in the output Hi there! Welcome to CS21! |
1. Favorite Snack
Write a program called snack.py
that asks the user for their name and favorite snack and prints a short response as shown below.
Two examples of the running program are shown below. User input is shown in bold.
$ python3 snack.py
What is your name? Andrew
Hello, Andrew! Nice to meet you
What is your favorite snack? Squid Jerky
Yum! Squid Jerky sounds very tasty!
$ python3 snack.py
What is your name? Rebecca
Hello, Rebecca! Nice to meet you
What is your favorite snack? Ketchup Chips
Yum! Ketchup Chips sounds very tasty!
2. Python Debugging
Often a program won’t work as intended the first time we try to run it. We must review and revise the program in a process called debugging to fix syntax or logic errors in our program. The provided program fixme.py
should complete the following steps:
-
Prompt the user for an integer
n
-
Compute the value
2n
and store it in the variableanswer
-
Print the string
2*n =
followed by the answer
However when we run the program, we get the following output:
$ python3 fixme.py
File "fixme.py", line 22
val = input("Enter an integer n: )
^
SyntaxError: unterminated string literal (detected at line 22)
Look closely at the program and the error output and try to fix this first error. Looking at a working example program may help. Unfortunately, there are three more errors in this program. After fixing the first, continue your debugging process to fix the other three. At some point, python may not generate any error messages, but it also doesn’t generate any output at all. Something is missing at the end of your program. Can you add it to fix the program? Compare the bottom of your non-working program to a working example in-class program if you need a hint.
When all errors are fixed, the program should run as follows, where user input is in bold:
$ python3 fixme.py
Enter an integer n: 5
2*n = 10
3. Cost Calculator
For your last program
this week, you’ll write a cost calculator program, cost.py
. Your program should prompt for the following:
-
An item description (string)
-
An item quantity (int)
-
A cost per item (float)
Your program should compute a total cost and print out a short summary as shown below. Note: you are not required to format decimal cost to round to the nearest penny. We haven’t learned how to do that yet.
$ python3 cost.py Enter an item description: Apples Enter quantity of item: 3 Enter cost per item in dollars: 0.75 Apples (Qty: 3) Total cost = $2.25
$ python3 cost.py Enter an item description: Widgets Enter quantity of item: 271 Enter cost per item in dollars: 1.37 Widgets (Qty: 271) Total cost = $371.27000000000004
3.1. Optional Rounding
As an optional challenge, you can use Python’s built-in
round() function to
round your results to the nearest penny. To use it, you can call round
with
two parameters: the number to round and the number of digits you want to round
to (two for pennies).
For example, if you wanted to round pi to two decimal places:
pi = 3.141592
pi_rounded = round(pi, 2)
print("pi rounded to two decimal places is: " + str(pi_rounded))
Which produces:
pi rounded to two decimal places is: 3.14
Note that converting the result of round
to a string with str()
is
necessary for concatenation (adding the result to a string).
Notice that after rounding to two decimal places, if the hundredths place is a 0, Python won’t print that last 0. We haven’t seen how to fix that yet so for this lab, that is the expected output. |
4. Answer the Questionnaire
After each lab, please complete the short Google Forms questionnaire. Please select the right lab number (Lab 01) from the dropdown menu on the first question.
Once you’re done with that, you should run handin21
again.
Submitting lab assignments
Remember to run handin21
to turn in your lab files! You may run handin21
as many times as you want. Each time it will turn in any new work. We
recommend running handin21
after you complete each program or after you
complete significant work on any one program.
Logging out
When you’re done working in the lab, you should log out of the computer you’re using.
First quit any applications you are running, including your vscode editor, the browser and the terminal. Then click on the logout icon ( or ) and choose "log out".
If you plan to leave the lab for just a few minutes, you do not need to log out. It is, however, a good idea to lock your machine while you are gone. You can lock your screen by clicking on the lock icon. PLEASE do not leave a session locked for a long period of time. Power may go out, someone might reboot the machine, etc. You don’t want to lose any work!