Upload
lukasz-dynowski
View
632
Download
3
Tags:
Embed Size (px)
DESCRIPTION
Presentation reviles the syntax solution for common encountered programming challenges, gives insight in to python datatypes, and explains core design principles behind the program
Citation preview
SHOCKING
Reverse String – JavaScriptvar s = "This is the simple text object";
var r = "";for (var i = s.length - 1; i >= 0 ;
i--) {r += s[i];
}function reverse (s) {
return (s === '''') ? : reverse(s.substr(1)) + s.charAt(0);}
Reverse String – Java
String s = "This is the test";System.out.println(new StringBuilder(s).reverse().toString());
Reverse String – PHP
echo strrev("Hello World");
Reverse String – Python
s[::-1]
Find element in array
var zipCodes = (['90001','90002','90003']);
if ( zipCodes.indexOf('9005') > -1 ) { console.log("found") ;} else {
console.log("not Found");}
JavaScript
Find element in array
HashMap<Integer,String> cities = new HashMap<Integer, String>();cities.put(9000,"Gent");cities.put(9400,"Aalst");
String city = cities.get(9400);System.out.println(city);
Java
Find element in arrayPHP
$array = array(0 => 'blue', 1 => 'red', 2 => 'green', 3 => 'red');
$key = array_search('green', $array); // $key = 2;$key = array_search('red', $array); // $key = 1;
$os = array("Mac", "NT", "Irix", "Linux");
if (in_array("Irix", $os)) { echo "Got Irix";}
Find element in array
element in data
Python
Design Principles• Borrow ideas whenever it make sense• As simple as possible , not simpler (Einstein)• Do one thing well (Unix)• Don’t fret abut performance (fix it later)• Don’t bother user with details• Error shouldn’t pass silently
Numbers
i = 45f = 3.14l = 23Lc = 2 + 4j
oct(78)hex(78)bin(-3)
a=int('01100000',2)b=int('00100110',2)bin(a&b) # '0b100000'bin(a|b)# '0b1100110'bin(a^b) # '0b1000110'
Data Structure - String
s = " The snake is LONG, 7 miles "
len(s)s.count("is")s.endswith("miles ")s.swapcase()s.strip()s.index("7", 5, 22)
Operations:
"A" + "b"
"snake" in s
"kilo meters" not in s / not "kilo meters" in s
s * 2
Data Structure – List (Array)
l = [ 3, 4, 0, 0, 5, 2, 1]k = [ 1, 2, 3, 4,5]
len(l)l.count(0)l.remove(0)l.index(4)l.append(55)
Operations:k + ll * 23 not in k / not 3 in k
0 1 2 3 4 5+---+---+---+---+---+---+| a | b | c | d | e | f |+---+---+---+---+---+---+ -6 -5 -4 -3 -2 -1
Data Structure – Dictionary http://svn.python.org/view/python/trunk/Objects/dictobject.c?view=markup&pathrev=53656a = dict(one=1, two=2, three=3)b = {'one': 1, 'two': 2, 'three': 3}c = dict(zip(['one', 'two', 'three'], [1, 2, 3]))d = dict([('two', 2), ('one', 1), ('three', 3)])e = dict({'three': 3, 'one': 1, 'two': 2})
>>> a == b == c == d == e
d.items()d.keys()d.values()
Operations:
d.update(d2)
one in b
1 in a.values()
Data Structure – Tuple (Immutable)
t = ("a", "b", "c", "d")
t.count()t.index()
Operations:t * 2t + t"a" in t "a" not in t
Data Structure – Set (Immutable)
a = set([1,2,3]) b = set([2,3,4])
a.union(b)a.intersection(b)a.difference(b)
Operations:1 in s5 not in s
Files / Picklef = open("D:/foo.txt", "wb")
f.write("My python is longer than yours. ")
f.close()
import pickle
output = [1,2 "a", "b", "c"]
f = open('data.pk’, 'wb')
pickle.dump(output, f)
f.close()
pickle.load(open('data.pk', 'rb'))
Comprehension / Generator (Haskell)
simplifies process of iterationswords = 'The quick brown fox jumps over the lazy dog'.split()
[[word.upper(), word.lower(), len(word)] for word in words]
matrix = [[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]]
[[row[i] for row in matrix] for i in range(4)] # list comprehension
g = ([ row[i] for row in matrix ] for i in range(4)) # generator
Functions and F.Programming
def f1():return "function One!"
def f2():return "function Two!"
d = {"one" : f1, "two" : f2}
d["one"]()d["two"]()
FUNCTIONAL PROGRAMMINGIterators
http://www.youtube.com/watch?v=Ta1bAMOMFOIhttp://ua.pycon.org/static/talks/kachayev/#/28
Your Father:x = [1, 2, 3]
y = ["a", "b", "c"]
[(i,j) for i in x for j in y]
The Dude:x = [1, 2, 3]
y = ["a", "b", "c"]
t = zip(x,y)
dict(zip(x,y))
Iterators:it = iter(t)
dict(it)
FUNCTIONAL PROGRAMMING (LiSP)
"Lazy programmer is good programmer“ map(), filter(), reduce(), enumerate()
def up(x): return
x.upper()
map(up, ["a", "test"])
def even(x): if (x % 2) == 0:
return x
filter(even, [1, 2, 3, 4, 5, 6, 7, 8])
import operator
reduce(operator.add, [1,2,3])
for item in enumerate(["a", "b","c"]) print item
Lamb-daaaaahttp://www.youtube.com/watch?v=_WZwp16c4vk
FUNCTIONAL PROGRAMMINGhttp://ua.pycon.org/static/talks/kachayev/#/28
f = lambda x: x * 2f(2)
g = lambda x, y: x + yg(2,2)
lambs = [lambda x: x ** 2,
lambda x: x ** 3, lambda x: x ** 4]
for f in lambs: f(3)
Lambda + F.P. Functionsmap(lambda x: x.upper(), ["a", "test"])
filter(lambda x: (x % 2) == 0, [1,2,3,4,5,6,7,8])
[x for x in 'abracadabra' if x not in 'abc']{x for x in 'abracadabra' if x not in 'abc'}
sorted(d.items(), key=lambda i: i[1])pairs = [(1, 'one'), (2, 'two'), (3, 'three'), (4, 'four')]pairs.sort(key=lambda pair: pair[1])