Question: Printing US postal bar code. Python Language Problem specification: Write a program that asks the user to enter a zip code (in ZIP+4 format) then
Printing US postal bar code. Python Language
Problem specification: Write a program that asks the user to enter a zip code (in ZIP+4 format) then encode the zip code and prints out the barcode (note: this is the old format barcode.)
Challenge (optional): (1) instead of ZIP+4, if a user enters just zip code say 55555, the program will automatically treat it as 55555-0000; (2) implement your own module for the displaying the digits.
Problem background information: The following table shows the encoding for decimal digits. Check sum is (10-sum mod 10).
| Digit | 7 4 2 1 0 | Barcode |
| 0 | 1 1 0 0 0 |
|
| 1 | 0 0 0 1 1 |
|
| 2 | 0 0 1 0 1 |
|
| 3 | 0 0 1 1 0 |
|
| 4 | 0 1 0 0 1 |
|
| 5 | 0 1 0 1 0 |
|
| 6 | 0 1 1 0 0 |
|
| 7 | 1 0 0 0 1 |
|
| 8 | 1 0 0 1 0 |
|
| 9 | 1 0 1 0 0 |
|
| Start/Stop | 1 |
|
Example: The ZIP+4 of 55555-1237 yields a check digit of 2 for encoded data of 5555512372 Together with the initial and terminal frame bars, this would be represented as:












Your program should import a digitprint module (see attachment) that has print_zero(), print_one(), print_start_stop() functions (instead of using the given module you can write your own functions to print out the barcode for digits), write a function that reads in a ZIP+4 code and returns a string by removing the character, another function for generating the check sum, and then a main function that completes the project. Dont forget to call the main function to run.
Testing requirements:
- print out the barcode for: 55555-1237 91768-1234 20500-0000
- input 55555 (depends on your program design could display bar code or invalid input)
- input 5AB&7 (invalid input)
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts











