How do I read a character from a string and have it read a correlating Dictionary entry – python

I’m trying to write a code to take the first letter of the string, and if valid, output where in the dictionary it comes from. For the second character in a string (a number) it should tell me whether it’s rural (a 0) or urban (any other number). For whatever reason it seems to think everything is rural, and outputs all of the dictionary. Please help?

import sys
# Input
print("From the given Canadian Postal Code, this program will tell the user n" +
      "where in Canada the Postal Code is from, and whether or not the code n" +
      "is from a rural or urban address. nPress 'Enter' to quit.n")
postalCode = input("The Postal code must be six characters long in the n" +
                   "format A#A #A#. Please enter the Postal Code: ")

# Process
postalCode = postalCode.replace(" ", "")
postalCode = postalCode.upper()

letters = ("A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V" "W", "X", "Y", "Z")
numbers = ("0", "1", "2", "3", "4", "5", "6", "7", "8", "9")
letterInvalid = ("D", "F", "I", "O", "Q", "U", "W", "Z")
letterValid = {"A": "Newfoundland", "B": "Nova Scotia", 
               "C": "Prince Edward Island", "E": "New Brunswick", 
               "G": "Quebec", "H": "Quebec", "J": "Quebec", 
               "K": "Ontario", "L": "Ontario", "M": "Ontario", 
               "N": "Ontario", "P": "Ontario", "R": "Manitoba", 
               "S": "Saskatchewan", "T": "Alberta", "V": "British Colombia", 
               "X": "Nunavut or the Northwest Territories", "Z": "Yukon"}
isUrban = True
valid = True

if postalCode == "":
    print("n   Exiting program.")

for i in range(0, len(postalCode), 2):
    if postalCode(i) not in letters or postalCode(i+1) not in numbers:
        valid = False
        for i in range(0, 2, 1):
            if postalCode(i) in letterInvalid:
                valid = False
        for i in range(0, 3, 1):
            if postalCode(i+1) == "0":
                isUrban = False

# Output
    print(postalCode, "is a valid Postal Code")
    for letter, province in letterValid.items():
        print("The code is from", province.title() +".")
        print("The code is from an urban area.")
        print("The code is from a rural area.")
    print(postalCode, "is not a valid Postal Code")