4
import pickle
import os
import time

class Person():
    def __init__(self, number, address):
        self.number = number
        self.address = address


def save():
    with open('mydict.pickle', 'wb') as f:
        pickle.dump(mydict, f)        

mydict = {}
mydict['Avi'] = ['347-000-0000', 'Oceanview']
mydict['Alan'] = ['347-000-0000', 'Brighton']
mydict['Frank'] = ['718-000-0000', 'Brighton']

print('add a name to the database.')
name = input('Name:')
number = input('Digits:')
address = input('Address:')
mydict[name] = [number, address]

-------------------------------------------------------

ERROR: If I try to add a name to the database I get a nameerror. NameError: name 'alan' is not defined. What's weird is that strings won't work but numbers will. Sorry if my question is unclear.

Traceback (most recent call last):
  File "C:/Python33/ss", line 21, in <module>
    name = input('Name:')
  File "<string>", line 1, in <module>
NameError: name 'alan' is not defined
>>> 
0

1 Answer 1

15

It seems like you're using Python 2.x.

Use raw_input instead of input to get string from user.

If you're reading book/material that assume the reader is using Python 3.x, it's better to use Python 3.x instead of Python 2.x.

BTW, dictionary keys are case-sensitive.

>>> d = {'Avi': 1, 'Alan': 2}
>>> d['alan']
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyError: 'alan'
>>> d['Alan']
2
Sign up to request clarification or add additional context in comments.

1 Comment

Ahh. Thanks. For some reason the python 2.7 shell was opening instead of the 3.3 shell. I have both installed. Thanks for clearing that up!

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.