Samla in indata
Hittills har du lärt dig olika konstruktioner av programmeringsspråket Python. Du har också skapat ett par program. Program fungerar dock på data, och dessa data kommer från någonstans. I den här lektionen tar du en närmare titt på hur du samlar in indata från kommandoraden och från användarindata.
Kommandoradsindata
När du startar ett program med hjälp python3
av ger du det namnet på filen som ska startas. Du kan också ge den en uppsättning argument: data som programmet kommer att ha åtkomst till när de körs. Så här kan det se ut:
python3 backup.py 2023-01-01
I föregående kod kan strängen "2023-01-01" användas som instruktion till programmet backup.py att starta en säkerhetskopia från det datumet. Det du får med hjälp av kommandoradsargument är flexibilitet. Programmet kan bete sig annorlunda beroende på dess externa indata.
Kommandoradsargument
Hur fångas dessa kommandon in på kodningssidan av saker? Med hjälp av modulen sys
kan du hämta kommandoradsargumenten och använda dem i programmet. Titta på följande kod:
import sys
print(sys.argv)
print(sys.argv[0]) # program name
print(sys.argv[1]) # first arg
sys.argv
är en matris eller en datastruktur som innehåller många objekt. Den första positionen, som anges som 0
i matrisen, innehåller programnamnet. Den andra positionen, 1
, innehåller ditt första argument. Anta att programmet backup.py innehåller exempelkoden och kör den så här:
python3 backup.py 2023-01-01
Programmet ger sedan följande resultat:
['backup.py', '2023-01-01']
backup.py
2023-01-01
Användarindata
Ett annat sätt att skicka data till programmet är att låta användaren ange data. Du kan koda den så att programmet uppmanar användaren att ange information. Du sparar data i programmet och agerar sedan på dem.
Om du vill samla in information från användaren använder input()
du funktionen. Här är ett exempel:
print("Welcome to the greeter program")
name = input("Enter your name: ")
print("Greetings " + name)
Anta att programmet input.py innehåller exempelkoden och kör den så här:
python3 input.py
När du kör programmet uppmanas du att ange ditt namn, till exempel:
Welcome to the greeter program
Enter your name:
När du har angett ett värde och trycker på Retur returneras hälsningen:
Welcome to the greeter program
Enter your name: Picard
Greetings Picard
Arbeta med tal
Funktionen input()
lagrar ett resultat som en sträng, så följande kod kanske inte gör vad du vill:
print("calculator program")
first_number = input("first number: ")
second_number = input("second number: ")
print(first_number + second_number)
När du kör det här programmet uppmanas du att ange det första numret, låt oss säga 3
:
calculator program
first number: 3
När du har tryckt på Retur kan du ange det andra talet, låt oss säga 4
:
calculator program
first number: 3
second number: 4
Om du trycker på Retur får du följande resultat:
calculator program
first number: 3
second number: 4
34
Du har förmodligen tänkt att det här programmet ska besvara dig med 7
i stället 34
för . Så vad gick fel?
Förklaringen är att first_number
och second_number
är strängar. För att beräkningen ska fungera korrekt måste du ändra dessa strängar till tal med hjälp int()
av funktionen . Genom att ändra den sista raden i programmet för att använda int()
kan du lösa problemet:
print(int(first_number) + int(second_number))
Om du kör programmet igen med samma värden returneras 7
nu som svaret:
calculator program
first number: 3
second number: 4
7