pythonx

californiamandrillSoftware and s/w Development

Dec 13, 2013 (3 years and 8 months ago)

83 views

+

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


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 time


Thinking

about the problem


Experimenting

with solutions


Less time


Writing 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 write


Code 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 typing


Garbage collected


Multi
-
paradigm


Compiles to
bytecode


Exception based error handling


Extensible

+

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

+

Books

Ordered by technical complexity
-

notice anything?

+

Internet humor

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