Bemenet gyűjtése

Befejeződött

Eddig a Python programozási nyelv különböző szerkezeteit tanulta meg. Ön is készített néhány programot. A programok azonban adatokon működnek, és ezek az adatok valahol származnak. Ebben a leckében részletesebben is áttekintheti, hogyan gyűjthet be bemenetet a parancssorból és a felhasználói bemenetből.

Parancssori bemenet

Amikor elindít egy programot a használatával python3, adja meg a elindítandó fájl nevét. Argumentumokat is megadhat neki: azokat az adatokat, amelyekhez a program a futtatáskor hozzáférhet. Így nézhet ki:

python3 backup.py 2023-01-01

Az előző kódban a "2023-01-01" sztring használható a program utasításaként, backup.py a biztonsági mentést ettől a dátumtól kezdve elindítani. A parancssori argumentumok használatával a rugalmasságot érheti el. A program a külső bemenetétől függően eltérően viselkedhet.

Parancssori argumentumok

Hogyan vannak rögzítve ezek a parancsok a dolgok kódolási oldalán? A modul használatával sys lekérheti a parancssori argumentumokat, és felhasználhatja őket a programban. Tekintse meg a következő kódot:

import sys

print(sys.argv)
print(sys.argv[0]) # program name
print(sys.argv[1]) # first arg

sys.argv egy tömb vagy adatstruktúra, amely sok elemet tartalmaz. A tömbben szereplő első pozíció 0 tartalmazza a program nevét. A második pozíció az 1első argumentumot tartalmazza. Tegyük fel, hogy a program backup.py tartalmazza a mintakódot, és a következőképpen futtatja:

python3 backup.py 2023-01-01

A program ezután a következő eredményt adja:

['backup.py', '2023-01-01'] 
backup.py
2023-01-01

Felhasználói bevitel

Az adatok programba való továbbításának másik módja, ha a felhasználó megadja az adatokat. Kóddal megadhatja, hogy a program rávehesse a felhasználót az adatok megadására. Mentse a megadott adatokat a programban, majd végezze el a műveleteket.

A felhasználó adatainak rögzítéséhez használja a függvényt input() . Here's an example:

print("Welcome to the greeter program")
name = input("Enter your name: ")
print("Greetings " + name)

Tegyük fel, hogy a program input.py tartalmazza a mintakódot, és a következőképpen futtatja:

python3 input.py

A program futtatása meghívja Önt, hogy adja meg a nevét, például:

Welcome to the greeter program
Enter your name: 

Miután beírt egy értéket, és lenyomta az Enter billentyűt, a következő üdvözlés lesz visszaadva:

Welcome to the greeter program
Enter your name: Picard
Greetings Picard

Számok kezelése

A input() függvény sztringként tárolja az eredményt, ezért előfordulhat, hogy a következő kód nem azt teszi, amit szeretne:

print("calculator program")
first_number = input("first number: ")
second_number = input("second number: ")
print(first_number + second_number)

A program futtatása meghívja, hogy adja meg az első számot, mondjuk 3:

calculator program
first number: 3

Az Enter billentyűt lenyomva beírhatja a második számot, például4:

calculator program
first number: 3
second number: 4

Az Enter billentyű lenyomásával a következő eredményt kaphatja:

calculator program
first number: 3
second number: 4
34

Valószínűleg arra szánta ezt a programot, hogy válaszoljon ahelyett 734, hogy . Szóval mi történt?

A magyarázat az, hogy first_number és second_number sztringek. Ahhoz, hogy a számítás megfelelően működjön, a függvény használatával számra kell módosítania ezeket a int() sztringeket. A program utolsó használni int()kívánt sorának módosításával megoldhatja a problémát:

print(int(first_number) + int(second_number))

A program újrafuttatása ugyanazokkal az értékekkel, 7 mint a válasz:

calculator program
first number: 3
second number: 4
7