<commit_before>---
layout: lab
num: lab06
ready: false
desc: "Python skill builder (functions, types, if/else, strings, recursion)"
assigned: 2017-08-22 08:45:00.00-7
due: 2017-08-25 15:45:00.00-7
starter-code-url: https://github.com/ucsd-cse-spis-2017/lab06-startercode.git
---

If you find typos or problems with the lab instructions, please report them on Piazza

# What you'll do in this lab

This lab is intended to be an opportunity to review, reinforce, and build your confidence with basic programming
skills.

Before we move into more advanced labs and projects, we want to give you an opportunity to be sure that your
understanding of the following is solid.

* Simple python functions
* Working with if/else
* Working with types in Python
* Python Strings
* Loops
* Recursion

So, we've set up a series of files that contain stubs for various Python functions, along with
tests for those functions.

Your job is very simple: see if you replace each of the stubs with code that passes the tests that go along with that
file.

When you are finished, you can submit your solution to Gradescope for automatic "grading".  (Keep in mind that in SPIS, 
all so-called "grades" are just a way to get feedback on how you are doing.  They don't "count" on your permanent record in any way.  Treat them as "practice" grades.)

# Overview 

The basic structure of the lab is similar to [lab02](/lab02), except for the one-time steps from that lab, and the 
fact that the repo you create will begin with some starter code (similar to lab04)<commit_msg>Update lab06.md<commit_after>---
layout: lab
num: lab06
ready: false
desc: "Python skill builder (functions, types, if/else, strings, recursion)"
assigned: 2017-08-22 08:45:00.00-7
due: 2017-08-25 15:45:00.00-7
starter-code-url: https://github.com/ucsd-cse-spis-2017/lab06-startercode.git
---

If you find typos or problems with the lab instructions, please report them on Piazza

# What you'll do in this lab

This lab is intended to be an opportunity to review, reinforce, and build your confidence with basic programming
skills.

Before we move into more advanced labs and projects, we want to give you an opportunity to be sure that your
understanding of the following is solid.

* Simple python functions
* Working with if/else
* Working with types in Python
* Python Strings
* Loops
* Recursion

So, we've set up a series of files that contain stubs for various Python functions, along with
tests for those functions.

Your job is very simple: see if you replace each of the stubs with code that passes the tests that go along with that
file.

When you are finished, you can submit your solution to Gradescope for automatic "grading".  (Keep in mind that in SPIS, 
all so-called "grades" are just a way to get feedback on how you are doing.  They don't "count" on your permanent record in any way.  Treat them as "practice" grades.)

# Overview 

The basic structure of the lab is similar to [lab02](/lab02.md), except for the one-time steps from that lab, and the 
fact that the repo you create will begin with some starter code (similar to lab04)
{'fraction_non_alphanumeric': 0.06509829197550758, 'fraction_numerical': 0.031582339671285854, 'mean_word_length': 4.122112211221122, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 2, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2073100', 'n_tokens_mistral': 952, 'n_tokens_neox': 861, 'n_words': 476}