Programming in python cs21a

Programming in Python CS21A

Lab 4: Lists and Tuples – Files (25 points)

Learning Objectives for this lab include:

 Understand list basics including elements and subscripts.

 Learn how to find high and low values of a list.

 Learn how to step through and process the elements of a list.

 Learn how to pass lists as arguments to a function.

 Learn how to write lists in Python code.

 Open a text file for output and write strings or numbers to the file

 Open a text file for input and read strings or numbers from the file

An array is called a list in Python. A list is an object that contains multiple data items. Lists are

mutable, which means that their contents can be changed during a program’s execution. Lists are

dynamic data structures, meaning that items may be added to them or removed from them.

Index or subscript starts at 0 in Python.

Numeric Arrays

Elements of an array can be defined as follows if the values are known:

even_numbers = [2, 4, 6, 8, 10]

If the numbers are not known at the beginning, use the repetition operator (*) to create a list with

a specific number of elements, each with the same example. The following will create an array

of 10 elements all set to 0 in the beginning.

numbers = [0] * 10

String Arrays

Elements of a string array are initialized as follows:

names = [‘Molly’, ‘Will’, ‘Alicia’, ‘Adriana’]

Printing Values of the Array

This can be done in one sequence by the following:

print (even_numbers)

The will result in the list printing as follows: [2, 4, 6, 8, 10].

Using Loops and Index

In most cases, a loop should be used to get values in or out of an array. This will allow a specific

index to be specified. A for loop or a while loop will work.

The for loop

numbers = [99, 100, 101, 102]

for n in numbers:

print(n)

The while loop

index = 0

while index < 4:

print (my_list[index])

index += 1

Lists and Tuples

– Lists are mutable; tuples are immutable.

– Lists and tuples are sequences.

– Lists allow assignment: L[3] = 7

Tuples do not.

Standard operations:

– length function: len(L)

– membership: in

– max and min: max(L) and min(L)

– sum: sum(L)

Indexing and Slicing

Given: L = [‘b’, 7, 6, 5,[2,9,1],5.5]

– Tuples work the same with indexing and slicing.

– Indexing starts at 0: L[0] is ‘b’.

– Negative indices work backward from the end: L[-1] is 5.5.

– Slicing selects a subset up to but not including the final index: L[1:4] is [7,6,5].

– Slicing default start is the beginning, so L[:3] is [‘b’, 7, 6].

– Slicing default end is the end, so L[4:] is [[2, 9, 1], 5.5].

– Using both defaults makes a copy: L[:].

– Slicing’s optional third argument indicates step: L[:6:2] is [‘b’, 6, [2, 9, 1]].

– The idiom to reverse a list: L[::-1] is [5.5, [2, 9, 1], 5, 6, 7, ‘b’].

List Methods (partial list)

Given: L1 = [1,3,2] and L2 = [7,8]

– L1.append(0) changes L1 to be [1,3,2,0].

– L1.append(L2) changes L1 to be [1,3,2,[7,8]].

– L1.extend(L2) changes L1 to be [1,3,2,7,8].

– L1.sort() changes L1 to be [1,2,3].

– L1.insert(2,11) inserts 11 before index 2, so L1 becomes [1,3,11,2].

– L1.remove(3) removes 3, so L1 becomes [1,2].

– L1.reverse() changes L1 to be [2,3,1].

– L1.pop() pops 2 off, so L1 becomes [1,3] and returns 2.

Programming in Python Summer 2014

CS21A June 30, 2014

Methods Shared by Lists and Tuples (partial list)

Given: L1 = [1,3,2] and L2 = [7,8]

– L1.index(3) returns the index of item 3, which is 1.

– L1.count(1) counts the number of 1’s in L1: 1 in this case.

Writing to a File

When writing to a file, an internal file name must be created, such as outFile.

This file must then be opened using two arguments. The first argument is the name of the file

and the second is the mode you want to open the file in. You can select either the ‘a’ append

mode or the ‘w’ write mode. For example:

outFile = open(‘filename.txt’, ‘w’)

Files must then be closed. This works the same for both input and output.

outFile.close() or inFile.close()

Reading from a File

When reading from a file, an internal file name must be created such as inFile.

This file must then be opened using two arguments. The first argument is the name of the file

and the second is the mode you want to open the file in, ‘r’ for read. For example:

inFile = open(‘filename.txt’, ‘r’)

Reading from a file is done sequentially in this lab, and a call to read must occur. If a string

header is done first, that must be read into a string variable. That variable can then be used for

processing within the program.

A string literal can be read from a file and displayed to the screen such as:

str1 = inFile.read()

print (str1)

Arrays and variables can be read as a single input such as:

arrayName = inFile.read()

print (arrayName)

Lab 4.1: Total Sales [10 points]

  1. Open the program TotalSales.py file.
  2. Fill in the code so that the program will do the following:

 Ask the user to enter a store’s sales for each day of the week.

 The amounts should be stored in a list.

 Use a loop to calculate the total sales for the week and display the result.

Save the code to a file by going to File Save.

Python Code:

def main():

# Variables

total_sales = 0.0

# Initialize lists

daily_sales = [0.0,0.0,0.0,0.0,0.0,0.0,0.0]

days_of_week = [“Sunday”,”Monday”, “Tuesday”, “Wednesday”, “Thursday”,

                 “Friday”, “Saturday”]

”’Fill in this space to ask the user to enter a store’s sales for each    

   day of the week. The amounts should be stored in a list.

 Use a loop to calculate the total sales for the week and display the   

  result”’





print (“Total sales for the week: $”, format(total_sales, ‘.2f’), sep=”)

main()

Here is a sample run of the program:

Enter the sales for Sunday: 56

Enter the sales for Monday: 23

Enter the sales for Tuesday: 67

Enter the sales for Wednesday: 23

Enter the sales for Thursday: 42

Enter the sales for Friday: 78

Enter the sales for Saturday: 23

Total sales for the week: $312.00

Lab 4.2 – Charge Account Validation [15 points]

  1. Open the program AccountValidation.py file.
  2. Fill in the code so that the program will do the following:

 Read the contents of the file into a list.

 Ask the user to enter a charge account number.

 Determine whether the number is valid by searching for it in the list. If the number is

in the list, the program should display a message indicating the number is valid. If the

number is not in the list, the program should display a message indicating the number

is invalid.

The file charge_accounts.txt has a list of a company’s valid charge account numbers. Each

account number is a seven-digit number, such as 5658845 .

Save the code to a file by going to File Save.

Python Code:

def main():

# Local variables

test_account=””



# Open the file for reading

input_file = open(‘charge_accounts.txt’, ‘r’)



# Read all the lines in the file into a list

accounts = input_file.readlines()



# Strip trailing ‘n’ from all elements of the list

for i in range(len(accounts)):

    accounts[i] = accounts[i].rstrip(‘n’)



    # Fill in this space to get user input





    # Fill in this space to use in operator to search for the 

    # account specified by user

Call the main function.

main()

Here is a sample run of the program:

Enter the account number to be validated: 56

Account number 56 is not valid.

Enter the account number to be validated: 5658845

Account number 5658845 is valid.

Submission

  1. Include the standard program header at the top of your Python file.
  2. Submit your files to Etudes under the “Lab 04“ category.

TotalSales.py

AccountValidation.py

Standard program header

Each programming assignment should have the following header, with italicized text

appropriately replaced.

Note: You can copy and paste the comment lines shown here to the top of your assignment each

time. You will need to make the appropriate changes for each lab (lab number, lab name, due

date, and description).

”’

  • Program or Lab #: Insert assignment name
  • Programmer: Insert your name
  • Due: Insert due date
  • CS21A, Summer 2014
  • Description: (Give a brief description for Lab4)

