Profile

Cover photo
Core Python books
1,746 followers|31,706 views
AboutPostsPhotosVideos

Stream

Core Python books

Shared publicly  - 
 
I love giving back to the community, and teaching #Python locally is just one way I do that. Sooo... here's the final reminder about my 3-day course coming up in a few weeks (Jul 30-Aug 1) near the San Francisco airport. To recap, my audience isn't the absolute newbie to coding... it is geared towards the following audiences:

1. Those who already know how to code in another high-level language (C/C++, Java, PHP, Ruby) looking to get a strong introduction to Python

2. Those who already know Python syntax, i.e., either by tinkering on their own, via a study group, have taken courses from Udacity, Coursera, any other publicly offered beginner course, or have completed "Learn Python the Hard Way"... they want to know more and take their skills to the next level plus learn good Python practices along the way.

3. Those who know Python well and use it often but want to fill-in gaps in their knowledge or have run into hard-to-explain bugs with their code even if it appears to all be syntactically correct.

It's near SFO so free shuttle for those flying in. It's across the street from the San Bruno BART station (and up the road from CalTrain), and there's easy freeway access (101/380/280) along with free parking. The fee is $1495USD (covers all lectures, codelabs, course materials, textbook) -- bring a friend or colleague, and you'll both get a discount! (Contact me privately for details.) Here's the public ad: http://goo.gl/pyJseQ.

Go to http://corepython.com and click the "Training" link in the lower right-hand corner. There are links to the course and registration. You can also watch a 5-minute video to get an idea of my teaching style and classroom interaction. A 1-pager/flyer (PDF) can be downloaded at http://cyberwebconsulting.com/flyerPP1.pdf

I've got a few seats left, so hope to meet some of you soon!
3
Chubasco Diranga's profile photo
 
Can anyone help on my python code? How to insert a cheat code to "Teleport" and others plz in python game code?
T1 –
HELP MESSAGE INCOMPLETE
T4 (quitting game)
- Used exit or quit()
T3 – Teleporting
- Validating range of valid location number.
- Command under wrong name
T5 – cheat
- Giveme as name
T7 – menu: no numbers, text only


Here is the code:

# NOTE:
# This game was created based on the book: Write Your Own Adventure Programs
# Written by Jenny Tyler, Les Howarth
# Published by Usborne computer books, 1983
# https://books.google.co.nz/books?id=f6BoAAAACAAJ


# Version no: 20150831


import random
import sys

#############################################################################################################
# GAME DATA                                                                                                 #
#############################################################################################################

# SOME CONSTANTS
HERO_INVENTORY_POS = 99

DirectionsList = ['SE', 'WE',  'WE',  'SWE', 'WE',   'WE',  'SWE',  'WS', #0-7
                   'NS', 'SE',  'WE',  'NW',  'SE',   'W',   'NE',   'NSW', #8-15
                   'NS', 'NS',  'SE',  'WE',  'NW', 'SE',  'WS', 'NS', #16-23
                   'N',  'NS',  'NSE',  'WE',  'WE',   'NSW', 'NS',   'NS', # 24 - 31
                   'S',  'NSE', 'NSW', 'S',   'NS', 'N',   'N',    'NS', #32 - 39
                   'NE', 'NSW',  'NE',  'W',   'NSE',  'WE',  'W',    'NS', #40 - 47
                   'SE', 'NSW', 'E',   'WE',  'NW',   'SE',   'SWE',   'NW', #48 - 55
                   'NE', 'NWE', 'WE',  'WE',  'WE',   'NWE', 'NWE',  'W'] #56 - 63



