Python: Batayan at Advanced na Input para sa Baguhan

1. Panimula

Kapag gumagawa ng programa gamit ang Python, napakahalaga ng “standard input” na tumatanggap at nagpoproseso ng input mula sa gumagamit. Lalo na kapag ginagamit ang function na input() upang kunin ang data mula sa keyboard, nagiging posible ang pakikipag-ugnayan sa gumagamit. Sa artikulong ito, para sa mga baguhan sa Python, ipapaliwanag namin ang mga pangunahing gamit ng standard input hanggang sa mga advanced na pamamaraan kasama ang mga konkretong halimbawa. Mula sa simpleng programa hanggang sa mga advanced na paraan ng pagproseso, matutunan mo ito nang sunud-sunod.

2. Pangunahing Paggamit ng Standard Input ng Python

2.1 input() Ano ang function?

input() Ang function ay tumatanggap ng input mula sa gumagamit at nagbabalik ng string. Halimbawa, kunin at i-output ang pangalan ng gumagamit gamit ang sumusunod na code.
name = input("Ilagay ang pangalan: ")
print(f"Kamusta, {name}!")
Sa code na ito, iniimbak ang pangalan na naipasok gamit ang input() sa name at nagpi-print ng mensahe ng pagbati.

2.2 Pag-input ng Numerong Data at Pag-convert ng Uri

input() Ang data na nakukuha ay string, kaya kung nais mong gamitin ito bilang numero, gagamitin ang mga function na int() o float() para i-convert ang uri.
age = int(input("Ilagay ang iyong edad: "))
print(f"Ikaw ay {age} taong gulang.")
Sa halimbawang ito, kino-convert ang string sa integer at inilalabas ang edad bilang numero.
年収訴求

3. Pagproseso ng Maramihang Linya ng Standard Input

3.1 Pag-input ng Maramihang Linya ng String

Kung nais mong tumanggap ng maramihang linya ng input, epektibo ang paggamit ng for loop o list comprehension. Halimbawa, narito ang code para hilingin sa user na magpasok ng tatlong magkaibang salita.
words = [input(f"{i+1} na salita: ") for i in range(3)]
print(f"Mga salitang naipasok: {words}")
Sa code na ito, iniimbak ang input na tatlong linya sa isang listahan at ipinapakita ito.

3.2 Maramihang Input na Pinaghihiwalay ng Espasyo

Kapag nagpasok ng maramihang data sa isang linya, maaaring gamitin ang split() function upang hatiin ito batay sa espasyo. Sa susunod na halimbawa, hinihiling sa user na magpasok ng mga numero na pinaghihiwalay ng espasyo, at ito ay iko-convert sa mga integer.
numbers = list(map(int, input("Pakilagay ang mga numero na pinaghihiwalay ng espasyo: ").split()))
print(f"Mga numerong naipasok: {numbers}")
Dito, ginagamit ang map() function upang i-convert ang mga input na numero sa integer type. Ang input na hinati gamit ang split() ay epektibong iniimbak sa isang listahan.

4. Pagpapalawak ng Standard Input: Pagproseso ng mga File at Binary Data

4.1 Pagproseso ng Standard Input gamit ang sys.stdin

sys.stdin kung gagamitin mo, maaari mong basahin nang direkta ang data mula sa standard input. Kapaki-pakinabang ito kapag nagpoproseso ng malaking dami ng text data o kapag itinuturing ang nilalaman ng file na ipinasa mula sa mga command-line argument bilang standard input.
import sys

data = sys.stdin.read()
print(f"Natanggap na data: {data}")
Sa code na ito, binabasa ang lahat ng data mula sa standard input at inilalabas ito.

4.2 Simpleng Pagproseso ng Binary Data

sys.stdin.buffer sa pamamagitan ng paggamit nito, maaari mong direktang iproseso ang binary data. Ito ay kapaki-pakinabang kapag humahawak ng mga imahe o mga file na nasa binary format.
import sys

binary_data = sys.stdin.buffer.read()
print(binary_data)
Sa code na ito, binabasa ang binary data mula sa standard input at agad itong inilalabas.

5. Praktikal na Mga Use Case: Paglutas ng Problema Gamit ang Standard Input

5.1 Programang Nagkakalkula ng Average Gamit ang Standard Input

Sa programang ito, tumatanggap ng mga integer mula sa standard input, kinukuwenta ang kanilang average, at inilalabas ito. Ang ganitong proseso ay karaniwang ginagamit sa competitive programming at data processing.
N = int(input("Ilagay ang bilang ng mga numerong ipapasok: "))
numbers = list(map(int, input("Ilagay ang mga numero, pinaghiwalay ng puwang: ").split()))
average = sum(numbers) / N
print(f"Ang average ay {average}.")
Ang programang ito ay unang tumatanggap ng bilang ng mga numero, pagkatapos ay itinuturing ang mga numerong ipinasok na pinaghiwalay ng puwang bilang listahan, at kinukuwenta ang average.

5.2 Programang Tumanggap ng Data Hanggang sa Pagtatapos ng Input

Ito ay programang patuloy na tumatanggap ng data hanggang mag-input ang user ng walang laman na linya. Sa pamamagitan ng pagtatakda ng tiyak na kondisyon sa pagtatapos, posible ang pangmatagalang pagproseso ng input na data.
data = []
while True:
    line = input()
    if line == "":
        break
    data.append(line)
print("Data na naipasok: ", data)
Sa halimbawang ito, patuloy na tumatanggap ng data hanggang sa mag-input ng walang laman na linya, at sa huli inilalabas ang lahat ng data.

6. Karaniwang mga error at kung paano ito ayusin

6.1 Pagsasaayos ng ValueError

Kapag naglalagay ng numerong input, kung ang gumagamit ay nagkamaling magpasok ng string, magaganap ang ValueError. Upang maiwasan ang error na ito, kailangan magdagdag ng code na nagsusuri ng input value.
try:
    age = int(input("Pakilagay ang iyong edad: "))
except ValueError:
    print("Hindi wastong input. Pakilagay ng numero.")

6.2 Pagsasaayos ng EOFError

Kapag tumatanggap ng maraming linya ng input, maaaring mangyari ang EOF(End of File)error na nagpapahiwatig ng pagtatapos ng standard input. Upang maiwasan ito, mahalagang itakda nang tama ang kondisyon ng pagtatapos.
import sys

for line in sys.stdin:
    if line.strip() == "":
        break
    print(line.strip())

7. Buod

Sa pamamagitan ng paggamit ng standard input sa Python, madali mong maisasakatuparan ang pakikipag-ugnayan sa gumagamit at makakalikha ng mas advanced na mga programa. Natutunan mo ang iba’t ibang paraan mula sa pangunahing input() function hanggang sa pagproseso ng mga file at binary data. Sa pag-unawa at pagsasabuhay ng mga paraan ng paggamit ng standard input, tataas ang kakayahang mag-adjust at kahusayan ng iyong programa.