Detta skapar en PDF som du sedan kan skriva ut. Du kan även spara ner PDFn och skriva ut senare.
Titel på utskriften?
Tack för ditt bidrag
Om vi kan använda det så lägger vi upp det på sidan. Nedan en länk till ditt bidrag om du vill spara det.
Spara som ...
Du sparar ditt skript under detta namn och kan sedan hämta tillbaka det med samma namn.
Läs in
Läs in ett tidigare sparat skript. Obs att du enbart kan läsa in skript i den webbläsare där du sparade skriptet. Vill du kunna läsa in och spara skript oberoende av webbläsare, så behöver du skaffa ett login (enkelt och gratis).
Skicka in bidrag
Föreslå rubrik
Beskriv vad din kod gör
Skapa kort länk
Använd en kort URL för att skicka länk till koden via SMS eller epost. När mottagaren klickar på länken, så öppnas denna webbsida, med din kod och din text. Länken rensas bort automatiskt om den inte används.
Rubrik (frivilligt)
Beskrivning (frivilligt)
Länk (kopiera hela)
map(function, iterable, *iterables)
Applicerar en funktion på alla element i en lista och ger tillbaka en lista med svaren.
Funktion på alla element
T.ex. räknar alla bokstäver i listan.
bilar = ["volvo", "lada", "ferrari","bmw"]
def minFun(a):
return len(a)
x = map(minFun, bilar)
print(x)
# OBS vi måste omvandla det till lista för
# kunna se resultatet enkelt
print(list(x))
bilar = ["volvo", "lada", "ferrari","bmw"]
def minFun(a):
return len(a)
x = map(minFun, bilar)
print(x)
# OBS vi måste omvandla det till lista för
# kunna se resultatet enkelt
print(list(x))
Det första argumentet är alltid funktionen. Resterande argument matchar mot de eventuella parametrar som första funktionen behöver. Vi tar siffrorna i första listan och multiplicerar med andra listan och subtraheter slutligen siffrorna från 3:e listan.
På wikipedia finns Luhns algoritm presenterad och deras python -kod ser ut som nedan. En orgie i map! I korthet ger den ifrån sig True om personnumrets kontrollsiffra stämmer annars inte.
Luhn's algoritm på wikipedia ser väldigt klurig och kompakt ut. Jag förklarar den här nedan. Vad vi har att göra med är ett funktionellt synsätt på att lösa ett problem.
Okej, eftersom vi ska multiplicera varannant tal med 2 och varannat med 1, så kan vi tänka oss en lista med person-numrets siffror och en annan lista med 2 och 1 ömsom och sedan multiplicerar vi dem med varandra. Ok?
Vi skapar en lista 2,1,2,1,2,1 ...
print([2,1]*5)
print([2,1]*5)
Vi måste också göra om personnumret till en lista med nummer. Så, vi kan använda funktionen map för att applicera int på alla tecken i strängen, ett i taget såklart. Vi använder här list() för att tydligt se listan.
Nu har vi en lista med 2,1,2,1, ... och vi har en lista med våra nummer. Okej, då multiplicerar vi ihop dem. Funktionen map kan ta 3 argument. Det första är funktionen vi vill köra på de 2 andra listorna. Om funktionen har 2 parametrar (i detta fall x och y), så plockar map x från det andra argumentet och y från den tredje argumentet. Dvs map multiplicerar - tal för tal - siffrorna i lista 2 med siffrorna i lista 3.
Lambda är en funktion som tar 2 argument (den ena och andra listan) och tal för tal multiplicerar ihop dem.
Nu måste vi snegla lite på hur algoritmen skulle jobba. Om vi tar 8 * 2 = 16 som exempel. Då skulle ju 16 hanteras som 1+6 = 7. Titta ovan på hur algoritmen fungerar om du tappat bort detta. Vi kan göra detta stunt, separera siffrorna och summera dem, i ett svep.
Om vi har 16 t.ex., så kan vi få fram 6:an genom att ta 16%10 och vi kan få fram 1:an genom att dela med 10 och plocka heltalet. Dvs vi får summan 1+6 och vi gör 10%10 + int(16/10) = 7. Är siffran mindre än 10, t.ex. 9 då kommer 9%10 bli 9 och int(9/10) bli 0 dvs 9+0=9. Alla siffror under 10 blir siffran själv. Så vårt trix arbetar bara på siffror större än 9, t.ex. 11 kommer bli 1+1 = 2 eller 13 kommer bli 1+3=4.
Jag lägger både före och efter här nedan så du kan jämföra resultatet.