Tot nu toe heb je bij de invoer altijd per regel, maar 1 invoer kunnen doen
Het is echter ook mogelijk om meerdere variabelen een inhoud te geven via 1 regel. Er zijn wel 3 beperkingen aan deze manier van werken:
- Je moet op voorhand het exact aantal variabelen weten
- Je moet een vast scheidingsteken gebruiken. Dit kan een spatie zijn, een komma, een slash etc...
- De opgeslagen variabele is een tekst (string) -> maar je kan deze wel omzetten (zie vorig hoofdstuk)
Hoe gaat dit in zijn werk? bekijk onderstaande code:
a,b = input("geef twee cijfers, gescheiden door een puntkomma: ").split(";")
som = int(a)+int(b)
print (som)
Wat staat hier nu?
de "a,b" zijn de twee variabelen die we via 1 regel waardes willen geven. Je zet deze in de juiste volgorde met een komma ertussen.
achter het =-teken staat de
input. Dit kan alleen een string zijn, geen int of float, want alleen een tekst kan je
splitten.
achter de input-functie staat de functie
.split(). Deze splits de voorgaande input op volgens een vast teken, in dit geval het ;-teken. Dit teken zet je als parameter tussen de ( ) en tussen de "".
Een spatie kan ook, daarvoor gebruik je deze code:
.split(" ")
Het aantal ingevoerde objecten zal dan in dezelfde volgorde aan de variabelen toegekend worden.
OPGELET: het is dus noodzakelijk om exact hetzelfde aantal objecten in te voeren als er variabelen zijn. Anders krijg je een foutmelding!
de tweede regel zal de som berekenen: aangezien a en b als tekst ingevoerd zijn, moeten we deze eerst omzetten naar een geheel getal met de int()-functie (deze zet de parameter om in een geheel getal).
Opdracht
Bereken de omtrek van een driehoek op basis van de gegeven lengte van de 3 zijden.
Invoer
3 natuurlijke getallen, op 1 regel, gescheiden door een spatie
uitvoer
de omtrek van de driehoek met 2 0'en achter de komma
Voorbeeld
Invoer:
1234 666 789
Uitvoer:
2689.00