BYU logo Computer Science

To start this assignment, download this zip file.

The following guide pages cover material needed for this assignment:

Homework 4a — Strings

1. Practice Problems

In practice_problems.py, you will write functions that return a value, not print(). The comment with each function explains what each one should do.

Please note that there is no if __name__ == "__main__":. You can write your own. The test files run your functions directly.

There are tests provided; looking at the input and output in test_practice_problems.py could be helpful.

Tips for keep_big_words() and most_punctuation()

The parameter “words” refers to a list of strings. A word in words could be a string such as “I appreciate your thoughtfulness.” You need to count the number of punctuation marks or uppercase letters which are in the string as a whole.

We recommend additional functions such as the following:

  • count_uppercase(string: str) -> int
  • count_punctuation(string: str) -> int

to help simplify your code.

Punctuation is both not whitespace and not alphanumeric.

2. BYU Students

Write a program that asks for a list of students.

Each student has name, hometown, and school.

When a person enters nothing for the name, the list is complete.

Then:

  • Print out all the names of students from BYU in ALL CAPS.
  • Print out all the names of students from other schools.

Match the prompts and formatting from the following example:

Enter a student.
Name: Eliza Snow
Hometown: Becket
School: BYU
Enter a student.
Name: George Smith
Hometown: Provo
School: UVU
Enter a student.
Name:
BYU Students:
- ELIZA SNOW
Other Students:
- George Smith

You can find starter code in students.py.

Tests

Be sure you can pass the tests before you turn in the assignment. Review the guide on using pytest if you need to review using pytest and what to do if a test fails.

Grading

ActivityPoints
Practice problems10
BYU Students10

Manual grading will focus on decomposition, fluency, and appropriate management of strings.