CS1001 . Python.

Post on 22-Feb-2016

56 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

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 - PowerPoint PPT Presentation

Transcript

+

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

AWK [1977], Perl [1987], Python [1991]

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

+Philosophy

More timeThinking about the problemExperimenting with solutions

Less timeWriting code

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

+Websites per year (log scale)

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

+Which is more important?

Code should be easy to writeCode should be easy to read(This is a false dichotomy)

+Obfuscated code contest

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

Perl

+Obfuscated code contest

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

$ Just another Perl hacker.

Perl

+Obfuscated code contest

C

+Obfuscated code contest

C

+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

+Parsing text files (and reading them back!)

+Getting the weather

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

+Technically

Dynamic typingGarbage collectedMulti-paradigmCompiles to bytecodeException based error handlingExtensible

+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

+BooksOrdered by technical complexity - notice anything?

+Internet humor

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

top related