Average File
Write the function average_file(file_name)
, which has a string parameter that is the name of a file. The file contains only numbers, each on their own line. The function should return a floating point number, which is the average of all of the numbers from the file.
Example
>>> print(open('numbers.txt').read())
1
10
5
3
7
2
9
4
6
8
>>> print(average_file('numbers.txt'))
5.5
Non-Blank Lines
Write a function called non_blank_lines(file_name)
, which has a string parameter that is the name of a file. The function should return a list of non-blank lines from the file.
Example
>>> print(open('input.txt').read())
spam
2
ham
True
eggs
>>> print(non_blank_lines('input.txt'))
['spam', '2', 'ham', 'True', 'eggs']
Posterize
While you might not recognize the name “posterize,” you probably have seen an example of it. Posterization is a method by which the number of colors in the image is reduced. In the case of the hope poster, it was reduced to a 4 color poster.
Details
Create a program that reads a PPM image file and writes a new PPM image file which is the posterized version of the read file.
To posterize a picture, the program should read the color of a pixel, an RGB triplet, and compute the grayscale value of the pixel by averaging the red, green, and blue values. The program should write a color to the output file based on the average value. For example, if the average value is low, between 0 and 64 for example, then write a dark color to the file.
Example
Hint
Submission
Please show your source code and run your programs. Only programs that have perfect functionality will be accepted as complete.