Created
November 24, 2012 16:06
-
-
Save Rembane/4140305 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env python | |
#-*- coding: UTF-8 -*- | |
# Ett enkelt Python-program ser oftast ut såhär på en *nix: | |
# Spara den som letest.py | |
print "Hje!" | |
# Körs enklast i terminal med följande sträng: | |
# python letest.py | |
############ | |
# 2. | |
# if-sats: | |
s = 'hest' # = är tilldelning | |
if s == 'hest': # == är jämförelse | |
print 'Klapa!' | |
if s == 'hest': #glöm inte ':' för t.ex if och while-block | |
print 'Klapa!' | |
else: | |
print 'Jak er inte hest' | |
if s == 'hest': | |
print 'Klapa!' | |
elif s == 'blirp': | |
print 'blirphest?' | |
else: | |
print 'Jak er inte hest' | |
snel = False # Booleska variabler: True, False | |
if s == 'hest': | |
if snel: | |
print '/o/' | |
else: | |
print 'Dum :(' | |
print 'Klapa!' | |
elif s == 'blirp': | |
print 'blirphest?' | |
else: | |
print 'Jak er inte hest' | |
# 3. | |
# Någon form av loopar: | |
# Pythons do-while-motsvarighet: | |
s = 'Klapa snel hest' | |
i = 0 | |
while True: | |
print s[i] # s[0] == 'K' | |
i += 1 #i är nu i plus 1, ökad med 1(här ett steg framåt i strängen) | |
if i >= len(s): | |
break | |
# While-loop: | |
s = 'Klapa snel hest' | |
i = 0 | |
while i < len(s): | |
print s[i] # s[0] == 'K' | |
i += 1 #i är nu i plus 1, ökad med 1(här ett steg framåt i strängen) | |
# for-loop: | |
for i in range(10): # Syntax: for <variable> in <iterable> | |
print i**2 | |
# Kolla efter nummer i en range: | |
# Säg 7: | |
>>> 7 in range(10) | |
True | |
inrange = 7 in range(10) | |
# range: | |
>>> range(10) | |
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9] | |
>>> range(1,10) | |
[1, 2, 3, 4, 5, 6, 7, 8, 9] | |
>>> range(1,10,2) | |
[1, 3, 5, 7, 9] | |
>>> range(1,20,3) | |
[1, 4, 7, 10, 13, 16, 19] | |
# List comprehensions (förmodligen överkurs) | |
[x/2 for x in range(100) if x % 2 == 0] | |
#om det (i rangen 0-99) går att dela jämnt, dela med 2 | |
li = [array med stuff] | |
[x for (i,x) in enumerate(li) if i % 2] | |
# and && or ||, not ! | |
>>> True and True | |
True | |
>>> True and False | |
False | |
>>> True or True | |
True | |
>>> True or False | |
True | |
>>> False or False | |
False | |
>>> not True | |
False | |
>>> True and not True == True and False | |
False # :D:D:D | |
>>> (True and not True) == (True and False) | |
True | |
# Mer överkurs här: http://en.wikipedia.org/wiki/De_Morgan%27s_laws | |
#boolean table http://docs.python.org/2/library/stdtypes.html#boolean-operations-and-or-not | |
# Unicode | |
# Unicode-helvete, tillfällig fix för dig själv: sätt #-*- coding: UTF-8 -*- längst upp i dokumentet | |
str() | |
unicode() # <- jobba alltid med de här | |
s = u'Räksmörgås' | |
>>> len(s) | |
10 | |
>>> len('Räksmörgås') | |
13 | |
# Attackexempel användarinmatning och lite unicode | |
s = raw_input('Mata in något bra:').strip() | |
type(s) # <type 'str'> | |
s2 = unicode(s, 'utf-8') | |
print s2.encode('utf-8') | |
# Den långe: http://docs.python.org/2/howto/unicode.html | |
# Slides: http://farmdev.com/talks/unicode/ | |
# Lite mer kortfattad: http://www.evanjones.ca/python-utf8.html | |
# Ge exempel på typer | |
# Python har följande typer: | |
# None, list, tuple, set, dict, boolean, int, float, str, unicode, function, class, o.s.v. | |
# http://docs.python.org/2/library/types.html | |
None # Samma som null, nil el dyl | |
# Mutable | |
list() | |
[] | |
[1,2,3,4,5] | |
[[1,2],[7,8]] | |
# Immutable | |
tuple() | |
(,) | |
(1,2,3,4,5) | |
# Mutable | |
set() | |
>>> set([1,2,3,3,3,5,7]) | |
set([1, 2, 3, 5, 7]) | |
# Mutable | |
dict() | |
dict(hest=12, a=12.5, y='fg'): | |
{} | |
d = {'hest': 12, 'a' : 12.5, 8 : 'fg'} | |
for (k,v) in d.items(): | |
print k,v | |
for k in d: | |
print k | |
print d[k] | |
dict([('a', 7), ('b', 8)]) | |
# Immutable | |
s = 'Hje!' | |
# Funktioner | |
def f(a1, s2=None): | |
print a1 | |
if s2: | |
print s2 | |
f2 = f | |
f2('Hje!', [1,2,3,4]) | |
def f3(s): | |
def f4(): | |
return s[1] | |
# http://www.saltycrane.com/blog/2008/01/how-to-use-args-and-kwargs-in-python/ | |
def omnomnom(*args, **kwargs): | |
print "I had an argument, but then I ate it :(" | |
for x in args: | |
print x | |
for k,v in kwargs.items(): | |
print k,v | |
omnomnom(1,2,3,4,5,a='blar', b='ond hest') | |
class C(object): | |
Konstruktor: | |
def __init__(self, arg1): | |
self.arg1 = arg1 | |
# Instansmetod: | |
def doublearg(self): | |
return self.arg1 * 2 | |
c = C(7) | |
# http://www.python.org/dev/peps/pep-0008/ | |
# Built-in Functions http://docs.python.org/2/library/functions.html | |
# Installera: | |
# Kör: sudo easy_install virtualenv | |
# http://www.virtualenv.org/en/latest/ <- docs för virtualenv | |
# mkdir kodlan121124 && cd kodlan121124 | |
# virtualenv kodlanenv | |
# source kodlanenv/bin/activate | |
# which python # Ska ligga i virtualenv | |
# pip install requests | |
# Skrapa från nätet eller hantering av json :) | |
# http://docs.python-requests.org/en/latest/ | |
# github_fetch.py | |
import json, requests | |
r = requests.get('https://api.github.com/repos/kennethreitz/requests/issues?state=closed') | |
data = json.loads(r.content) | |
print ', '.join([k for k in data[0]]) # Idiom | |
print ', '.join(data[0]) # Färre tecken, gör samma sak som raden ovanför | |
for d in data: | |
print d['title'] | |
# dir(r) <- visar alla medlemsvariabler och medlemsmetoder för r | |
# generatorer lols |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Den här är legendarisk: http://learnpythonthehardway.org/ och lite meckig. :)