Python Cursus. Hoofdstuk 10 - Strings

Uitwerkingen Opgaven

Terug naar de theorie en opgaven over Strings
Terug 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:

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. Met chr() 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