Top Banner
+ CS1001. Python. November 14 th , 2011
18

+ CS1001. Python. November 14 th, 2011. + Scripting languages Scripting languages foster an exploratory, incremental approach to writing code Historically.

Mar 30, 2015

Download

Documents

Lina Pinkston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: + CS1001. Python. November 14 th, 2011. + Scripting languages Scripting languages foster an exploratory, incremental approach to writing code Historically.

+

CS1001. Python.November 14th, 2011

Page 2: + CS1001. Python. November 14 th, 2011. + Scripting languages Scripting languages foster an exploratory, incremental approach to writing code Historically.

+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 AWK [1977], Perl [1987], Python [1991]

Page 3: + CS1001. Python. November 14 th, 2011. + Scripting languages Scripting languages foster an exploratory, incremental approach to writing code Historically.

+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!" }

Page 4: + CS1001. Python. November 14 th, 2011. + Scripting languages Scripting languages foster an exploratory, incremental approach to writing code Historically.

+Philosophy

More timeThinking about the problemExperimenting with solutions

Less timeWriting code

Page 5: + CS1001. Python. November 14 th, 2011. + Scripting languages Scripting languages foster an exploratory, incremental approach to writing code Historically.

+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?

Page 6: + CS1001. Python. November 14 th, 2011. + Scripting languages Scripting languages foster an exploratory, incremental approach to writing code Historically.

+Websites per year (log scale)

Source: http://www.useit.com/alertbox/web-growth.html

Page 7: + CS1001. Python. November 14 th, 2011. + Scripting languages Scripting languages foster an exploratory, incremental approach to writing code Historically.

+Which is more important?

Code should be easy to write

Code should be easy to read

(This is a false dichotomy)

Page 8: + CS1001. Python. November 14 th, 2011. + Scripting languages Scripting languages foster an exploratory, incremental approach to writing code Historically.

+Obfuscated code contest

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

Perl

Page 9: + CS1001. Python. November 14 th, 2011. + Scripting languages Scripting languages foster an exploratory, incremental approach to writing code Historically.

+Obfuscated code contest

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

$ Just another Perl hacker.

Perl

Page 10: + CS1001. Python. November 14 th, 2011. + Scripting languages Scripting languages foster an exploratory, incremental approach to writing code Historically.

+Obfuscated code contest

C

Page 11: + CS1001. Python. November 14 th, 2011. + Scripting languages Scripting languages foster an exploratory, incremental approach to writing code Historically.

+Obfuscated code contest

C

Page 12: + CS1001. Python. November 14 th, 2011. + Scripting languages Scripting languages foster an exploratory, incremental approach to writing code Historically.

+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

Page 13: + CS1001. Python. November 14 th, 2011. + Scripting languages Scripting languages foster an exploratory, incremental approach to writing code Historically.

+Parsing text files (and reading them back!)

Page 14: + CS1001. Python. November 14 th, 2011. + Scripting languages Scripting languages foster an exploratory, incremental approach to writing code Historically.

+Getting the weather

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

Page 15: + CS1001. Python. November 14 th, 2011. + Scripting languages Scripting languages foster an exploratory, incremental approach to writing code Historically.

+Technically

Dynamic typing

Garbage collected

Multi-paradigm

Compiles to bytecode

Exception based error handling

Extensible

Page 16: + CS1001. Python. November 14 th, 2011. + Scripting languages Scripting languages foster an exploratory, incremental approach to writing code Historically.

+Dynamic typing

pi = 3.1459

print pi

pi = "I'd love to have " + str(pi) + " pies"

print pi

print "In fact, I'd like one more"

pi = pi + 1 # TypeError: cannot concatenate 'str' and 'int' objects

print pi

Page 17: + CS1001. Python. November 14 th, 2011. + Scripting languages Scripting languages foster an exploratory, incremental approach to writing code Historically.

+Books

Ordered by technical complexity - notice anything?

Page 18: + CS1001. Python. November 14 th, 2011. + Scripting languages Scripting languages foster an exploratory, incremental approach to writing code Historically.

+Internet humor

Source: http://xkcd.com/534/