1 / 14

Programming for Engineers in Python

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.

svein
Télécharger la présentation

Programming for Engineers in Python

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. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Programming for Engineers in Python Recitation 4

  2. Agenda • Sample problems • Hash functions & dictionaries (or next week) • Car simulation

  3. A function can be an argument defdo_twice(f): f() f() defprint_spam(): print'spam' >>> do_twice(print_spam) spam spam

  4. 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

  5. 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-

  6. 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)]

  7. 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

  8. 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

  9. 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

  10. 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

  11. 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

  12. 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

  13. 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!

  14. 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

More Related