$ python3 pythonfil.py
$ ./pythonfil.py
go to
-programmering)¶label .fun;
print("Fun output 1")
print("Fun output 2")
print("Output 1")
print("Output 2")
goto .fun;
print("Output 3")
print("The End")
def fun():
print("Fun output 1")
print("Fun output 2")
print("Output 1")
print("Output 2")
fun()
print("Output 3")
print("The End")
Output 1 Output 2 Fun output 1 Fun output 2 Output 3 The End
def triangle_area(height, width):
area = (height*width)/2
return area
triangle_area(7, 4)
14.0
print("Första raden")
def calc_double(value):
new_value = value * 2
print("värdet på value:", value)
print("värdet på new_value:", new_value)
return new_value
def main():
print("Nu körs main()")
value = 5
double = calc_double(value)
print("Dubbla värdet är", double)
main()
print("Nu är programmet slut!")
Första raden Nu körs main() värdet på value: 5 värdet på new_value: 10 Dubbla värdet är 10 Nu är programmet slut!
def calc_double(value):
new_value = value * 2
print("värdet på value:", value)
print("värdet på new_value:", new_value)
return new_value
value = 10
print("värdet på value:", value)
calc_double(value)
värdet på value: 10 värdet på value: 10 värdet på new_value: 20
20
print("värdet på value:", value)
värdet på value: 10
try:
print("värdet på new_value:", new_value)
except NameError as e:
print(e)
name 'new_value' is not defined
def plot_prices(degree):
import numpy as np
import matplotlib.pyplot as plt
x = [0, 12, 18, 65]
y = [0, 20, 30, 15]
poly = np.polyfit(x, y, deg=degree)
polyval = np.polyval(poly, range(100))
fig, ax = plt.subplots()
ax.plot(polyval, label=f'{degree} degree polynomial')
ax.legend()
return polyval
prices = plot_prices(3)
prices[18]
30.00000000000001
if
-satsen¶if
.if boolean:
# Code block that runs if boolean is True
bool
med exakt två möjliga värden, True
eller False
.==
, !=
, <
, >
, <=
, >=
print(1 != 2)
True
def calculate_price(rider_age):
price = 30
if rider_age < 12:
price = 0
return price
print(calculate_price(37))
30
else
-klausulen¶if
-sats.if boolean:
# Code that runs if boolean is True
else:
# Code that runs if boolean is False
def calculate_price(rider_age):
if rider_age < 12:
price = 0
else:
price = 30
return price
print(calculate_price(37))
30
if
-satser, dvs if
-satser inne i andra if
-satser.elif
-klausuler.if
-satser¶if boolean_a:
# Code that runs if boolean_a is True
else:
if boolean_b:
# Code that runs if boolean_a is False but boolean_b is True
else:
# Code that runs if both booleans are False
if
-satser för vårt exempel¶def calculate_price(rider_age):
if rider_age < 12:
price = 0
else:
if rider_age < 18:
price = 20
else:
if rider_age < 65:
price = 30
else:
price = 15
return price
print(calculate_price(100))
15
elif
-klausulen¶if
-satser med flera olika fall.if
-sats i else
-klausulen.if boolean_a:
# Code that runs if boolean_a is True
elif boolean_b:
# Code that runs if boolean_a is False but boolean_b is True
else:
# Code that runs if both booleans are False
elif
-klausuler för vårt exempel¶def calculate_price(rider_age):
if rider_age < 12:
price = 0
elif rider_age < 18:
price = 20
elif rider_age < 65:
price = 30
else:
price = 15
return price
print(calculate_price(100))
15
and
: True
om båda operander är sannaor
: True
om minst en av operanderna är sannanot
: True
om operanden är False
, False
om operanden är True
def tell_me_about_the_weather(temp, precipitation):
if temp < 0 and precipitation:
print("I think it's snowing.")
if temp < 0 and not precipitation:
print("At least it's not snowing.")
if temp < -100 or temp > 100:
print("I think something is very wrong.")
tell_me_about_the_weather(-6.2, False)
At least it's not snowing.
str
my_name = "Pikachu"
print(my_name[0])
P
print(my_name[1:3])
ik
print("Mr. " + my_name)
Mr. Pikachu
print(my_name + "Mr. ")
PikachuMr.
list
.candy1 = ["chocolate", "jellybeans", "fudge", "toffee"]
print(candy1[0])
chocolate
print(candy1[1:3])
['jellybeans', 'fudge']
print(["licorice"] + candy1)
['licorice', 'chocolate', 'jellybeans', 'fudge', 'toffee']
print(candy1 + ["licorice"])
['chocolate', 'jellybeans', 'fudge', 'toffee', 'licorice']
spam = "EXEMPEL"
"EXEMPEL"
och sparar den i variabeln spam
spam
lagras på minnesplats 0x0007
spam
'EXEMPEL'
spam
får vi sekvensen som börjar på minnesadressen 0x0007
och är 7 tecken långspam[0]
'E'
spam[1]
'X'
spam[2:5]
'EMP'
while
-satsenif
-sats, men blocket upprepas så länge som villkoret är uppfyllt.for
-satsenwhile
-loopen¶while
-loopen upprepas tills while
-satsens villkor blir falskt. while boolean:
# Code to repeat
count = 0
while count <= 10:
print(count)
count += 1
0 1 2 3 4 5 6 7 8 9 10
# evig loop
x = 0
while x <= 10:
print("En dator blir aldrig uttråkad.")
print(x)
break
användas för att avbryta en loop (hela loopen). continue
används för att hoppa över resten av loop-blocket och börja om igen från början (nästa iteration)count = 0
while count < 10:
if count == 3 or count == 5:
count += 1
continue
if count > 7:
print("Nu orkar jag inte mer." + "(count: " + str(count) + ")")
break
elif count > 3:
print("Är vi framme snart?" + "(count: " + str(count) + ")")
elif count > 4:
print("Har vi kört vilse?" + "(count: " + str(count) + ")")
else:
print("Det här är roligt!" + "(count: " + str(count) + ")")
count += 1
Det här är roligt!(count: 0) Det här är roligt!(count: 1) Det här är roligt!(count: 2) Är vi framme snart?(count: 4) Är vi framme snart?(count: 6) Är vi framme snart?(count: 7) Nu orkar jag inte mer.(count: 8)
while
-loop¶names = ["Ada", "Beata", "Cecilia", "Diana"]
index = 0
while index < len(names):
print(names[index])
index += 1
Ada Beata Cecilia Diana
def print_all_values(values):
index = 0
while index < len(values):
print(values[index])
index += 1
namn = ["Ada", "Beata", "Cecilia", "Diana"]
print_all_values(namn)
Ada Beata Cecilia Diana
print_all_values(["Hej", "Hopp"])
Hej Hopp
for
-loopen¶for element in a_sequence:
# Code to run for every element in a_sequence
for
-loopen loopar över en sekvens.element
det aktuella värdet i sekvensen.for
¶names = ["Ada", "Beata", "Cecilia", "Diana"]
for name in names:
print(name)
Ada Beata Cecilia Diana
for
¶word = "fantastic"
for char in word:
print(char)
f a n t a s t i c
word = "fantastic"
new_word = ""
for char in word:
if char == "a":
new_word += "å"
elif char == "s":
new_word += "l"
else:
new_word += char
print(new_word)
fåntåltic
range
¶range(stop)
: Börja från 0, öka med 1 och fortsätt generera heltal så länge som heltalet är mindre än stop
range(start, stop)
: Börja från start
, öka med 1 och fortsätt generera heltal så länge som heltalet är mindre än stop
range(start, stop, step)
: Börja från start
, öka med step
och fortsätt att generera heltal så länge som heltalet är mindre än stop
range
till funktionen list
, t.ex. list(range(10))
range
¶list(range(10))
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
list(range(4,6))
[4, 5]
list(range(10, 101, 10))
[10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
list(range(10, 110, 10))
[10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
list(range(10, 0, -2))
[10, 8, 6, 4, 2]
list(range(10, 3, -2))
[10, 8, 6, 4]
for
med range
¶# Skriv ut siffrorna 0 till 9 (10 siffror)
for i in range(10):
print(i)
0 1 2 3 4 5 6 7 8 9
for
med range
över längden på en sekvens¶Ofta överflödigt:
names = ["Adam", "Bethany", "Chris"]
# Skriv ut elementen i listan names
for i in range(len(names)):
print(names[i])
Adam Bethany Chris
for
med range
över längden på en sekvens¶men ibland praktiskt:
names = ["Adam", "Bethany", "Chris"]
# Skriv ut elementen i listan names
for i in range(len(names)):
print(names[i] + " likes " + names[(i+1) % len(names)])
Adam likes Bethany Bethany likes Chris Chris likes Adam
(För den som vill se en mer "pythonic" approach, kolla upp funktionen enumerate
.)
return
eller en funktion till if
x + y * 5
när man menade (x + y) * 5
value
på olika ställen för att se vilket värde den hade i en viss kontexti = ""
while i != 'q':
i = input("Skriv något: ")
p = None
h = False
for c in i:
if p and p == c:
h = True
p = c
if h:
print("Det du skrev har upprepade bokstäver i sig!")
else:
print("Det finns inga upprepade bokstäver där.")
print("Hej då.")
user_input = ""
while user_input != 'q':
user_input = input("Skriv något: ")
prev_char = None
has_repeated = False
for curr_char in user_input:
if prev_char and prev_char == curr_char:
has_repeated = True
prev_char = curr_char
if has_repeated:
print("Det du skrev har upprepade bokstäver i sig!")
else:
print("Det finns inga upprepade bokstäver där.")
print("Hej då.")
def has_repeated_char(s):
prev_char = None
for curr_char in s:
if prev_char and prev_char == curr_char:
return True
prev_char = curr_char
return False
user_input = ""
while user_input != 'q':
user_input = input("Skriv något: ")
if has_repeated_char(user_input):
print("Det du skrev har upprepade bokstäver i sig!")
else:
print("Det finns inga upprepade bokstäver där.")
print("Hej då.")
def has_repeated_char(s):
"""Returnera True om upprepade tecken finns i s, annars False."""
prev_char = None
for curr_char in s:
# Kolla om föregående tecken är samma som aktuellt tecken.
if prev_char and prev_char == curr_char:
return True
prev_char = curr_char
return False
# Fråga användaren om ett ord och berätta om det innehåller upprepade tecken
# eller inte.
user_input = ""
while user_input != 'q':
user_input = input("Skriv något: ")
if has_repeated_char(user_input):
print("Det du skrev har upprepade bokstäver i sig!")
else:
print("Det finns inga upprepade bokstäver där.")
print("Hej då.")
def ta_emot_kommando():
satser
return kommando
def kommando1():
satser
def kommando2():
satser
def utför_kommando(kommando):
satser
def main():
while True:
kommando = ta_emot_kommando()
utför_kommando(kommando)
def ladda_ordlistor():
satser
def ladda_ordlista(ordlista):
satser
def autocomplete_strategi1():
satser
def autocomplete_strategi2():
satser
def autocomplete(strategi, ord, ordlistor)
satser
def välj_strategi():
satser
def main():
ordlistor = ladda_ordlistor()
strategi = välj_strategi()
while True:
ord = input("Skriv ett ord: ")
if ord != "q":
kompletterat_ord = autocomplete(strategi, ord, ordlistor)
print(kompletterat_ord)
open
tar in en sträng (namn på fil), och öppnar filen och returnerar den öppna filen (speciell datatyp)file = open(filnamn)
file = open(filnamn, 'r') # read - endast läsning
file = open(filnamn, 'w') # write - skriva över
file = open(filnamn, 'a') # append - lägga till
.readlines
läser innehållet i filen och returnerar det som en lista av strängar.file = open("hemligt.txt")
contents = file.readlines()
file = open("data.csv")
contents = file.readlines()
file.close()
repr
returnerar sträng inklusive citattecken för att indikera att det är en strängprint(True)
print("True")
print(repr(True))
print(repr("True"))
True True True 'True'