Skip to content

Instantly share code, notes, and snippets.

@Rembane
Created November 24, 2012 16:06
Show Gist options
  • Save Rembane/4140305 to your computer and use it in GitHub Desktop.
Save Rembane/4140305 to your computer and use it in GitHub Desktop.
#!/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
@Rembane
Copy link
Author

Rembane commented Nov 24, 2012

Den här är legendarisk: http://learnpythonthehardway.org/ och lite meckig. :)

@Rembane
Copy link
Author

Rembane commented Nov 25, 2012

Ett kodexempel i Python: http://www.agillo.net/loving-python/

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment