Webbservern.se

Användararea  [inloggning krävs]

Ansökan

Om servern

 Användarnas www-sidor

 Loggbok

 Nyhetsbrev

 Om webbservern.se

 Senast ändrade filer

 Webbserverinfo (CV)

 Villkor

Webbapplikationer

 MD5/Jämför filer

 Väder

 Webbkamera

Handboken

 Backup
 Bandbredd
 CVS
 Databas (MySQL)
 E-post
 E-postlistor
 Lösenord
 Programmering
 Programvara
 Quota
 SFTP och SCP
 SSH
 VNC
 WWW


sök på webbservern.se

Handboken / Programmering / Python

Allmänt om Python

Python är ett portabelt, interpreterande och objektorienterat språk med alla de finesser och möjligheter som hör till de stora, moderna och välutvecklade programmeringsspråken.

Denna guides syfte

Denna guide är förstås långt ifrån heltäckande. Avsikten är snarare att ge ett smakprov och så pass mycket information att det går att komma igång lite grand och leta mer information på egen hand.

Utvecklingsmiljö

Emacs är den rekommenderade editorn för Python på webbservern. Om man vill använda en grafisk utvecklingsmiljö så går det även att använda Eclipse som finns installerat, men det är nog klokare att köra detta lokalt istället. Eclipse är en generell utvecklingsmiljö som bland annat stöder Python (genom en installation av PyDev som redan är utförd). Lär dig använda Eclipse och du slipper byta utvecklingsmiljö när du växlar mellan olika programmeringsspråk. Om du vill köra Eclipse från webbservern så startar Eclipse genom att skriva /usr/local/eclipse/eclipse. Se till att ha X11-forwarding aktiverat i din klient och en X-server igång lokalt. Om du kör Linux eller motsvarande ska detta inte vara något problem, annars får du installera en X-server för ditt operativsystem.

Grunderna

Det finns ett antal konstruktioner som man förväntar sig av ett modernt högnivåprogrammeringsspråk; till exempel variabler, flödesstyrning, upprepning med loopar, funktioner, felhantering och kanske även möjligheter till objektorienterad programmering. Lite av detta kommer att gås igenom nedan.

Variabler

I Python behöver man inte deklarera variabler innan de används. Inte heller behöver man ange vilken datatyp variabeln ska ha. Python gör intelligenta gissningar angående datatypen när du tilldelar variabeln ett värde. Man säger att Python är "dynamically typed" (i motsats till exempelvis Java som är "statically typed"). Statiskt eller dynamiskt i detta sammanhang kan vara en källa till en diskussion, vilket det också är. Om jag ska säga något kort och personligt om detta så vill jag påstå att ett dynamiskt typat språk är smidigt i de flesta fall eftersom det eliminerar ett bökigt moment men att det, speciellt i större projekt, kan vara praktiskt med ett statiskt typat språk som ser till att man deklarerar snyggt och prydligt och därmed inte råkar ut för larviga fel orsakade av ännu larvigare stavfel av variabelnamn.

Indentering

Python är ett språk där indenteringen är viktig. Det är indenteringen som visar på hur olika satser hör samman i block. I exempelvis PHP används måsvingar, { och }, för att åstadkomma denna funktion men i Python används alltså enbart indragen, indenteringarna.

Villkorsstyrning

Vi hoppar raskt in i ett exempel med en simpel if-sats för att illustrera både indenteringens viktiga roll i Python samt även enkel villkorsstyrning:

if x < 50:
  print "x är mindre än 50."
elif x = 50:
  print "x är lika med 50."
else:
  print "x är mer än 50."

Loopar

Loopar går under flera benämningar, slingor är ett annat namn. Det handlar om att upprepa en process och även kunna bestämma när den ska upphöra. För att åstadkomma detta finns det som sig bör flera olika tillvägagångssätt. Nedan visas två exempel som jag tror illustrerar detta väl.

For-loop

for x in ['apa','hund','katt']:
  print x

While-loop

while x<=4:
  print "x är mindre än eller lika med 4".

Funktioner

I varje språk med självaktning går det att definiera egna funktioner. Givetvis går det fint i Python. Exempel är bra.

def bigger(x, y):
  if x < y:
    print "x är mindre än y".
  elif x == y:
    print "x är lika stor som y".
  else:
    print "x är större än y".

Vi ser att funktionen ovan heter "bigger" och tar två argument, x och y. Dessa variabler, x och y, antas vara numeriska värden som kan användas som operander vid "mindre än" (<) och "lika med"-operationer.

Vi tar ett exempel till för att visa på användandet av "return".

def isBigger(x, y):
  if x < y:
    return True
  else:
    return False

Om x är mindre än y kommer funktionen "isBigger" att returnera True (1) och lämna funktionen. I annat fall kommer funktionen att returnera False (0) och lämna funktionen.

Att skicka argument till ditt Pythonskript

För att skicka argument till ditt Pythonskript via kommandoraden på detta vis:

./mittPythonSkript argument1 argument2

...så behöver du importera "sys" och veta hur du ska referera till dina argument. Ett exempel illusterar ofta väl.

import sys

#Skriv ut första argumentet, argument1
print sys.arvg[0]

#Skriv ut andra parametern, argument2
print sys.arvg[1]

Läsa/skriva till fil

Många gånger är det nödvändigt och/eller smidigt att läsa/skriva till sekundärminne. Det är inte onödigt komplicerat i Python:

Vi börjar med ett exempel där vi läser innehållet i en fil och skriver ut detsamma.

fil = open('infil.txt')
fil.readlines()
fil.close()

Ett exempel som visar hur man skriver till en fil.

fil = open('utfil.txt', 'w')
fil.write('Detta skrivs till filen utfil.txt')
fil.close()

Ett större exempel

Som avslutning ska vi titta på ett komplett, men inte särskilt komplicerat, exempel.

Programmet nedan räknar ut en cirkels radie och passar på att introducera lite nya grejer.

#!/bin/env python
# Enkelt program som givet en cirkels radie beräknar dess area.

from math import pi,pow

def cirkelarea(radie):
  area = pow(radie,2)*pi
  return area

cirkelnsRadie = input('Hur stor är cirkelns radie? Svara i centimeter. ')

print 'Cirkelns area: ' + str(round(cirkelarea(cirkelnsRadie),2)) + ' cm^2.'

I exemplet ovan ser vi en del nytt. På första raden ser vi hur vi refererar till Pythontolken genom /bin/env. Givetvis går det även att explicit peka på Pythontolken men det är bättre att låta env kolla upp den.

Vidare noterar vi att man kan importera enskilda funktioner från andra moduler genom import-kommandot.

Med hjälp av input kan vi ta in numeriska värden från användaren. För att ta in en sträng används istället raw_input.

I den sista raden konkateneras tre strängar ihop och skrivs ut. Den mellersta strängen typomvandlas från en float till en sträng för att det ska gå att konkatenera ihop dem.

Att gå vidare

Vi har i denna guide bara nosat på vad som kan göras med Python. Det finns mycket mer att upptäcka, till exempel felhantering, datastrukturer och hur Python underlättar det objektorienterade tänkandet. Eventuellt kommer denna guide att byggas ut i framtiden men i nuläget får du nöja dig detta. Det finns gott om mer utförliga guider på nätet:

--------------
Den här filen ändrades senast Mittwoch, 07-Jun-2023 15:24:04 CEST. Exportera till pdf
Respons i någon form mailas till webmaster at webbservern.se