My teacher gives a review sheet which is a lot like the exam if not the exam but with some minor changes. I'm stuck with these fill in the blanks.

Fill-In-The-Blank       Word Frequency
The following program gets the name of a file as a command-line argument, opens that file, reads from it and creates a dictionary of the words in the file and the number of times each word occurred.
import _______________
import sys

NUM_ARGS = ___________

words = {}

if len(sys.argv) != ______________:
    print "This program needs a command-line argument"
    print "that is the name of the file to evaluate."

    sys._______________


file = open(_______________, 'r')

for line in ____________:

    string.strip(___________)

    _____________  = string.split(line)

    for word in wordList:
        # change word to be in all lower-case
        word = string.lower(word)

        # if the word has punctuation after it
    
        if ord(____________) < ord('a') or ord(____________) > ord('z'):

            # remove the punctuation mark from the word

            word = word[: ___________ ]

        # put the word in the dictionary and/or increment the word counter

        count = words.___________(word, 0)

        words[ ____________ ] = count + 1
        
file.______________

print _____________

this is what I have so far, I have no idea how to fill in the last two blanks.

import string
import sys

NUM_ARG = 2

words = {}

if len(sys.argv) != NUM_ARG:
    print "This program needs a command-line argument"
    print "that is the name of the file to evaluate."

    sys.close


file = open(sys.argv[1], 'r')

for line in file:

    string.strip(file)

    wordList  = string.split(line)

    for word in wordList:
        # change word to be in all lower-case
        word = string.lower(word)

        # if the word has punctuation after it
    
        if ord(word) < ord('a') or ord(word) > ord('z'):

            # remove the punctuation mark from the word

            word = word[: ___________ ]

        # put the word in the dictionary and/or increment the word counter

        count = words.get(word, 0)

        words[ word ] = count + 1
        
file.close

print _____________

Then the other one I am having trouble with.

Fill-In-The-Blank       Sieve of Eratosthenes
The Sieve of Eratosthenes is an elegant well-known algorithm for finding the primes up to a specified n.
# sieve() implements the Sieve of Eratosthenes algorithm
# that finds the prime numbers up to n.
#
# Inputs: n, the ending value
#         primes, a list to hold the primes
# Output: None, but the list of primes will be modified
#         by the function to hold the primes less than
#         or equal to n.  The list doesn't need to be
#         returned, since lists are mutable.

________ sieve( _____________, primes):

    numbers = _______________

    # make a list of integers from 2 to n, inclusive

    for i in range(______________):
    
        numbers.append(______________)

    del(numbers[ _____________ ])

    del(numbers[ _____________ ])


    # while there are still numbers in the list

    while len(numbers) > _____________:
        # the first number is always a prime
        prime = numbers[0]

        primes.append(______________)
        del(numbers[0])

        # make a list of indices where there are
        # multiples of the current prime number
        indices = []        
        for i in range(len(______________)):

            if numbers[i] % _____________ == 0:

                indices.append(_____________)

        # reverse the indices for easy deletes

        indices._____________
        
        # delete these multiples since they're not primes

        for index in _____________:

            del(numbers[ ________________ ])

what I was able to figure out

def sieve( n, primes):

    numbers = []

    # make a list of integers from 2 to n, inclusive

    for i in range(2, n + 1):
    
        numbers.append(i)

    del(numbers[ _____________ ])

    del(numbers[ _____________ ])


    # while there are still numbers in the list

    while len(numbers) > -1:
        # the first number is always a prime
        prime = numbers[0]

        primes.append(______________)
        del(numbers[0])

        # make a list of indices where there are
        # multiples of the current prime number
        indices = []        
        for i in range(len(______________)):

            if numbers[i] % ____________ == 0:

                indices.append(_____________)

        # reverse the indices for easy deletes

        indices._____________
        
        # delete these multiples since they're not primes

        for index in _____________:

            del(numbers[ ________________ ])

I'm really stumped on the last one.

Recommended Answers

All 2 Replies

I'm really surprised no one's helped you, yet. You did alot of the work already. For the first one, first blank, you're trying to get every character of the word except the last one, since the last one is punctuation. -1 will do just that. For the second blank, I think you just need to print the dictionary, so words .

I'm really surprised no one's helped you, yet. You did alot of the work already. For the first one, first blank, you're trying to get every character of the word except the last one, since the last one is punctuation. -1 will do just that. For the second blank, I think you just need to print the dictionary, so words .

thank you

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.