# '\' below is a continuation character, it tells Python that the current statement continues to the next line.
LocationsList = \
[ 'DARK CORNER',                  'OVERGROWN GARDEN',       'BY LARGE WOODPILE',         'YARD BY RUBBISH',
  'WEEDPATCH',                    'FOREST',                 'THICK FOREST',              'BLASTED TREE',
  'CORNER OF HOUSE',              'ENTRANCE TO KITCHEN',    'KITCHEN & GRIMY COOKER',    'SCULLERY DOOR',
  'ROOM WITH INCHES OF DUST',     'REAR TURRET ROOM',       'CLEARING BY HOUSE',         'PATH',
  'SIDE OF HOUSE',                'BACK OF HALLWAY',        'DARK ALCOVE',               'SHALL DARK ROOM',
  'BOTTOM OF SPIRAL STAIRCASE',   'WIDE PASSAGE',           'SLIPPERY STEPS',            'CLIFFTOP',
  'NEAR CRUMBLING WALL',          'GLOOMY PASSAGE',         'POOL OF LIGHT',             'IMPRESSIVE VAULTED HALLWAY',
  'HALL BY THICK WOODEN DOOR',    'TROPHY ROOM',            'CELLAR WITH BARRED WINDOW', 'CLIFF PATH',
  'CUPBOARD WITH HANGING COAT',   'FRONT HALL',             'SITTING ROOM',              'SECRET ROOM',
  'STEEP MARBLE STAIRS',          'DINING ROOM',            'DEEP CELLAR WITH COFFIN',   'CLIFF PATH',
  'CLOSET',                       'FRONT LOBBY',            'LIBRARY OF EVIL BOOKS',   'STUDY WITH DESK & HOLE IN WALL',
  'WEIRD COBWEBBY ROOM',          'VERY COLD CHAMBER',      'SPOOKY ROOM',               'CLIFF PATH BY MARSH',
  'RUBBLE-STREWN VERANDAH',       'FRONT PORCH',            'FRONT TOWER',               'SLOPING CORRIDOR',
  'UPPER GALLERY',                'MARSH BY WALL',          'MARSH',                     'SOGGY PATH',
  'BY TWISTED RAILING',           'PATH THROUGH IRON GATE', 'BY RAILINGS',               'BENEATH FRONT TOWER',
  'DEBRIS FROM CRUMBLING FACADE', 'LARGE FALLEN BRICKWORK', 'ROTTING STONE ARCH',        'CRUMBLING CLIFFTOP']

VerbList = ['HELP', 'CARRYING?', 'GO',    'N',       'S',       'W',     'E',   'U',      'D',
            'GET',  'TAKE',      'OPEN',  'EXAMINE', 'READ',    'SAY',
            'DIG',  'SWING',     'CLIMB', 'LIGHT',   'UNLIGHT', 'SPRAY', 'USE', 'UNLOCK', 'DROP', 'SCORE']


ItemList = ['PAINTING', 'RING',      'MAGIC SPELLS', 'GOBLET', 'SCROLL', 'COINS', 'STATUE',  'CANDLESTICK', 'MATCHES',
            'VACUUM',   'BATTERIES', 'SHOVEL',       'AXE',    'ROPE',   'BOAT',  'AEROSOL', 'CANDLE',      'KEY']

PositionOfItems = [46, 38, 35, 50, 13, 18, 28, 42, 10, 25, 26, 4, 2, 7, 47, 60, 100, 100]

VisitedLocations =[0]

# This variable represents player's current location. Initial location is 0
currentLocation = 0


#############################################################################################################
# HELPER FUNCTIONS                                                                                          #
#############################################################################################################


def isMultiwordStatement(value):
    return value.find(" ") != -1

def isItemAvailableAtLocation(ItemID,location):
    return PositionOfItems[ItemID] == location

def isItemInInventory(itemName):
    ItemID = GetItemID(itemName)
    return PositionOfItems[ItemID] == HERO_INVENTORY_POS
def isItemHidden(itemName):
    # 100 is the location for hidden items.
    ItemID = GetItemID(itemName)
    return PositionOfItems[ItemID] == 100

def GetItemID(item):
    for ItemID in range(0, len(ItemList), 1):
        if item == ItemList[ItemID]:
            return ItemID
    return -1




