Pippy

From OLPC
Revision as of 21:55, 22 August 2007 by 134.174.140.200 (talk) (→‎Sierpinski triangle: this definition is better, in case someone wants to play with the modulus number)
Jump to navigation Jump to search

Pippy is an activity for learning how to program with Python. It looks like this:

Pippy.png

Examples

Please add examples here, or modify the existing ones!

Math

Apples

Author: Madeleine Ball

print "Let's do math!"

print "On Monday I picked 22 apples. On Tuesday I picked 12."

print "Now I have: ", 22 + 12

print "My brother says he picked twice as many apples last week."

print "This means he picked: ", (22 + 12) * 2

print "I have 3 friends I would like to give apples."

print "One third of my apples is about: ", (22 + 12) / 3

print "Or, more exactly: ", (22.0 + 12.0) / 3.0

Pascal

Author: Madeleine Ball

# Pascal's triangle
lines = 8

vector = [1]

for i in range(1,lines+1):
  vector.insert(0,0)
  vector.append(0)

for i in range(0,lines):
  newvector = vector[:]
  for j in range(0,len(vector)-1):
    if (newvector[j] == 0):
      print "  ",
    else:
      print "%2d" % newvector[j],
    newvector[j] = vector[j-1] + vector[j+1]
  print
  vector = newvector[:]

Sierpinski triangle

Author: Madeleine Ball

Modification of the Pascal's triangle program to produce Sierpinski triangles.

size = 5
modulus = 2

lines = modulus**size

vector = [1]
for i in range(1,lines+1):
  vector.insert(0,0)
  vector.append(0)

for i in range(0,lines):
  newvector = vector[:]
#  print newvector
  for j in range(0,len(vector)-1):
    if (newvector[j] == 0):
      print " ",
    else:
      remainder = newvector[j] % modulus
      if (remainder == 0):
        print "O",
      else:
        print ".",
    newvector[j] = vector[j-1] + vector[j+1]
  print
  vector = newvector[:]

Times1

Author: Chris Ball

for i in range(1,13):
    print i, "x 4 =", (i*4)

Times2

Author: Chris Ball

number = input("Which times table? ")
for i in range(1,13):
    print i, "x", number, "=", i*number

Fibonacci Series

Author : Rafael Ortiz

a, b = 0, 1
while b < 1001:
     print b,
     a, b = b, a+b

Python

Function

Author: Chris Ball

def square(x): 
    print x * x

square(3)
square(4)

If

Author: Chris Ball

number = input("Enter a number: ")

if number > 5:
    print "Greater than 5"
elif number < 5:
    print "Less than 5"
else:
    print "Number is 5!"

Recursion

Author: Mel Chua

# Note this assumes you understand functions and if-else.
def countbackwards(number):
    print "I have the number", number
    if number > 0:
        print "Calling countbackwards again!"
        countbackwards(number-1)
    else:
        print "I am done counting"

number = input("Enter a number: ")
countbackwards(number):

String

Hello1

Author: Chris Ball

print "Hello everyone!"

Hello2

Author: Chris Ball

name = raw_input("Type your name here: ")
print "Hello " + name + "!"

Graphics

Jump

Author: C. Scott Ananian

# both of these functions should be in the 'basic' package or some such
def clear_scr():
    print '\x1B[H\x1B[J' # clear screen, the hard way.
def wait():
    import time
    time.sleep(0.1)

# jumping man!
# was having to escape the backslash which was rather unfortunate, 
# now using python's r" strings which were meant for regex's
# i didn't have to do that in C64 BASIC
for i in xrange(0,50):
    clear_scr()
    print r"\o/"
    print r"_|_"
    print r"   "
    wait()
    
    clear_scr()
    print r"_o_"
    print r" | "
    print r"/ \"
    wait()
    
    clear_scr()
    print r" o "
    print r"/|\"
    print r"| |"
    wait()
    
    clear_scr()
    print r"_o_"
    print r" | "
    print r"/ \"
    wait()