Python Cursus. Hoofdstuk 10 - Strings
Uitwerkingen Opgaven
Terug naar de theorie en opgaven over StringsTerug naar de Afsluitende Opgaven over Strings
Terug naar de cursus pagina
Opgave 10.2.2 Newline
print( "Hoi \n hallo" )
Opgave 10.3.1 Letters uit een woord
woord = "fiets" print( woord[0] ) #eerste letter uit woord print( woord[ len(woord)-1 ]) #laatste letter uit woord
Opgave10.3.2a Dagen van de week verkort
dagenVanDeWeek = [ 'maandag', 'dinsdag', 'woensdag'] for dag in dagenVanDeWeek: print( dag[0]+dag[1] )
Opgave 10.3.2b Print klinkers uit woorden in een lijst
tekst = "Een Nederlander heeft programmeertaal Python bedacht." for letter in tekst: if letter in "aeiou": print( letter )of
tekst = "Een Nederlander heeft programmeertaal Python bedacht." for letter in tekst: if letter in ["a", "e", "i", "o", "u"]: print( letter )
Opgave 10.3.2c Aantal voorkomens in een woord
ingevoerde_woord = input( "Typ een woord:" )
letter_teller = 0
for letter in ingevoerde_woord:
if( ingevoerde_woord[letter]=="e" ):
letter_teller += 1
print("De letter e komt", letter_teller,"keer voor")
Opgave 10.4.1 strip()
Geen uitwerking beschikbaar.
Opgave 10.4.2 upper() en lower()
tekst = "Humpty Dumpty zat op de muur" print( tekst.find( "zat" ) ) print( tekst.find( "t" ) ) print( tekst.find( "q" ) )
Opgave 10.4.3 find()
Code:
print( tekst.find( "Lang" ) ) print( tekst.find( "lang" ) ) print( tekst.find( "leven" ) ) print( tekst.find( "f" ) )Antwoord:
- "Lang" begint op index 0
- "lang" komt niet voor en levert daarom -1 op.
- "leven" begint op index 13
- "f" komt niet voor en levert daarom -1 op.
Opgave 10.4.4 replace()
Strings zijn onveranderbaar.
Met print( tekst.replace( "zat op" , "viel van" ) ) heb je wat veranderd en afgedrukt, maar de variabele tekst heb je niet aangepast (Strings zijn onveranderbaar).Als je de verandering wilt onthouden moet je dat in een aparte variabele opslaan. Bijvoorbeeld met:
tekst2 = tekst.replace( "zat op" , "viel van" )
Opgave 10.5.1 Het alfabet afdrukken
De letter 'A' begint bij ASCII code 65. Dus die druk je als eerste af. Metchr() maak je daar weer een letter van.
Met een for-loop druk je alle andere letters af die daarna komen.
for i in range( 26 ): letter = chr (i+65) print(letter, end=" ")
Afsluitende Opgaven
Afsluitende Opgave 10.1a While en for
for x in range(4):
print("I love Python!")
print("I love Computing")
Afsluitende Opgave 10.1 Scrabble
scrabble_woord = "Aquarium"
q_teller = 0 #teller voor aantal voorkomens van Q
#doorloop alle letters van het woord
for letter in scrabble_woord:
letter = letter.upper() #zet letter om in een hoofdletter
if letter == "Q": #Q zit er in
q_teller += 1 #teller ophogen
score = q_teller * 10 #score berekenen
print( "Er zitten " + str(q_teller) + " voorkomens van Q in het woord, dus score is "+ str(score) )
Afsluitende Opgave 10.2A Wachtwoord valideren
#FUNCTIE DEFINITIES
#controleer of invoer minstens 8 karakters lang is
def juisteLengte(invoer):
if len(invoer) >= 8:
print("lengte goed")
return True
else:
print("wachtwoord is te kort, moet minstens 8 karakters zijn")
return False
#controleer of er een cijfer in voorkomt
def juisteCijfer(invoer):
for i in invoer:
if i.isdigit():
print("cijfer gevonden", i)
return True
print("wachtwoord bevat geen cijfer")
return False
#vraag steeds om wachtwoord.
def vraagWachtwoord():
invoer = input ("geef wachtwoord")
while not juisteCijfer(invoer) or not juisteLengte(invoer):
invoer = input ("geef wachtwoord")
print("wachtwoord is OK!")
return invoer
#HOOFDPROGRAMMA
wachtwoord = vraagWachtwoord()
print("Je wachtwoord is: ", wachtwoord)
Afsluitende Opgave 10.2 Klinkerloos
#de klinkerloos functie:
#We doorlopen alle letters uit de invoerstring en kopieren een letter alleen naar een nieuwe string als het geen klinker is
#dan hoeven we daarna alleen de gekopieerde string return te geven:
def klinkerloos( tekst ):
#om het onszelf makkelijker te maken, converteren we eerst de hele invoer naar kleine letters
#zo hoeven we niet ook op alle hoofdletters van de klinkers te checken
tekst = tekst.lower()
#maak een lege string voor de uitvoer:
uitvoer = ""
#doorloop de letters:
for letter in tekst:
if not(letter == "a" or letter == "o" or letter == "i" or letter == "y" or letter == "e" or letter == "u"):
#het is geen klinker, dus verander de letter in een hoofdletter en kopieer hem naar de uitvoer:
uitvoer = uitvoer + letter.upper()
#de uitvoer string bevat nu de tekst zonder klinkers, dus die geven we terug:
return uitvoer
#testen van de functie:
invoer = input("Geef een stuk tekst als invoer: ")
print ( klinkerloos(invoer) )
Afsluitende Opgave 10.3 Palindroom
#de palindroom functie:
#We doorlopen alle letters uit de invoerstring en kopieren alle letters naar een nieuwe string
# maar dan wel in omgekeerde volgorde:
def isPalindroom(tekst):
#maak een lege string om de omgedraaide versie in op te bouwen:
omgedraaid = ""
#doorloop de letters:
for letter in tekst:
#door de letter er voor te plakken ipv er achter komt de string in omgekeerde volgorde:
omgedraaid = letter + omgedraaid
#check of de omgedraaide string hetzelfde is als de originele:
if omgedraaid == tekst:
return True
else:
return False
invoer = input("Welk woord wil je checken op palindroom-heid): ")
if isPalindroom(invoer) == True:
print ("Het is een palindroom!")
else:
print ("Het is geen palindroom...")
Afsluitende Opgave 10.4 Caesar Encryptie
def versleutelen( klare_tekst, verschuiving):
versleutelde_tekst = "" # houd mijn (tot nu toe) versleutelde bericht bij
for letter in klare_tekst: # doorloop de tekst, letter voor letter
ascii_raw = ord(letter) # zet letter om naar ascii
versleutelde_ascii = (ascii_raw + verschuiving) # verschuif
if versleutelde_ascii > 90: # als de ASCII code buiten bereik van 90 komt (voorbij 'Z'), dan moet je 26 terug tellen
versleutelde_ascii -= 26
versleutelde_letter = chr(versleutelde_ascii) # zet ASCII code weer om naar letter
versleutelde_tekst += versleutelde_letter # plak achteraan mijn (tot nu toe) versleutelde bericht
print(versleutelde_tekst)
versleutelen("ABCZ", 3) # testen
Het ontsleutelen gaat op een vergelijkbare manier
Terug naar de theorie en opgaven over Strings
Terug naar de Afsluitende Opgaven over Strings
Terug naar de cursus pagina