Mengumpulkan input

Selesai

Sejauh ini, Anda telah mempelajari berbagai konstruksi bahasa pemrograman Python. Anda juga telah membuat beberapa program. Namun, program beroperasi pada data, dan data tersebut berasal dari suatu tempat. Di unit ini, Anda akan melihat lebih dekat cara mengumpulkan input dari baris perintah dan dari input pengguna.

Input baris perintah

Ketika Anda memulai program dengan menggunakan python3, Anda memberinya nama file untuk memulai. Anda juga dapat memberinya sekumpulan argumen: data yang akan diakses program saat berjalan. Berikut adalah tampilannya:

python3 backup.py 2023-01-01

Dalam kode sebelumnya, string "2023-01-01" dapat digunakan sebagai instruksi ke program backup.py untuk memulai cadangan dari tanggal tersebut. Apa yang Anda peroleh dengan menggunakan argumen baris perintah adalah fleksibilitas. Program ini dapat memiliki perilaku yang berbeda tergantung pada input luarnya.

Argumen baris perintah

Bagaimana perintah ini ditangkap di sisi pengodean beberapa? Dengan menggunakan sys modul, Anda dapat mengambil argumen baris perintah dan menggunakannya dalam program Anda. Lihat kode berikut:

import sys

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

sys.argv adalah array atau struktur data yang berisi banyak item. Posisi pertama, yang ditandai sebagai 0 dalam array, berisi nama program. Posisi kedua, 1, berisi argumen pertama Anda. Asumsikan bahwa program backup.py berisi kode sampel dan Anda menjalankannya seperti ini:

python3 backup.py 2023-01-01

Program kemudian menangguhkan hasil berikut:

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

Masukan pengguna

Cara lain untuk meneruskan data ke program adalah meminta pengguna memasukkan data. Anda dapat mengkodekannya sehingga program memberi tahu pengguna untuk memasukkan informasi. Anda menyimpan data yang dimasukkan dalam program lalu menindaklanjutinya.

Untuk mengambil informasi dari pengguna, Anda akan menggunakan input() fungsi. Berikut contohnya:

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

Asumsikan bahwa program input.py berisi kode sampel dan Anda menjalankannya seperti ini:

python3 input.py

Menjalankan program mengundang Anda untuk memasukkan nama Anda, misalnya:

Welcome to the greeter program
Enter your name: 

Setelah Anda memasukkan nilai dan menekan Enter, salam dikembalikan:

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

Bekerja dengan angka

input() Fungsi tersebut menyimpan hasil sebagai string, sehingga kode berikut mungkin tidak melakukan apa yang Anda inginkan:

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

Menjalankan program ini mengundang Anda untuk memasukkan nomor pertama, katakanlah 3:

calculator program
first number: 3

Setelah menekan Enter, Anda dapat memasukkan nomor kedua, katakanlah 4:

calculator program
first number: 3
second number: 4

Menekan Enter memberi Anda hasil berikut:

calculator program
first number: 3
second number: 4
34

Anda mungkin dimaksudkan untuk program ini untuk menjawab Anda dengan 7 bukan 34. Jadi apa yang salah?

Penjelasannya adalah bahwa first_number dan second_number merupakan string. Agar penghitungan berfungsi dengan benar, Anda perlu mengubah string tersebut menjadi angka dengan menggunakan int() fungsi. Dengan memodifikasi baris terakhir program untuk digunakan int(), Anda dapat mengatasi masalah:

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

Menjalankan ulang program dengan nilai yang sama sekarang ditampilkan 7 sebagai respons:

calculator program
first number: 3
second number: 4
7