coding101/episode14/coding101.py
2014-05-19 02:17:44 -07:00

73 lines
2.4 KiB
Python

#!/usr/bin/env python
# Coding 101
#
# Written by Erik C. Thauvin (erik@thauvin.net)
# http://erik.thauvin.net/
# http://github.com/ethauvin/coding101/
# April 26, 2014
import textwrap
# Print opening title
print '================================ CODING 101 ================================'
# Open the file
episode_file = open('coding101.txt', 'r')
# Read the lines into a list
lines_from_files = episode_file.readlines()
# Close the file
episode_file.close()
# Let's go. The program will execute until run = False
run = True
while run:
# Print an empty line
print
# Print the episode list
print 'Choose an episode:'
print
# Loop through the episodes list.
count = 0
for line in lines_from_files:
# Increment the episode number
count += 1
# Split the line using tab as the delimiter
# The format is: Date<TAB>Episode Title<TAB>Description
episode = line.split('\t')
# Print the episode number & title.
# The episode number is converted into a str, and right justified
print '\t{0}. {1}'.format(str(count).rjust(2), episode[1])
print
# Ask for the episode number
choice = raw_input('Enter 1-' + str(count) + ' (or ENTER to quit): ')
# Did you press enter?
if not choice:
# Stop the program execution. Bye-Bye!
run = False
# Validate the selected episode number. It must be a number...
elif choice.isdigit():
# Convert the selection to an integer
selection = int(choice)
# It must also be between 1 and the total number of episodes
# Could be written as: selection >= 1 and selection <= count
if 1 <= selection <= count:
print
print
print '============================================================================'
# Get and split the line for the episode, the list is zero-based
episode = lines_from_files[selection - 1].split('\t')
# Print the episode title and aired date
print 'Episode #' + choice + ": \"" + episode[1] + '" aired on ' + episode[0]
print
# Print the description, using textwrap to make it look pretty
print textwrap.fill(episode[2], width=76)
print '============================================================================'
print
raw_input('Press ENTER to continue...')