Skip to content

Basiskennis Python

Bij de cursus inleiding programmeren heb je de basis van het programmeren in Python geleerd. Bij inleiding programmeren mocht je kiezen om je code in het Nederlands of Engels te schrijven. Omdat wij jullie voorbereiden om in een onderzoeksgroep je bachelor project te gaan doen waar je hoogstwaarschijnlijk internationale collega's gaat treffen vragen we jou om bij ECPC alles in het Engels te schrijven. In deze paragraaf nemen we de hoofdlijnen van inleiding programmeren met je door in een aantal opdrachten.

Visual Studio Code

Open VSCode en maak de map ECPC

  1. Open Visual Studio Code.
  2. Ga naar File > Open folder.
  3. Navigeer naar een geschikte map, bijvoorbeeld OneDrive.
  4. Klik op Nieuwe map en noem de map ECPC.
  5. Klik op Map selecteren.

F-strings, variabelen en input()

f-strings, variabelen en input

  1. Maak een bestand diameter-ball.py in de map ECPC.
    ECPC
    └── diameter.py
  2. Schrijf een stuk code waarin je de gebruiker vraagt wat de diameter van de bal is.
  3. Bereken de radius van de bal.
  4. Print de diameter en radius in een zin en maak gebruik van f-string. Bijvoorbeeld: "A ball with a diameter of 2.8 m has a radius of 1.4 m."
  5. Test je script met het getal 2.8.
Uitwerkingen
diameter = input("Enter the diameter of the ball: ")
diameter = float(diameter)
radius = diameter / 2
print(f"A ball with a diameter of {diameter} m has a radius of {radius} m.")

If-statement en operatoren

if-statement en operatoren

Met een if-statement kan je een conditie testen door operatoren te gebruiken.

  1. Schrijf de operatoren op voor:
    • gelijk aan
    • ongelijk aan
    • groter dan
    • groter of gelijk aan
    • kleiner dan
    • kleiner dan of gelijk aan
  2. Vul op de ... de juiste condities in door gebruik te maken van and, not en or.
    import random
    
    rain = random.choice([True, False])
    umbrella = random.choice([True, False])
    
    print(f"{rain=}, {umbrella=}")
    
    if ... :
        print("Lucky you have your umbrella with you since it's raining.")
    
    if ... :
        if ... :
            print("You will get wet without an umbrella since it's raining.")
        if ... :
            print("you can use your umbrella as a walking stick since it doesn't rain")
    
    if ... :
        print("Without an umbrella there is no problem since it's not raining.")
    
Uitwerkingen
import random

rain = random.choice([True, False])
umbrella = random.choice([True, False])

print(f"{rain=}, {umbrella=}")

if rain and umbrella:
    print("Lucky you have your umbrella with you since it's raining.")

if rain or umbrella:
    if rain and not umbrella:
        print("You will get wet without an umbrella since it's raining.")
    if not rain and umbrella:
        print("you can use your umbrella as a walking stick since it doesn't rain")

if not rain and not umbrella:
    print("Without an umbrella there is no problem since it's not raining.")

For-loop, while-loop en break

For-loop, while-loop en break

  1. Beschouw de volgende code:
    voltage = 0  # mV
    steps = 50  # mV
    while voltage < 3300:
        voltage += steps
    

Bij het programmeren krijg je vaak errors. Bij het debuggen van een loop zijn twee dingen heel handig print en break.

  1. Gebruik print om het voltage te printen in the while-loop, doe dit handig met f-strings zodat je weet wat je je print bijvoorbeeld: "The voltage is set to 0 mV."
  2. Gebruik dan break om de loop maar een keer te laten lopen.
  3. Schrijf de code om waarbij je gebruikt maakt van een for-loop.
Uitwerkingen

print_and_break.py
voltage = 0  # mV
steps = 50  # mV
while voltage < 3300:
    voltage += steps
    print(f"The voltage is set to {voltage} mV.")
    break
(ecpc) > python print_and_break.py

for_loop.py
for voltage in range(0, 3300, 50):
    print(f"The voltage is set to {voltage} mV.")
(ecpc) > python for_loop.py

Functie

functies

  1. Maak uit de onderstaande code de functie exponentiation werkend.

    def exponentiation():
        solution =
        ...
    
    
    number_1 = 2
    number_2 = 8
    
    answer = exponentiation(number_1, number_2)
    print(f"{number_1}^{number_2} = {answer}")
    

  2. In deze opdracht zijn 4 variabele solution, number_1, number_2 en answer. Welk van deze variabele zijn globaal en welke zijn lokaal?

  3. Leg uit wat daarvan de consequentie is voor het gebruiken van deze variabelen.
Uitwerkingen
  1. def exponentiation(base, exponent):
        solution = base**exponent
        return solution
    
    
    number_1 = 2
    number_2 = 8
    
    answer = exponentiation(number_1, number_2)
    print(f"{number_1}^{number_2} = {answer}")
    
  2. De globale variabelen zijn number_1, number_2 en answer en de lokale variabele is solution.

  3. Het gevolg is dat number_1, number_2 en answer wel binnen de functie exponentiation() gebruikt kunnen worden, maar solution niet buiten de functie exponentiation() gebruikt kan worden.

List

lijsten

  1. Schrijf een python script waarin je een lijst definieert met de namen van de maanden.
  2. Print de negende maand.
  3. Voeg een dertiende maand toe aan de lijst.
Uitwerkingen

lijsten.py
months = [
    "January",
    "February",
    "March",
    "April",
    "May",
    "June",
    "July",
    "August",
    "September",
    "October",
    "November",
    "December",
]

ninth_month = months[8]

print(f"The ninth month is called {ninth_month}")

months.append("trēdecimber")

print(months)
(ecpc) > python lijsten.py

Stijl

Bij inleiding programmeren heb je ook geleerd hoe je code netjes opschrijft zodat het leesbaar en begrijpelijk is. Hieronder vind je een samenvatting, die een beetje aangevuld is met ECPC stijl.

  • Schrijf code in het Engels.
  • def functie_namen_met_doel(): Namen van functies mogen lang zijn, maar geven duidelijk weer wat de functie doet.
  • korte_variabele = 28 de namen van variabele houd je kort en duidelijk. Gebruik alleen afkortingen waarneer deze door veel mensen gekend zijn.
  • Je hoeft de code niet met de hand over te schrijven dus gebruik liever meer regels dan een hele lange regel waar meer dan 1 ding gebeurd.
  • Gebruik #commentaar-kopjes om een stukje code samen te vatten, een waarschuwing te geven, uitleg van complexe algoritmen te doen, voor bronvermelding, uitleg van een variabele te geven en zet dit altijd boven het stukje code waar het omgaat.
  • Spring in waar nodig, gebruik witregels, zet spaties rondom operatoren.

Modules

Ook heb je geleerd om functies uit andere (python) modules te importeren, meer hierover vind je in de paragraaf Modules.

Plotten

Grafieken

Gebruik matplotlib om een scatterplot te maken van twee lijsten die hieronder zijn weergegeven. Zet de grootheden en eenheden bij beide assen en sla het figuur op als .png-bestand.

time = [0, 0.5, 1, 1.5, 2, 2.5, 3] #seconds
distance = [0, 15, 50, 100, 200, 300, 400] #meters

Uitwerkingen
import matplotlib.pyplot as plt

time = [0, 0.5, 1, 1.5, 2, 2.5, 3]  # seconds
distance = [0, 15, 50, 100, 200, 300, 400]  # meters

plt.plot(time, distance, "o")
plt.xlabel("Time (s)")
plt.ylabel("Distance (m)")
plt.savefig("plot.png")

Bestanden inlezen

txt-bestanden lezen

Hieronder vind je een verhaal, kopieer de inhoud naar een .txt-bestand en sla deze op een handige plek op.

"Do you have a favourite
saying?" asked the boy.
"Yes" said the mole
"What is it?"
"If at first you don't 
succeed have some cake."
"I see, does it work?"
"Every time."
From: The Boy, the mole, the fox and the Horse - Charlie Mackesy

Schrijf een script om het .txt-bestand te lezen en regel voor regel te printen.

Uitwerkingen

txt_bestanden_lezen.py
with open("story.txt", "r") as file:
    for line in file:
        print(line)
(ecpc) > python txt_bestanden_lezen.py