1 / 18

CS1001 . Python.

CS1001 . Python. November 14 th , 2011. Scripting languages. Scripting languages foster an exploratory , incremental approach to writing code Historically interpreted Favor your time and energy over the CPU’s Include libraries for common tasks Examples

curry
Download Presentation

CS1001 . 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. CS1001. Python. November 14th, 2011

  2. Scripting languages • Scripting languages foster an exploratory, incrementalapproach to writing code • Historically interpreted • Favor your time and energy over the CPU’s • Include libraries for common tasks • Examples • AWK [1977], Perl [1987], Python [1991]

  3. Style Java: public class HelloWorld { public static void main(String[] args) {System.out.println("Hello world");}}Python:print “hello world” Perl:print “hello world\n”; AWK: BEGIN { print "Hello, world!" }

  4. Philosophy • More time • Thinking about the problem • Experimenting with solutions • Less time • Writing code

  5. Perl • Larry Wall, 1987 (linguist) • Report writing (text processing!) • “There is more than one way to do it.” • What was text processing essential for in the early 90s?

  6. Websites per year (log scale) Source: http://www.useit.com/alertbox/web-growth.html

  7. Which is more important? • Code should be easy to write • Code should be easy to read (This is a false dichotomy)

  8. Obfuscated code contest `$=`;$_=\%!;($_)=/(.)/;$==++$|;($.,$/,$,,$\,$",$;,$^,$#,$~,$*,$:,@%)=($!=~/(.)(.).(.)(.)(.)(.)..(.)(.)(.)..(.)......(.)/,$"),$=++;$.++;$.++; $_++;$_++;($_,$\,$,)=($~.$"."$;$/$%[$?]$_$\$,$:$%[$?]",$"&$~,$#,);$,++;$,++;$^|=$";`$_$\$,$/$:$;$~$*$%[$?]$.$~$*${#}$%[$?]$;$\$"$^$~$*.>&$=` Perl

  9. Obfuscated code contest `$=`;$_=\%!;($_)=/(.)/;$==++$|;($.,$/,$,,$\,$",$;,$^,$#,$~,$*,$:,@%)=($!=~/(.)(.).(.)(.)(.)(.)..(.)(.)(.)..(.)......(.)/,$"),$=++;$.++;$.++; $_++;$_++;($_,$\,$,)=($~.$"."$;$/$%[$?]$_$\$,$:$%[$?]",$"&$~,$#,);$,++;$,++;$^|=$";`$_$\$,$/$:$;$~$*$%[$?]$.$~$*${#}$%[$?]$;$\$"$^$~$*.>&$=` • $ Just another Perl hacker. Perl

  10. Obfuscated code contest C

  11. Obfuscated code contest C

  12. Python • Emphasizes readability • “There should be one – and preferably only one – way to do it.” • Large standard library (batteries included) • Cross platform and open source

  13. Parsing text files (and reading them back!)

  14. Getting the weather http://weather.yahooapis.com/forecastrss?w=2459115

  15. Technically • Dynamic typing • Garbage collected • Multi-paradigm • Compiles to bytecode • Exception based error handling • Extensible

  16. Dynamic typing pi = 3.1459 print pi pi= "I'dlovetohave " + str(pi) + " pies" printpi print"Infact, I'dlikeonemore" pi = pi + 1 # TypeError: cannotconcatenate 'str' and 'int' objects printpi

  17. Books Ordered by technical complexity - notice anything?

  18. Internet humor Source: http://xkcd.com/534/

More Related