>>> runfile('/Volumes/nfshome/schar/Desktop/cs150/annapeter.py', wdir='/Volumes/nfshome/schar/Desktop/cs150')
>>> main()
Hi Anna!
Bye Anna!
Hi Peter!
Bye Peter!
Hi Anna!
Bye Anna!
Hi Peter!
Bye Peter!
>>> values = [0, 1, 2]
>>> values[1] = values
>>> values
[0, [...], 2]
>>> values[1]
[0, [...], 2]
>>> values[1][1]
[0, [...], 2]
>>> values[1][1][1]
[0, [...], 2]
>>> help(set)
Help on class set in module builtins:
class set(object)
 set() > new empty set object
 set(iterable) > new set object

 Build an unordered collection of unique elements.

 Methods defined here:

[...]

 add(...)
 Add an element to a set.

 This has no effect if the element is already present.

 clear(...)
 Remove all elements from this set.

 copy(...)
 Return a shallow copy of a set.

 difference(...)
 Return the difference of two or more sets as a new set.

 (i.e. all elements that are in this set but not the others.)

 difference_update(...)
 Remove all elements of another set from this set.

 discard(...)
 Remove an element from a set if it is a member.

 If the element is not a member, do nothing.

 intersection(...)
 Return the intersection of two sets as a new set.

 (i.e. all elements that are in both sets.)

 intersection_update(...)
 Update a set with the intersection of itself and another.

 isdisjoint(...)
 Return True if two sets have a null intersection.

 issubset(...)
 Report whether another set contains this set.

 issuperset(...)
 Report whether this set contains another set.

 pop(...)
 Remove and return an arbitrary set element.
 Raises KeyError if the set is empty.

 remove(...)
 Remove an element from a set; it must be a member.

 If the element is not a member, raise a KeyError.

 symmetric_difference(...)
 Return the symmetric difference of two sets as a new set.

 (i.e. all elements that are in exactly one of the sets.)

 symmetric_difference_update(...)
 Update a set with the symmetric difference of itself and another.

 union(...)
 Return the union of sets as a new set.

 (i.e. all elements that are in either set.)

 update(...)
 Update a set with the union of itself and others.

 
 Data and other attributes defined here:

 __hash__ = None
>>> set()
set()
>>> set([1, 2, 3])
{1, 2, 3}
>>> set([3, 2, 1])
{1, 2, 3}
>>> set([3, 2, 1, 3, 2, 3])
{1, 2, 3}
>>> set("hello")
{'l', 'o', 'e', 'h'}
>>> {3, 1, 6}
{1, 3, 6}
>>> s = set([1, 2, 3])
>>> t = {2, 3, 6}
>>> s
{1, 2, 3}
>>> t
{2, 3, 6}
>>> s.union(t)
{1, 2, 3, 6}
>>> s
{1, 2, 3}
>>> t
{2, 3, 6}
>>> s.intersection(t)
{2, 3}
>>> s.add(4)
>>> s
{1, 2, 3, 4}
>>> s.add(4)
>>> s
{1, 2, 3, 4}
>>> s.intersection_update(t)
>>> s
{2, 3}
>>> s = {1, 2, 3}
>>> s.difference(t)
{1}
>>> t.difference(s)
{6}
>>> s.difference(s)
set()
>>> s  t
{1}
>>> s + t
Traceback (most recent call last):
File "", line 1, in
TypeError: unsupported operand type(s) for +: 'set' and 'set'
>>> s  t
{1, 2, 3, 6}
>>> s & t
{2, 3}
>>> True  False
True
>>> True & False
False
>>> s ^ t
{1, 6}
>>> 2 in s
True
>>> 4 in s
False
>>> 3 in [2, 3, 6, 7]
True
>>> 4 in [2, 3, 6, 7]
False
>>> 'e' in 'hello'
True
>>> 'x' in 'hello'
False
>>> 'ell' in 'hello'
True
>>> 'elll' in 'hello'
False
>>> {1, 2} < {4, 2, 3, 1}
True
>>> {1, 2} <= {4, 2, 3, 1}
True
>>> {1, 2} < {2, 1}
False
>>> {1, 2} <= {2, 1}
True
>>> {4, 2, 6} > {2}
True
>>> {4, 2, 6} > {3}
False