#############################################################################################
# GAME LOGIC                                                                                #
#############################################################################################

def GetVerbFromSentence(sentence):
    if not isMultiwordStatement(sentence):
        return sentence
    locationOfSpace=sentence.find(" ")
    return sentence[:locationOfSpace]

def GetNounFromSentence(sentence):
    if not isMultiwordStatement(sentence):
        return ""
    locationOfSpace=sentence.find(" ") + 1
    return sentence[locationOfSpace:]

def isMovementAvailable(directioncharacter):
    """
    isMovementAvailable checks whether it is possible to move in a direction in the current location
    directioncharacter - intended direction to move toward at the currentLocation
    returns True or False - based on whether the directioncharacter can be found in the String from DirectionsList[currentLocation]

    Example:
    if directioncharacter is 'N' and DirectionsList[currentLocation] is 'NSW', this function returns True
    """
    
    dirString = DirectionsList[currentLocation]
    result = dirString.find(directioncharacter)
    if result >= 0:
        return True
    else:
        return False
    

def GetMovementDirection(statement):
    verb=GetVerbFromSentence(statement)
    noun=GetNounFromSentence(statement)
    if len(verb)==1:
        return verb
    if verb == 'GO':
        return noun[:1]
    return ''

def GetScore():
    score = 0
    for name in ItemList:
        if isItemInInventory(name):
            score +=1
    return score
    
#############################################################################################
# END GAME LOGIC                                                                            #
#############################################################################################

#############################################################################################
# BEGIN PRESENTATION LOGIC                                                                  #
#############################################################################################

def DisplayCongratulation():
    print("""
 __     __                    _       
 \ \   / /                   (_)      
  \ \/ /_     _  _      _ _ __  
   \   / _ \| | | | \ \ /\ / / | '_ \
    | | (_) | |_| |  \ V  V /| | | | |
    |_|\___/ \__,|   \/\_/ |_|_| |_|
                                      
 """)                                     

    
def DisplayInventory():
    strItems=""
    for i in range(len(PositionOfItems)):
        if PositionOfItems[i] == HERO_INVENTORY_POS:
            strItems = strItems + " "+ ItemList[i]
    
    if len(strItems) == 0:
        strItems = "NOTHING"
    print("YOU ARE CARRYING:" + strItems)
    

def DisplayMap():

    """
     Each row of the map is consisted of 3 lines
     The first line - contains exit to North
     The second line - contains exits to West and East plus room no.
     The third line - contains exit to South
     
    """
    Line1 = ""
    Line2 = ""
    Line3 = ""
    # Use a FOR loop to draw every room
    for Index in range (0, 64, 1):
        if Index in VisitedLocations:
            # assign the exits at location 'Index' to currentValues
            # e.g. "NSW" if there are exits to North, South, and West
            currentValues=DirectionsList[Index]

            # if there is exit to the north draw a gap between the blocks
            if "N" in currentValues:
                Line1 += "█  █"
            # otherwise, draw a wall
            else:
                Line1 += "████"
                
            if "W" in currentValues:
                Line2 += (" ") + PrintableInts(Index)
            else:
                Line2 += ("█") + PrintableInts(Index)
            
                
            if "E" in currentValues:
                Line2 += " "
            else:
                Line2 += "█"

            if "S" in currentValues:
                Line3 += "█  █"
            else:
                Line3 += "████"
        else:
            Line1 += "    "
            Line2 += "    "
            Line3 += "    "
        # Draw the first row of rooms if 8 rooms have been processed.     
        if (Index + 1) % 8 == 0:
            print (Line1)
            print (Line2)
            print (Line3)
            # Emptying the lines for the next row of 8 rooms.
            Line1 = ""
            Line2 = ""
            Line3 = ""
                                
###
def ExamineCoat():
    if currentLocation == 32 and isItemHidden("Key"):
        PositionOfItems[GetItemID("KEY")] = 32
        print ("YOU EXAMINE THE COAT AND FIND A KEY IN THE POCKET")
    elif currentLocation == 32 and not isItemHidden("Key"):
        print ("IT\'S A DIRTY OLD COAT")
    else:
        print ("WHAT COAT?")

def ExamineDrawer():
    if currentLocation == 43 and isItemInInventory("KEY") :
        print ("YOU UNLOCK THE DRAWER AND FIND IT IS EMPTY")
    elif currentLocation == 43 and not isItemInInventory("KEY") :
        print ("UNFORTUNATELY THE DRAWER IS LOCKED")
    else:
        print ("WHAT DRAWER?")

    
def ExamineRubbish():
    if currentLocation == 3:
        print ("THE RUBBISH IS FILTHY")
    else:
        print ("WHAT RUBBISH?")

def ExamineWall():
    if currentLocation == 43:
        LocationsList[currentLocation] = "STUDY WITH DESK"
        DirectionsList[currentLocation]="NW"
        print ("YOU LOOK AT THE WALL AND DISCOVER IT IS FALSE!\nYOU DISCOVER A NEW EXIT")
    else:
        print ("NO INTERESTING WALLS HERE")
def ExamineDoor():
    if currentLocation == 28 and  isItemInInventory("KEY"):
        DirectionsList[currentLocation]="SEW"
        print ("YOU UNLOCK THE DOOR AND DISCOVER A NEW LOCATION!")
    elif currentLocation == 28 and  not isItemInInventory("KEY"):
        print ("UNFORTUNATELY THE DOOR IS LOCKED")
    else:
        print ("NO INTERESTING DOOR HERE")
    
def ExamineBooks():
    if currentLocation == 42 and isItemHidden("CANDLE"):
        print ("YOU LOOK AT THE BOOKS AND FOUND A CANDLE IN BETWEEN BOOKS!")
        PositionOfItems[GetItemID("CANDLE")] = 42
    elif currentLocattion == 42 and not isItemHidden("CANDLE"):
        print ("THE BOOKS LOOK EVIL")
    else:
        print ("NO BOOKS HERE")
def DoExamine(noun) :
    if noun == "COAT":
        ExamineCoat()
    elif noun == "DRAWER":
        ExamineDrawer( )
    elif noun == "RUBBISH":
        ExamineRubbish()
    elif noun == "WALL":
        ExamineWall()
    elif noun == "DOOR":
        ExamineDoor()
    elif noun == "BOOKS":
        ExamineBooks()
    else:
        print ("WHAT "+noun+"?")
    
          

def PrintableInts(value):
    if(value<10):
        return " "+str(value)
    return str(value)


#############################################################################################
# END PRESENTATION LOGIC                                                                    #
#############################################################################################


def ListItemsAtPosition():
    strItems=""
    for i in range(0, len(PositionOfItems), 1):
        if PositionOfItems[i] == currentLocation:
            strItems = strItems + " "+ ItemList[i]
    return strItems

def ItemsAvailableAtPosition():
    for i in range(0, len(PositionOfItems), 1):
        if PositionOfItems[i] == currentLocation:
            return True
    return False


def Go(statement, nowLocation):
    directioncharacter = ''

    verb=GetVerbFromSentence(statement)
    noun=GetNounFromSentence(statement)

    directioncharacter = verb
    if verb == 'GO':
        directioncharacter = noun[:1]
    
    if isMovementAvailable(directioncharacter):
        if directioncharacter == 'N':
            nowLocation -= 8
        elif directioncharacter == 'S':
            nowLocation += 8
        elif directioncharacter == 'W':
            nowLocation -= 1
        elif directioncharacter == 'E':
            nowLocation += 1
    return nowLocation

def GetItem(noun):
    ItemID = GetItemID(noun)
    if isItemAvailableAtLocation(ItemID,currentLocation):
        PositionOfItems[ItemID]=HERO_INVENTORY_POS
        print("YOU ARE NOW CARRYING A",noun, file=sys.stderr)
    else:
        print("SORRY YOU CANNOT TAKE A ", noun)
    
        
def DropItem(noun):
    ItemID = GetItemID(noun)
    if isItemAvailableAtLocation(ItemID, HERO_INVENTORY_POS):
        PositionOfItems[ItemID] = currentLocation
        print("YOU HAVE DROPPED THE ", noun)
    else:
        print("YOU CANNOT DROP THAT WHICH YOU DO NOT POSSESS")

###
def OpenDoor():
    if currentLocation == 28 and isItemInInventory("KEY"):
        DirectionsList[currentLocation]="SEW"
        print("THE DOOR IS NOW OPEN! REVEALLING A NEW EXIT!")
    else:
        print("THE DOOR IS LOCKED")
    
        
def ProcessStatement(statement):
    global currentLocation
    '''
      A statement can be either a verb or a verb + a noun
      If a statement is consisted of 1 verb and 1 noun, (separated by a space), it can looks like 'examine desk', 'get axe' ..etc
    '''
    
    verb=GetVerbFromSentence(statement)
    noun=GetNounFromSentence(statement)    
    
    if verb == "HELP":
        print ("I UNDERSTAND THE FOLLOWING WORDS:")
        
        print(VerbList)

    elif verb == "SCORE":
        print("YOUR CURRENT SCORE IS:", GetScore())

    elif verb == "INVENTORY" :
        DisplayInventory()

    elif verb == "GET" :
        GetItem(noun)

    elif verb == "OPEN" and noun == "DOOR":
        OpenDoor()
        
    elif verb == "DROP":
        DropItem(noun)

    elif verb == "EXAMINE":
        DoExamine(noun)

    elif verb == "SHOW" and noun == "MAP":
        DisplayMap()
        
    elif verb == 'N' or verb == 'S' or verb == 'E' or verb == 'W' or verb == 'U' or verb == 'D' or verb == 'GO':  
        newLocationID = Go(statement,currentLocation)
        if currentLocation != newLocationID:
            print("YOU MOVED FROM " + LocationsList[currentLocation] + " TO " + LocationsList[newLocationID], file=sys.stderr)
        else:
            print("YOU ARE UNABLE TO MOVE IN THAT DIRECTION")
        currentLocation = newLocationID



# Existing missions:
# Go to location 32 and 'examine coat' to find a key
# Go to location 28 and 'open door' with the key in inventory.

# Go to location 43 and 'examine wall' to find a new exit into a secret room.

def Game():
    # Win condition: pick up more than 5 items and go back to location 0
    while not (GetScore() >= 5 and currentLocation == 0):
    
        print("========Haunted House=========")
        print("YOU ARE LOCATED IN A ", LocationsList[currentLocation],"("+str(currentLocation)+")")
        if ItemsAvailableAtPosition():
            print("YOU CAN SEE THE FOLLOWING ITEMS AT THIS LOCATION: ", ListItemsAtPosition())
        print("VISIBLE EXITS: ", DirectionsList[currentLocation])
        DisplayMap()
        
        statement = input("WHAT DO YOU WANT TO DO NEXT?")
        statement = statement.upper()
        ProcessStatement(statement)
        if not (currentLocation in VisitedLocations):
            VisitedLocations.append(currentLocation)
        
        
    DisplayCongratulation()

# Program starts here!
Game()
Add a comment...

Core Python books

Shared publicly  - 
 
Yay... another positive sentiment for my latest book which came out almost a year ago! I'm so glad folks find it useful to taking their #Python skills to the next level! http://www.amazon.com/product-reviews/0132678209?sortBy=bySubmissionDateDescending
3
Add a comment...

Core Python books

Shared publicly  - 
 
I'm starting to think about the 3rd ed of Part I of Core Python. In addition to fixing up the existing 14 chapters, I'll be adding Python 3 versions of the code next to the Python 2 ones (no I'm not removing those to make a pure Python 3 book... that's nuts!)

One of the new chapters I'll be adding is called "Best Practices." Post some of your best practices here, or to my personal G+ page (http://plus.ly/wescpy). I'll also ask readers of this on the Core Python blog as well (http://wescpy.blogspot.com).
6
Add a comment...

Core Python books

Shared publicly  - 
 
Dear readers, if you haven't already noticed, a review of the newest book was posted to Slashdot yesterday, and wow, what an effect it has had. Glad you all are here joining me on this great ride!

Here's what I wrote about it in my normal G+ stream: https://plus.google.com/u/0/102108625619739868700/posts/FdfJpWgMDsb

Important Note: I'm starting my research for the 3rd edition of Part I of the original Core Python book. It will be called "Core Python Language Fundamentals." Let me know privately (DM, email, etc.) if you have any comments or suggestions for the new book, or if you wish to be a tech reviewer!

The whole process will take a couple of years, so to keep the 2nd edition current, a couple of years ago, I added 2 new appendices on 2.6 (& 2.7) as well as 3.x... look for the red star on the cover (5th & newer printings).
5
Shawn Qureshi's profile photoCore Python books's profile photo
2 comments
 
let me know how it goes... as you can tell, i'm always open for feedback and improvements!
Add a comment...

Core Python books

Shared publicly  - 
 
Please be sure to visit the books' website at http://corepython.com. Specifically for the new book (Core Python Applications Programming, 3rd edition), I've updated the Errata page significantly since the book was published. Yes, we didn't get all the kinks out in time for publication; there are many minor issues and some non-minor ones.

Some of the code needed fixing, so I've made a few updates to the downloadable source, both individual files as well as the archives (all.zip & all.tgz) on 2012 Apr 3. Be sure to check whether you have the latest!

Also, I need your help! If you find any errors (regardless of how big or small), please post it here as a reply or email me at the address inside the book.
2
akshay pant's profile photoCore Python books's profile photo
6 comments
 
Good question. That depends on the policies set forth by the retailer whom you purchased the book from. As you can imagine, I have no control over that, and this is a relationship only between you and the retailer.

From a consumer's perspective, I would try to sell the book to try to recuperate as much of the original cost as possible, then go for this option. If other readers have suggestions for Akshay, I'm sure they would be appreciated.
Add a comment...

Core Python books

Shared publicly  - 
 
It has been a long time coming, but for Core Python 2nd edition readers with the 4th printings and older (2009 and earlier without a red star on the cover), you can now download (your missing) Appendices C & D at the book's website at http://corepython.com ... that coupled with all the Errata posted brings your books back up-to-date with the 5th and newer printings!
website for Core Python Programming book
1
Add a comment...
In their circles
1,550 people
Have them in circles
1,746 people
Frahaan Hussain's profile photo
Nilay Bagchi's profile photo
Jaehyeuk Oh's profile photo
阳翅翔's profile photo
Khalid Al-Ghamdi's profile photo
Michael Konovaliuk's profile photo
Marcin Karda's profile photo
Marco Belcastro-Bara's profile photo
Themis Stantzos's profile photo

Core Python books

Shared publicly  - 
 
Just wanted to take a moment to thank all my readers out there. last month, the 2nd edition of my "Core Python Programming" book just hit its 8th printing!! To celebrate, +Amazon.com has put it on sale for 43% (normally only 37% off) http://amzn.com/0132269937. This is my main book which is meant for existing programmers new to #Python. More info at http://corepython.com.

If you already know Python but want to take your skills to the next level, "volume 2" is called "Core Python Applications Programming" (3rd ed). The good thing for beginners is that "volume 1" above has a free multi-chapter preview of volume 2. (In future editions, this will likely be reduced to one chapter of free preview.)
4
Brian Gill's profile photoJabzero ManN's profile photoCore Python books's profile photo
3 comments
 
thanks! at some point, i do need a 3rd edition of part/volume 1 too. :P anyway, happy reading (and coding)!
Add a comment...

Core Python books

Shared publicly  - 
 
RT @InformIT Perfect 10! @wescpy "Core #Python Applications Programming" reviewed by the The British Computer Society (BCS): "the book’s key strength is its interactive style, which encourages and supports deeper understanding of the subject matter" http://ow.ly/eA11X

Public service note: I have 2 books out there that are similarly named:

• "Core Python Applications Programming" (3rd ed, the reviewed book, http://amzn.com/0132678209), is for existing Python programmers looking to expand their skills while...

• "Core Python Programming" (2nd ed, http://amzn.com/0132269937) is for programmers new to or learning Python... it also comes with a free 9-chapter preview of "Core Python Applications Programming"
5
Sung-Jin Kim (James)'s profile photoCore Python books's profile photo‫جفين ابن جفين‬‎'s profile photo
3 comments
 
منيح
Add a comment...

Core Python books

Shared publicly  - 
 
If you've been thinking about any of my books, FYI @Amazon starts collecting CA sales tax tomorrow! :-) http://amazon.com/s/?keywords=chun+python
1
Add a comment...

Core Python books

Shared publicly  - 
 
Greetings everyone! In case any of you are interested, I'm offering my next hardcore Python course coming up in a few weeks (Aug 1-3) near the San
Francisco airport. It follows and is based on my classic Core Python Programming book (say the first 13 or so chapters).

If you're somewhat new to Python or have tinkered but want to fill-in the holes, this course is for you. It's somewhat true you can learn Python online, watching videos, or reading books, but it still takes time and experience to master... I help accelerate this process. The course is made up of 3 full days complete with lectures and 3 hands-on coding labs per day.

Please pass on this message to your colleagues who also need to learn
Python. It's also a great excuse to coming to beautiful Northern California for a final summer vacation! More details in my ad at http://goo.gl/uW4oF
Intro+Intermediate Python course. Already know Java, C/C++, Ruby, JavaScript, PHP or Perl, but want to learn Python because you've heard that it's much more fun and intuitive? Come find out why Google...
1
Add a comment...

Core Python books

Shared publicly  - 
 
Staying in tune with the latest tools and giving best practices on the day-to-day are two things that I love to impart on the book's blog.

A few months ago, I described how the new book has gotten an infusion of Google technologies: http://wescpy.blogspot.com/2012/04/integrating-google-apis-and.html

Two weeks ago, I challenged Python developers on tuples should (and should not) be used for: http://wescpy.blogspot.com/2012/05/tuples-arent-what-you-think-theyre-for.html
2
Add a comment...

Core Python books

Shared publicly  - 
 
Here is the cover for the new book!!
4
Patrick Harrison's profile photo
2 comments
 
Forbidden

You don't have permission to access /cpp3ev2/book3v2/ on this server.
Add a comment...
People
In their circles
1,550 people
Have them in circles
1,746 people
Frahaan Hussain's profile photo
Nilay Bagchi's profile photo
Jaehyeuk Oh's profile photo
阳翅翔's profile photo
Khalid Al-Ghamdi's profile photo
Michael Konovaliuk's profile photo
Marcin Karda's profile photo
Marco Belcastro-Bara's profile photo
Themis Stantzos's profile photo
Story
Tagline
The *standard* introductory and intermediate texts for Python programming
Introduction
Welcome to the Google+ page for all of the books in Prentice Hall's "Core Python" series of books. Here, I'll share the latest updates to the book, whether it be a new set of Errata to the writing experience to asking you all for your opinions on topics for the next book, this is the place to be... anything on Python or books is on-topic!

I also have a Python-flavored blog (link below) as well as links to the official Core Python home page and some Amazon links as well.

You are also welcome to add me, your author, to your circles too, but those posts will be more geared toward my work and personal life as opposed to Python books! http://plus.ly/wescpy