Lab 5: Strings – sets and dictionaries (25 points)

This lab will give you some experience with strings and sets.

Lab 5.1: Character Analysis [12 points]

  1. Open the Python program CharacterAnalysis.py.
  2. Fill in the code so that the program will do the following:

 Read the file’s contents (text.txt) and determines the following:

o The number of uppercase letters in the file

o The number of lowercase letters in the file

o The number of digits in the file

o The number of whitespace characters in the file

  1. Save the code to a file by going to File Save. Python File:

def main():

# Local variables

num_upper = 0

num_lower = 0

num_space = 0

num_digits = 0

data=””



# Open file text.txt for reading.

infile = open(‘text.txt’, ‘r’)



# Read in data from the file.

data = infile.read()



# Fill in this space to step through each character in     

# the file.

# Determine if the character is uppercase,

# lowercase, a digit, or space, and keep a

# running total of each.







    # Close the file.

infile.close()



# Display the totals.

Call the main function.

Main()

Here is a sample run:

Uppercase letters: 29

Lowercase letters: 1228

Digits: 30

Spaces: 260

Lab 5.2: Unique Words [13 points]

  1. Open the Python program UniqueWords.py.
  2. Fill in the code so that the program will do the following:

 Open a specified text file

 Then displays a list of all the unique words found in the file.

Hint: Store each word as an element of a set.

  1. Save the code to a file by going to File Save.

Python File:

def main():

# Get name of input file.

input_name = input(‘Enter the name of the input file: ‘)



# Open the input file and read the text.

input_file = open(input_name, ‘r’)

text = input_file.read()

words = text.split()



# Fill in this space to create set of unique words.





# Fill in this space to print the results.





# Close the file.

input_file.close()

Call the main function.

main()

Submission

  1. Include the standard program header at the top of your Python file.
  2. Submit your files to Etudes under the “Lab 5 “ category.

CharacterAnalysis.py

UniqueWords.py

Standard program header

Each programming assignment should have the following header, with italicized text

appropriately replaced.

Note: You can copy and paste the comment lines shown here to the top of your assignment each

time. You will need to make the appropriate changes for each assignment (assignment number,

due date, and description).

”’

  • Program or Lab #: Insert assignment name
  • Programmer: Insert your name
  • Due: Insert due date
  • CS21A, Summer 2014
  • Description: (Give a brief description for Lab 5)
Place your order
(550 words)

Approximate price: $22

Calculate the price of your order

550 words
We'll send you the first draft for approval by September 11, 2018 at 10:52 AM
Total price:
$26
The price is based on these factors:
Academic level
Number of pages
Urgency
Basic features
  • Free title page and bibliography
  • Unlimited revisions
  • Plagiarism-free guarantee
  • Money-back guarantee
  • 24/7 support
On-demand options
  • Writer’s samples
  • Part-by-part delivery
  • Overnight delivery
  • Copies of used sources
  • Expert Proofreading
Paper format
  • 275 words per page
  • 12 pt Arial/Times New Roman
  • Double line spacing
  • Any citation style (APA, MLA, Chicago/Turabian, Harvard)

Our Guarantees

Money-back Guarantee

You have to be 100% sure of the quality of your product to give a money-back guarantee. This describes us perfectly. Make sure that this guarantee is totally transparent.

Read more

Zero-plagiarism Guarantee

Each paper is composed from scratch, according to your instructions. It is then checked by our plagiarism-detection software. There is no gap where plagiarism could squeeze in.

Read more

Free-revision Policy

Thanks to our free revisions, there is no way for you to be unsatisfied. We will work on your paper until you are completely happy with the result.

Read more

Privacy Policy

Your email is safe, as we store it according to international data protection rules. Your bank details are secure, as we use only reliable payment systems.

Read more

Fair-cooperation Guarantee

By sending us your money, you buy the service we provide. Check out our terms and conditions if you prefer business talks to be laid out in official language.

Read more
error: