programming for engineers in python
Download
Skip this Video
Download Presentation
Programming for Engineers in Python

Loading in 2 Seconds...

play fullscreen
1 / 14

Programming for Engineers in Python - PowerPoint PPT Presentation


  • 54 Views
  • Uploaded on

Programming for Engineers in Python. Recitation 4. Agenda. Sample problems Hash functions & dictionaries (or next week) Car simulation. A function can be an argument. def do_twice (f): f () f() def print_spam (): print \'spam\' >>> do_twice ( print_spam ) spam spam.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' Programming for Engineers in Python' - svein


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
agenda
Agenda
  • Sample problems
  • Hash functions & dictionaries (or next week)
  • Car simulation
a function can be an argument
A function can be an argument

defdo_twice(f):

f()

f()

defprint_spam():

print\'spam\'

>>> do_twice(print_spam)

spam

spam

fermat s last theorem
Fermat’s last theorem
  • Fermat’s famous theorem claims that for any n>2, there are no three positive integers a, b, and c such that:
  • Let’s check it!

defcheck_fermat(a,b,c,n):

if n>2 and a**n + b**n == c**n:

print"Fermat was wrong!"

else:

print"No, that doesn\'t work"

Pierre de Fermat

1601-1665

fermat s last theorem1
Fermat’s last theorem

>>> check_fermat(3,4,5,2)

No, that doesn\'t work

>>> check_fermat(3,4,5,3)

No, that doesn\'t work

  • Dirty shortcut since 1995:

defcheck_fermat(a,b,c,n):

print"Wiles proved it doesn’t work"

Sir Andrew John Wiles

1953-

cumulative sum
Cumulative sum
  • For a given list A we will return a list B such that

B[n] = A[0]+A[1]+…A[n]

  • Take 1:

defcumulative_sum(lst):

summ = [ lst[0] ] * len(lst)

for i inrange(1, len(lst)):

summ[i] = summ[i-1] + lst[i]

returnsumm

  • Take 2:

defcumulative_sum(lst):

return [sum(lst[0:n]) for n inrange(1, len(lst)+1)]

estimating e by it s taylor expansion
Estimating e by it’s Taylor expansion

frommath import factorial, e

term = 1

summ= 0

k = 0

whileterm > 1e-15:

term = 1.0/factorial(k)

summ+= term

k += 1

print"Python e:", e

print“Taylor’s e:", summ

print “Iterations:”, k

Brook Taylor, 1685-1731

estimating by the basel problem
Estimating π by the Basel problem

frommath import factorial, pi, sqrt

term = 1

summ= 0

k = 1

whileterm > 1e-15:

term = 1.0/k**2

summ+= term

k += 1

summ = sqrt(summ*6.0)

print"Python pi:", pi

print“Euler’s pi:", summ

print “Iterations:”, k

Leonard Euler,

1707-1783

ramanujan s estimation optional
Ramanujan’sπ estimation (optional)

frommath import factorial, pi

term = 1

summ= 0

k = 0

whileterm > 1e-15:

term = factorial(4.0*k) / factorial(k)**4.0

term *= (1103.0+26390.0*k) / 396.0**(4.0*k)

summ += term

k += 1

summ =1.0/(summ * 2.0*2.0**0.5 / 9801.0)

print"Python Pi:", pi

print"Ramanujan Pi:", summ

print “Iterations:”, k

SrinivasaRamanujan,

1887-1920

triple double word
Triple Double Word
  • We want to find a word that has three double letters in it, like aabbcc (which is not a word!)
  • Almost qualifiers:
    • Committee
    • Mississippi
  • Write a function to check if a word qualifies
  • Write a function that reads a text file and checks all the words
  • Code: http://www.greenteapress.com/thinkpython/code/cartalk.py
  • Corpus: http://www.csie.ntu.edu.tw/~pangfeng/Fortran%20examples/words.txt
pygame
PyGame
  • A set of Python modules designed for writing computer games
  • Download & install:

http://pygame.org/ftp/pygame-1.9.2a0.win32-py2.7.msi

car game
Car game
  • Control a car moving on the screen
  • YouTube demo: http://www.youtube.com/watch?v=DMOj3HpjemE
  • Code: https://gist.github.com/1372753 or in car.py
  • Car controlled by

arrows

  • Honk with Enter
  • Exit with ESC
todo list
ToDo List:
  • Fix stirring problem
  • Honk by pressing space
  • Car will go from the bottom to top and from one side to the other (instead of getting stuck)
  • Switch to turtle!
2 players car game
2 players car game
  • Collision avoidance simulator:
    • When the cars are too close one of them honks
    • Players need to maneuver the cars to avoid honks
  • Code: https://gist.github.com/1380291 or cars.py
  • Red car controlled by arrows
  • Blue car controlled by z, x, c, s
ad