Nilai sys argv default python

Misalkan Anda sedang menulis skrip python yang disebut kode. py. Skrip ini menerima argumen berbeda di baris perintah. Pengguna hanya dapat memberikan argumen pertama dan mendapatkan default 5 sebagai nilai b. Atau pengguna dapat memberikan argumen pertama dan memberikan argumen kedua, memungkinkan mereka untuk mengontrol nilai b

impor sistem

def runCode(a, b = 5)

cetak a

cetak b

b = Tidak ada

a = sis. argumen[1]

c = len(sys. argumen)

jika c > 2

b = sys. argv[2] runCode(a, b)

kalau tidak

runCode(a)

CATATAN. argumen default harus selalu berada di akhir daftar argumen, Anda tidak dapat memiliki argumen default sebelum argumen nyata dalam daftar argumen

Panjang sys. argv dihitung mulai dari 1, 1 menjadi perintah sebenarnya dua menjadi argumen pertama yang diberikan. Ini menjelaskan mengapa kami mengatakan jika len(sys. argv) > 2 ketika kami hanya memberikan dua argumen. perintah dengan dua argumen adalah total 3

Menentukan fungsi Anda sendiri adalah keterampilan penting untuk menulis kode yang bersih dan efektif. Dalam tutorial ini, Anda akan mengeksplorasi teknik yang Anda miliki untuk mendefinisikan fungsi Python yang menggunakan argumen opsional. Saat Anda menguasai argumen opsional Python, Anda akan dapat menentukan fungsi yang lebih kuat dan lebih fleksibel

Dalam tutorial ini, Anda akan belajar

  • Apa perbedaan antara parameter dan argumen
  • Cara mendefinisikan fungsi dengan argumen opsional dan nilai parameter default
  • Cara mendefinisikan fungsi menggunakan
    # optional_params.py
    
    shopping_list = {}
    
    # ...
    
    def add_item(item_name, quantity):
        if item_name in shopping_list.keys():
            shopping_list[item_name] += quantity
        else:
            shopping_list[item_name] = quantity
    
    add_item("Bread", 1)
    print(shopping_list)
    
    _4 dan
    # optional_params.py
    
    shopping_list = {}
    
    # ...
    
    def add_item(item_name, quantity):
        if item_name in shopping_list.keys():
            shopping_list[item_name] += quantity
        else:
            shopping_list[item_name] = quantity
    
    add_item("Bread", 1)
    print(shopping_list)
    
    5
  • Cara menangani pesan kesalahan tentang argumen opsional

Untuk mendapatkan hasil maksimal dari tutorial ini, Anda memerlukan pemahaman tentang mendefinisikan fungsi dengan argumen yang diperlukan

Bonus Gratis. Klik di sini untuk mendapatkan Cheat Sheet Python dan mempelajari dasar-dasar Python 3, seperti bekerja dengan tipe data, kamus, daftar, dan fungsi Python

Membuat Fungsi dengan Python untuk Menggunakan Kembali Kode

Anda dapat menganggap suatu fungsi sebagai program mini yang berjalan di dalam program lain atau di dalam fungsi lain. Program utama memanggil mini-program dan mengirimkan informasi yang dibutuhkan mini-program saat dijalankan. Saat fungsi menyelesaikan semua tindakannya, ia mungkin mengirimkan beberapa data kembali ke program utama yang memanggilnya

Tujuan utama dari suatu fungsi adalah untuk memungkinkan Anda menggunakan kembali kode di dalamnya kapan pun Anda membutuhkannya, menggunakan masukan yang berbeda jika diperlukan

Saat Anda menggunakan fungsi, Anda memperluas kosakata Python Anda. Ini memungkinkan Anda mengekspresikan solusi untuk masalah Anda dengan cara yang lebih jelas dan ringkas

Di Python, dengan konvensi, Anda harus memberi nama fungsi menggunakan huruf kecil dengan kata-kata yang dipisahkan oleh garis bawah, seperti

# optional_params.py

shopping_list = {}

# ...

def add_item(item_name, quantity):
    if item_name in shopping_list.keys():
        shopping_list[item_name] += quantity
    else:
        shopping_list[item_name] = quantity

add_item("Bread", 1)
print(shopping_list)
6. Konvensi ini dijelaskan dalam PEP 8, yang merupakan panduan gaya Python. Anda harus menambahkan tanda kurung setelah nama fungsi saat Anda memanggilnya. Karena fungsi mewakili tindakan, praktik terbaik adalah memulai nama fungsi Anda dengan kata kerja agar kode Anda lebih mudah dibaca

Hilangkan iklan

Mendefinisikan Fungsi Tanpa Parameter Input

Dalam tutorial ini, Anda akan menggunakan contoh program dasar yang membuat dan mengelola daftar belanja dan mencetaknya saat Anda siap pergi ke supermarket

Mulailah dengan membuat daftar belanja

shopping_list = {
    "Bread": 1,
    "Milk": 2,
    "Chocolate": 1,
    "Butter": 1,
    "Coffee": 1,
}

Anda menggunakan kamus untuk menyimpan nama item sebagai kunci dan jumlah yang perlu Anda beli untuk setiap item sebagai nilainya. Anda dapat menentukan fungsi untuk menampilkan daftar belanja

# optional_params.py

shopping_list = {
    "Bread": 1,
    "Milk": 2,
    "Chocolate": 1,
    "Butter": 1,
    "Coffee": 1,
}

def show_list():
    for item_name, quantity in shopping_list.items():
        print(f"{quantity}x {item_name}")

show_list()
_

Saat Anda menjalankan skrip ini, Anda akan mendapatkan hasil cetak dari daftar belanja

$ python optional_params.py
1x Bread
2x Milk
1x Chocolate
1x Butter
1x Coffee

Fungsi yang Anda tetapkan tidak memiliki parameter masukan karena tanda kurung pada tanda tangan fungsi kosong. Tanda tangan adalah baris pertama dalam definisi fungsi

def show_list():
_

Anda tidak memerlukan parameter input apa pun dalam contoh ini karena kamus

# optional_params.py

shopping_list = {}

# ...

def add_item(item_name, quantity):
    if item_name in shopping_list.keys():
        shopping_list[item_name] += quantity
    else:
        shopping_list[item_name] = quantity

add_item("Bread", 1)
print(shopping_list)
7 adalah variabel global. Ini berarti dapat diakses dari mana saja di dalam program, termasuk dari dalam definisi fungsi. Ini disebut ruang lingkup global. Anda dapat membaca lebih lanjut tentang ruang lingkup di Lingkup Python & Aturan LEGB. Menyelesaikan Nama di Kode Anda

Menggunakan variabel global dengan cara ini bukanlah praktik yang baik. Ini dapat menyebabkan beberapa fungsi membuat perubahan pada struktur data yang sama, yang dapat menyebabkan bug yang sulit ditemukan. Anda akan melihat bagaimana meningkatkannya nanti dalam tutorial ini saat Anda meneruskan kamus ke fungsi sebagai argumen

Di bagian selanjutnya, Anda akan menentukan fungsi yang memiliki parameter masukan

Mendefinisikan Fungsi Dengan Argumen Input yang Diperlukan

Alih-alih menulis daftar belanja langsung dalam kode, Anda sekarang dapat menginisialisasi kamus kosong dan menulis fungsi yang memungkinkan Anda menambahkan item ke daftar belanja

# optional_params.py

shopping_list = {}

# ...

def add_item(item_name, quantity):
    if item_name in shopping_list.keys():
        shopping_list[item_name] += quantity
    else:
        shopping_list[item_name] = quantity

add_item("Bread", 1)
print(shopping_list)

Fungsi beralih melalui tombol kamus, dan jika kuncinya ada, jumlahnya bertambah. Jika item bukan salah satu kunci, kunci dibuat dan nilai

# optional_params.py

shopping_list = {}

# ...

def add_item(item_name, quantity):
    if item_name in shopping_list.keys():
        shopping_list[item_name] += quantity
    else:
        shopping_list[item_name] = quantity

add_item("Bread", 1)
print(shopping_list)
8 ditetapkan untuknya. Anda dapat menjalankan skrip ini untuk menampilkan kamus tercetak

$ python optional_params.py
{'Bread': 1}

Anda telah menyertakan dua parameter dalam tanda tangan fungsi

  1. # optional_params.py
    
    shopping_list = {}
    
    # ...
    
    def add_item(item_name, quantity):
        if item_name in shopping_list.keys():
            shopping_list[item_name] += quantity
        else:
            shopping_list[item_name] = quantity
    
    add_item("Bread", 1)
    print(shopping_list)
    
    _9
  2. $ python optional_params.py
    {'Bread': 1}
    
    _0

Parameter belum memiliki nilai apa pun. Nama parameter digunakan dalam kode dalam definisi fungsi. Saat Anda memanggil fungsi, Anda meneruskan argumen di dalam tanda kurung, satu untuk setiap parameter. Argumen adalah nilai yang Anda berikan ke fungsi

Perbedaan antara parameter dan argumen seringkali dapat diabaikan. Itu perbedaan yang halus tapi penting. Anda terkadang menemukan parameter yang disebut sebagai parameter formal dan argumen sebagai parameter sebenarnya

Argumen yang Anda masukkan saat memanggil

$ python optional_params.py
{'Bread': 1}
1 adalah argumen yang diperlukan. Jika Anda mencoba memanggil fungsi tanpa argumen, Anda akan mendapatkan kesalahan

# optional_params.py

shopping_list = {}

def add_item(item_name, quantity):
    if item_name in shopping_list.keys():
        shopping_list[item_name] += quantity
    else:
        shopping_list[item_name] = quantity

add_item()
print(shopping_list)

Traceback akan memberikan

$ python optional_params.py
{'Bread': 1}
_2 yang menyatakan bahwa argumen diperlukan

$ python optional_params.py
Traceback (most recent call last):
  File "optional_params.py", line 11, in <module>
    add_item()
TypeError: add_item() missing 2 required positional arguments: 'item_name' and 'quantity'

Anda akan melihat lebih banyak pesan kesalahan yang terkait dengan penggunaan jumlah argumen yang salah, atau penggunaannya dengan urutan yang salah, di bagian selanjutnya dari tutorial ini

Hilangkan iklan

Menggunakan Argumen Opsional Python Dengan Nilai Default

Di bagian ini, Anda akan mempelajari cara mendefinisikan fungsi yang menggunakan argumen opsional. Fungsi dengan argumen opsional menawarkan lebih banyak fleksibilitas dalam cara Anda menggunakannya. Anda dapat memanggil fungsi dengan atau tanpa argumen, dan jika tidak ada argumen dalam pemanggilan fungsi, maka nilai default akan digunakan

Nilai Default Ditetapkan ke Parameter Input

Anda dapat memodifikasi fungsi

$ python optional_params.py
{'Bread': 1}
_1 sehingga parameter
$ python optional_params.py
{'Bread': 1}
0 memiliki nilai default

# optional_params.py

shopping_list = {}

def add_item(item_name, quantity=1):
    if item_name in shopping_list.keys():
        shopping_list[item_name] += quantity
    else:
        shopping_list[item_name] = quantity

add_item("Bread")
add_item("Milk", 2)
print(shopping_list)

Di tanda tangan fungsi, Anda telah menambahkan nilai default

# optional_params.py

shopping_list = {}

# ...

def add_item(item_name, quantity):
    if item_name in shopping_list.keys():
        shopping_list[item_name] += quantity
    else:
        shopping_list[item_name] = quantity

add_item("Bread", 1)
print(shopping_list)
8 ke parameter
$ python optional_params.py
{'Bread': 1}
0. Ini tidak berarti bahwa nilai
$ python optional_params.py
{'Bread': 1}
0 akan selalu menjadi
# optional_params.py

shopping_list = {}

# ...

def add_item(item_name, quantity):
    if item_name in shopping_list.keys():
        shopping_list[item_name] += quantity
    else:
        shopping_list[item_name] = quantity

add_item("Bread", 1)
print(shopping_list)
8. Jika Anda memberikan argumen yang sesuai dengan
$ python optional_params.py
{'Bread': 1}
0 saat Anda memanggil fungsi, maka argumen tersebut akan digunakan sebagai nilai untuk parameter. Namun, jika Anda tidak memberikan argumen apa pun, maka nilai default akan digunakan

Parameter dengan nilai default tidak dapat diikuti oleh parameter biasa. Anda akan membaca selengkapnya tentang urutan di mana Anda dapat menentukan parameter nanti di tutorial ini

Fungsi

$ python optional_params.py
{'Bread': 1}
_1 sekarang memiliki satu parameter wajib dan satu parameter opsional. Dalam contoh kode di atas, Anda memanggil
$ python optional_params.py
{'Bread': 1}
1 dua kali. Panggilan fungsi pertama Anda memiliki satu argumen, yang sesuai dengan parameter yang diperlukan
# optional_params.py

shopping_list = {}

# ...

def add_item(item_name, quantity):
    if item_name in shopping_list.keys():
        shopping_list[item_name] += quantity
    else:
        shopping_list[item_name] = quantity

add_item("Bread", 1)
print(shopping_list)
9. Dalam hal ini,
$ python optional_params.py
{'Bread': 1}
_0 default ke
# optional_params.py

shopping_list = {}

# ...

def add_item(item_name, quantity):
    if item_name in shopping_list.keys():
        shopping_list[item_name] += quantity
    else:
        shopping_list[item_name] = quantity

add_item("Bread", 1)
print(shopping_list)
8. Panggilan fungsi kedua Anda memiliki dua argumen, jadi nilai default tidak digunakan dalam kasus ini. Anda dapat melihat output dari ini di bawah ini

$ python optional_params.py
{'Bread': 1, 'Milk': 2}

Anda juga dapat meneruskan argumen wajib dan opsional ke dalam fungsi sebagai argumen kata kunci. Argumen kata kunci juga dapat disebut sebagai argumen bernama

# optional_params.py

shopping_list = {
    "Bread": 1,
    "Milk": 2,
    "Chocolate": 1,
    "Butter": 1,
    "Coffee": 1,
}

def show_list():
    for item_name, quantity in shopping_list.items():
        print(f"{quantity}x {item_name}")

show_list()
_0

Anda sekarang dapat mengunjungi kembali fungsi pertama yang Anda tentukan dalam tutorial ini dan memfaktorkan ulangnya sehingga ia juga menerima argumen default

# optional_params.py

shopping_list = {
    "Bread": 1,
    "Milk": 2,
    "Chocolate": 1,
    "Butter": 1,
    "Coffee": 1,
}

def show_list():
    for item_name, quantity in shopping_list.items():
        print(f"{quantity}x {item_name}")

show_list()
_1

Sekarang ketika Anda menggunakan

# optional_params.py

shopping_list = {}

def add_item(item_name, quantity):
    if item_name in shopping_list.keys():
        shopping_list[item_name] += quantity
    else:
        shopping_list[item_name] = quantity

add_item()
print(shopping_list)
_5, Anda dapat memanggilnya tanpa argumen masukan atau meneruskan nilai Boolean sebagai argumen bendera. Jika Anda tidak memberikan argumen apa pun saat memanggil fungsi, maka daftar belanja ditampilkan dengan menunjukkan nama dan jumlah setiap item. Fungsi akan menampilkan output yang sama jika Anda memberikan
# optional_params.py

shopping_list = {}

def add_item(item_name, quantity):
    if item_name in shopping_list.keys():
        shopping_list[item_name] += quantity
    else:
        shopping_list[item_name] = quantity

add_item()
print(shopping_list)
6 sebagai argumen saat memanggil fungsi. Namun, jika Anda menggunakan
# optional_params.py

shopping_list = {}

def add_item(item_name, quantity):
    if item_name in shopping_list.keys():
        shopping_list[item_name] += quantity
    else:
        shopping_list[item_name] = quantity

add_item()
print(shopping_list)
7, hanya nama item yang ditampilkan

Anda harus menghindari penggunaan flag jika nilai flag mengubah perilaku fungsi secara signifikan. Suatu fungsi seharusnya hanya bertanggung jawab untuk satu hal. Jika Anda ingin bendera mendorong fungsi ke jalur alternatif, Anda dapat mempertimbangkan untuk menulis fungsi terpisah

Nilai Argumen Default Umum

Dalam contoh yang Anda kerjakan di atas, Anda menggunakan

# optional_params.py

shopping_list = {}

# ...

def add_item(item_name, quantity):
    if item_name in shopping_list.keys():
        shopping_list[item_name] += quantity
    else:
        shopping_list[item_name] = quantity

add_item("Bread", 1)
print(shopping_list)
8 sebagai nilai default dalam satu kasus dan nilai Boolean
# optional_params.py

shopping_list = {}

def add_item(item_name, quantity):
    if item_name in shopping_list.keys():
        shopping_list[item_name] += quantity
    else:
        shopping_list[item_name] = quantity

add_item()
print(shopping_list)
6 dalam kasus lain. Ini adalah nilai default umum yang akan Anda temukan dalam definisi fungsi. Namun, tipe data yang harus Anda gunakan untuk nilai default bergantung pada fungsi yang Anda definisikan dan bagaimana Anda ingin fungsi tersebut digunakan

Bilangan bulat

$ python optional_params.py
Traceback (most recent call last):
  File "optional_params.py", line 11, in <module>
    add_item()
TypeError: add_item() missing 2 required positional arguments: 'item_name' and 'quantity'
0 dan
# optional_params.py

shopping_list = {}

# ...

def add_item(item_name, quantity):
    if item_name in shopping_list.keys():
        shopping_list[item_name] += quantity
    else:
        shopping_list[item_name] = quantity

add_item("Bread", 1)
print(shopping_list)
8 adalah nilai default umum yang digunakan saat nilai parameter harus berupa bilangan bulat. Ini karena
$ python optional_params.py
Traceback (most recent call last):
  File "optional_params.py", line 11, in <module>
    add_item()
TypeError: add_item() missing 2 required positional arguments: 'item_name' and 'quantity'
0 dan
# optional_params.py

shopping_list = {}

# ...

def add_item(item_name, quantity):
    if item_name in shopping_list.keys():
        shopping_list[item_name] += quantity
    else:
        shopping_list[item_name] = quantity

add_item("Bread", 1)
print(shopping_list)
8 seringkali merupakan nilai fallback yang berguna untuk dimiliki. Dalam fungsi
$ python optional_params.py
{'Bread': 1}
_1 yang Anda tulis sebelumnya, menyetel jumlah item baru ke
# optional_params.py

shopping_list = {}

# ...

def add_item(item_name, quantity):
    if item_name in shopping_list.keys():
        shopping_list[item_name] += quantity
    else:
        shopping_list[item_name] = quantity

add_item("Bread", 1)
print(shopping_list)
8 adalah opsi yang paling logis

Namun, jika Anda memiliki kebiasaan membeli dua dari semua yang Anda beli saat pergi ke supermarket, maka menyetel nilai default ke

$ python optional_params.py
Traceback (most recent call last):
  File "optional_params.py", line 11, in <module>
    add_item()
TypeError: add_item() missing 2 required positional arguments: 'item_name' and 'quantity'
6 mungkin lebih tepat untuk Anda

Ketika parameter input harus berupa string, nilai default umum yang digunakan adalah string kosong (

$ python optional_params.py
Traceback (most recent call last):
  File "optional_params.py", line 11, in <module>
    add_item()
TypeError: add_item() missing 2 required positional arguments: 'item_name' and 'quantity'
7). Ini memberikan nilai yang tipe datanya adalah string tetapi tidak memasukkan karakter tambahan apa pun. Anda dapat memodifikasi
$ python optional_params.py
{'Bread': 1}
_1 sehingga kedua argumen bersifat opsional

# optional_params.py

shopping_list = {
    "Bread": 1,
    "Milk": 2,
    "Chocolate": 1,
    "Butter": 1,
    "Coffee": 1,
}

def show_list():
    for item_name, quantity in shopping_list.items():
        print(f"{quantity}x {item_name}")

show_list()
_2

Anda telah memodifikasi fungsi sehingga kedua parameter memiliki nilai default dan oleh karena itu fungsi dapat dipanggil tanpa parameter masukan

# optional_params.py

shopping_list = {
    "Bread": 1,
    "Milk": 2,
    "Chocolate": 1,
    "Butter": 1,
    "Coffee": 1,
}

def show_list():
    for item_name, quantity in shopping_list.items():
        print(f"{quantity}x {item_name}")

show_list()
_3

Baris kode ini akan menambahkan item ke kamus ________0______7 dengan string kosong sebagai kunci dan nilai

# optional_params.py

shopping_list = {}

# ...

def add_item(item_name, quantity):
    if item_name in shopping_list.keys():
        shopping_list[item_name] += quantity
    else:
        shopping_list[item_name] = quantity

add_item("Bread", 1)
print(shopping_list)
8. Cukup umum untuk memeriksa apakah argumen telah diteruskan saat fungsi dipanggil dan menjalankan beberapa kode yang sesuai. Anda dapat mengubah fungsi di atas untuk melakukan ini

# optional_params.py

shopping_list = {
    "Bread": 1,
    "Milk": 2,
    "Chocolate": 1,
    "Butter": 1,
    "Coffee": 1,
}

def show_list():
    for item_name, quantity in shopping_list.items():
        print(f"{quantity}x {item_name}")

show_list()
_4

Dalam versi ini, jika tidak ada item yang diteruskan ke fungsi, fungsi akan menetapkan kuantitas ke

$ python optional_params.py
Traceback (most recent call last):
  File "optional_params.py", line 11, in <module>
    add_item()
TypeError: add_item() missing 2 required positional arguments: 'item_name' and 'quantity'
0. String kosong memiliki nilai salah, yang berarti bahwa
# optional_params.py

shopping_list = {}

def add_item(item_name, quantity=1):
    if item_name in shopping_list.keys():
        shopping_list[item_name] += quantity
    else:
        shopping_list[item_name] = quantity

add_item("Bread")
add_item("Milk", 2)
print(shopping_list)
2 mengembalikan
# optional_params.py

shopping_list = {}

def add_item(item_name, quantity=1):
    if item_name in shopping_list.keys():
        shopping_list[item_name] += quantity
    else:
        shopping_list[item_name] = quantity

add_item("Bread")
add_item("Milk", 2)
print(shopping_list)
3, sedangkan string lainnya akan memiliki nilai kebenaran. Ketika kata kunci
# optional_params.py

shopping_list = {}

def add_item(item_name, quantity=1):
    if item_name in shopping_list.keys():
        shopping_list[item_name] += quantity
    else:
        shopping_list[item_name] = quantity

add_item("Bread")
add_item("Milk", 2)
print(shopping_list)
_4 diikuti oleh nilai benar atau salah, pernyataan
# optional_params.py

shopping_list = {}

def add_item(item_name, quantity=1):
    if item_name in shopping_list.keys():
        shopping_list[item_name] += quantity
    else:
        shopping_list[item_name] = quantity

add_item("Bread")
add_item("Milk", 2)
print(shopping_list)
4 akan menafsirkan ini sebagai
# optional_params.py

shopping_list = {}

def add_item(item_name, quantity):
    if item_name in shopping_list.keys():
        shopping_list[item_name] += quantity
    else:
        shopping_list[item_name] = quantity

add_item()
print(shopping_list)
6 atau
# optional_params.py

shopping_list = {}

def add_item(item_name, quantity=1):
    if item_name in shopping_list.keys():
        shopping_list[item_name] += quantity
    else:
        shopping_list[item_name] = quantity

add_item("Bread")
add_item("Milk", 2)
print(shopping_list)
3. Anda dapat membaca lebih lanjut tentang nilai benar dan salah dalam Python Boolean. Optimalkan Kode Anda Dengan Nilai Kebenaran

Oleh karena itu, Anda dapat menggunakan variabel secara langsung dalam pernyataan

# optional_params.py

shopping_list = {}

def add_item(item_name, quantity=1):
    if item_name in shopping_list.keys():
        shopping_list[item_name] += quantity
    else:
        shopping_list[item_name] = quantity

add_item("Bread")
add_item("Milk", 2)
print(shopping_list)
4 untuk memeriksa apakah argumen opsional digunakan

Nilai umum lainnya yang sering digunakan sebagai nilai default adalah

# optional_params.py

shopping_list = {}

def add_item(item_name, quantity=1):
    if item_name in shopping_list.keys():
        shopping_list[item_name] += quantity
    else:
        shopping_list[item_name] = quantity

add_item("Bread")
add_item("Milk", 2)
print(shopping_list)
9. Ini adalah cara Python untuk tidak merepresentasikan apa-apa, meskipun sebenarnya ini adalah objek yang merepresentasikan nilai null. Anda akan melihat contoh kapan
# optional_params.py

shopping_list = {}

def add_item(item_name, quantity=1):
    if item_name in shopping_list.keys():
        shopping_list[item_name] += quantity
    else:
        shopping_list[item_name] = quantity

add_item("Bread")
add_item("Milk", 2)
print(shopping_list)
_9 adalah nilai default yang berguna untuk digunakan di bagian selanjutnya

Hilangkan iklan

Tipe Data Yang Tidak Boleh Digunakan Sebagai Argumen Default

Anda telah menggunakan bilangan bulat dan string sebagai nilai default pada contoh di atas, dan

# optional_params.py

shopping_list = {}

def add_item(item_name, quantity=1):
    if item_name in shopping_list.keys():
        shopping_list[item_name] += quantity
    else:
        shopping_list[item_name] = quantity

add_item("Bread")
add_item("Milk", 2)
print(shopping_list)
9 adalah nilai default umum lainnya. Ini bukan satu-satunya tipe data yang dapat Anda gunakan sebagai nilai default. Namun, tidak semua tipe data harus digunakan

Di bagian ini, Anda akan melihat mengapa tipe data yang dapat berubah tidak boleh digunakan sebagai nilai default dalam definisi fungsi. Objek yang dapat diubah adalah objek yang nilainya dapat diubah, seperti daftar atau kamus. Anda dapat mengetahui lebih lanjut tentang tipe data yang dapat diubah dan tidak dapat diubah di Kekekalan di Python dan di

Anda dapat menambahkan kamus yang berisi nama item dan jumlahnya sebagai parameter input ke fungsi yang Anda tentukan sebelumnya. Anda bisa mulai dengan membuat semua argumen yang diperlukan

# optional_params.py

shopping_list = {
    "Bread": 1,
    "Milk": 2,
    "Chocolate": 1,
    "Butter": 1,
    "Coffee": 1,
}

def show_list():
    for item_name, quantity in shopping_list.items():
        print(f"{quantity}x {item_name}")

show_list()
_5

Anda sekarang dapat meneruskan

# optional_params.py

shopping_list = {}

# ...

def add_item(item_name, quantity):
    if item_name in shopping_list.keys():
        shopping_list[item_name] += quantity
    else:
        shopping_list[item_name] = quantity

add_item("Bread", 1)
print(shopping_list)
_7 ke fungsi saat Anda memanggilnya. Hal ini membuat fungsi lebih mandiri karena tidak bergantung pada variabel yang disebut
# optional_params.py

shopping_list = {}

# ...

def add_item(item_name, quantity):
    if item_name in shopping_list.keys():
        shopping_list[item_name] += quantity
    else:
        shopping_list[item_name] = quantity

add_item("Bread", 1)
print(shopping_list)
7 ada dalam lingkup yang memanggil fungsi. Perubahan ini juga membuat fungsi lebih fleksibel karena Anda dapat menggunakannya dengan kamus masukan yang berbeda

Anda juga telah menambahkan pernyataan

$ python optional_params.py
{'Bread': 1, 'Milk': 2}
_4 untuk mengembalikan kamus yang dimodifikasi. Baris ini secara teknis tidak diperlukan pada tahap ini karena kamus adalah tipe data yang dapat diubah dan oleh karena itu fungsinya akan mengubah keadaan kamus yang ada di modul utama. Namun, Anda memerlukan pernyataan
$ python optional_params.py
{'Bread': 1, 'Milk': 2}
4 nanti saat Anda membuat argumen ini opsional, jadi sebaiknya sertakan sekarang

Untuk memanggil fungsi, Anda harus menetapkan data yang dikembalikan oleh fungsi ke variabel

# optional_params.py

shopping_list = {
    "Bread": 1,
    "Milk": 2,
    "Chocolate": 1,
    "Butter": 1,
    "Coffee": 1,
}

def show_list():
    for item_name, quantity in shopping_list.items():
        print(f"{quantity}x {item_name}")

show_list()
_6

Anda juga dapat menambahkan parameter

# optional_params.py

shopping_list = {}

# ...

def add_item(item_name, quantity):
    if item_name in shopping_list.keys():
        shopping_list[item_name] += quantity
    else:
        shopping_list[item_name] = quantity

add_item("Bread", 1)
print(shopping_list)
_7 ke
# optional_params.py

shopping_list = {}

def add_item(item_name, quantity):
    if item_name in shopping_list.keys():
        shopping_list[item_name] += quantity
    else:
        shopping_list[item_name] = quantity

add_item()
print(shopping_list)
5, fungsi pertama yang Anda tentukan dalam tutorial ini. Anda sekarang dapat memiliki beberapa daftar belanja dalam program Anda dan menggunakan fungsi yang sama untuk menambahkan item dan menampilkan daftar belanja

# optional_params.py

shopping_list = {
    "Bread": 1,
    "Milk": 2,
    "Chocolate": 1,
    "Butter": 1,
    "Coffee": 1,
}

def show_list():
    for item_name, quantity in shopping_list.items():
        print(f"{quantity}x {item_name}")

show_list()
_7

Anda dapat melihat output dari kode ini di bawah ini. Daftar item yang akan dibeli dari toko perangkat keras ditampilkan terlebih dahulu. Bagian kedua dari keluaran menunjukkan barang-barang yang dibutuhkan dari supermarket

# optional_params.py

shopping_list = {
    "Bread": 1,
    "Milk": 2,
    "Chocolate": 1,
    "Butter": 1,
    "Coffee": 1,
}

def show_list():
    for item_name, quantity in shopping_list.items():
        print(f"{quantity}x {item_name}")

show_list()
_8

Anda sekarang akan menambahkan nilai default untuk parameter

# optional_params.py

shopping_list = {}

# ...

def add_item(item_name, quantity):
    if item_name in shopping_list.keys():
        shopping_list[item_name] += quantity
    else:
        shopping_list[item_name] = quantity

add_item("Bread", 1)
print(shopping_list)
7 di
$ python optional_params.py
{'Bread': 1}
1 sehingga jika tidak ada kamus yang diteruskan ke fungsi, kamus kosong akan digunakan. Opsi yang paling menggoda adalah menjadikan nilai default sebagai kamus kosong. Anda akan segera mengetahui mengapa ini bukan ide yang bagus, tetapi Anda dapat mencoba opsi ini untuk saat ini

# optional_params.py

shopping_list = {
    "Bread": 1,
    "Milk": 2,
    "Chocolate": 1,
    "Butter": 1,
    "Coffee": 1,
}

def show_list():
    for item_name, quantity in shopping_list.items():
        print(f"{quantity}x {item_name}")

show_list()
_9

Saat Anda menjalankan skrip ini, Anda akan mendapatkan keluaran di bawah ini yang menunjukkan barang-barang yang dibutuhkan dari toko pakaian, yang mungkin memberi kesan bahwa kode ini berfungsi sebagaimana mestinya

$ python optional_params.py
1x Bread
2x Milk
1x Chocolate
1x Butter
1x Coffee
0

Namun, kode ini memiliki kelemahan serius yang dapat menyebabkan hasil yang tidak diharapkan dan salah. Anda dapat menambahkan daftar belanja baru untuk barang-barang yang dibutuhkan dari toko elektronik dengan menggunakan

$ python optional_params.py
{'Bread': 1}
1 tanpa argumen yang sesuai dengan
# optional_params.py

shopping_list = {}

# ...

def add_item(item_name, quantity):
    if item_name in shopping_list.keys():
        shopping_list[item_name] += quantity
    else:
        shopping_list[item_name] = quantity

add_item("Bread", 1)
print(shopping_list)
7. Ini mengarah ke nilai default yang digunakan, yang Anda harap akan membuat kamus kosong baru

$ python optional_params.py
1x Bread
2x Milk
1x Chocolate
1x Butter
1x Coffee
1

Anda akan melihat masalahnya saat melihat keluaran dari kode ini

$ python optional_params.py
1x Bread
2x Milk
1x Chocolate
1x Butter
1x Coffee
2

Kedua daftar belanja identik meskipun Anda menetapkan output dari

$ python optional_params.py
{'Bread': 1}
1 ke variabel yang berbeda setiap kali Anda memanggil fungsi. Masalahnya terjadi karena kamus adalah tipe data yang bisa berubah

Anda menetapkan kamus kosong sebagai nilai default untuk parameter

# optional_params.py

shopping_list = {}

# ...

def add_item(item_name, quantity):
    if item_name in shopping_list.keys():
        shopping_list[item_name] += quantity
    else:
        shopping_list[item_name] = quantity

add_item("Bread", 1)
print(shopping_list)
7 saat Anda menentukan fungsi. Pertama kali Anda memanggil fungsi, kamus ini kosong. Namun, karena kamus adalah tipe yang dapat diubah, saat Anda menetapkan nilai ke kamus, kamus default tidak lagi kosong

Saat Anda memanggil fungsi untuk kedua kalinya dan nilai default untuk

# optional_params.py

shopping_list = {}

# ...

def add_item(item_name, quantity):
    if item_name in shopping_list.keys():
        shopping_list[item_name] += quantity
    else:
        shopping_list[item_name] = quantity

add_item("Bread", 1)
print(shopping_list)
7 diperlukan lagi, kamus default tidak lagi kosong karena diisi saat pertama kali Anda memanggil fungsi. Karena Anda memanggil fungsi yang sama, Anda menggunakan kamus default yang sama yang tersimpan di memori

Perilaku ini tidak terjadi dengan tipe data yang tidak dapat diubah. Solusi untuk masalah ini adalah menggunakan nilai default lain, seperti

# optional_params.py

shopping_list = {}

def add_item(item_name, quantity=1):
    if item_name in shopping_list.keys():
        shopping_list[item_name] += quantity
    else:
        shopping_list[item_name] = quantity

add_item("Bread")
add_item("Milk", 2)
print(shopping_list)
9, lalu membuat kamus kosong di dalam fungsi saat tidak ada argumen opsional yang diteruskan

$ python optional_params.py
1x Bread
2x Milk
1x Chocolate
1x Butter
1x Coffee
_3

Anda dapat memeriksa apakah kamus telah diteruskan sebagai argumen menggunakan pernyataan

# optional_params.py

shopping_list = {}

def add_item(item_name, quantity=1):
    if item_name in shopping_list.keys():
        shopping_list[item_name] += quantity
    else:
        shopping_list[item_name] = quantity

add_item("Bread")
add_item("Milk", 2)
print(shopping_list)
4. Anda tidak boleh bergantung pada sifat salah
# optional_params.py

shopping_list = {}

def add_item(item_name, quantity=1):
    if item_name in shopping_list.keys():
        shopping_list[item_name] += quantity
    else:
        shopping_list[item_name] = quantity

add_item("Bread")
add_item("Milk", 2)
print(shopping_list)
9 melainkan secara eksplisit memeriksa bahwa argumennya adalah
# optional_params.py

shopping_list = {}

def add_item(item_name, quantity=1):
    if item_name in shopping_list.keys():
        shopping_list[item_name] += quantity
    else:
        shopping_list[item_name] = quantity

add_item("Bread")
add_item("Milk", 2)
print(shopping_list)
9. Mengandalkan fakta bahwa
# optional_params.py

shopping_list = {}

def add_item(item_name, quantity=1):
    if item_name in shopping_list.keys():
        shopping_list[item_name] += quantity
    else:
        shopping_list[item_name] = quantity

add_item("Bread")
add_item("Milk", 2)
print(shopping_list)
_9 akan diperlakukan sebagai nilai salah dapat menyebabkan masalah jika argumen lain yang salah diteruskan

Sekarang ketika Anda menjalankan skrip Anda lagi, Anda akan mendapatkan hasil yang benar karena kamus baru dibuat setiap kali Anda menggunakan fungsi dengan nilai default untuk

# optional_params.py

shopping_list = {}

# ...

def add_item(item_name, quantity):
    if item_name in shopping_list.keys():
        shopping_list[item_name] += quantity
    else:
        shopping_list[item_name] = quantity

add_item("Bread", 1)
print(shopping_list)
7

$ python optional_params.py
1x Bread
2x Milk
1x Chocolate
1x Butter
1x Coffee
_4

Anda harus selalu menghindari penggunaan tipe data yang dapat diubah sebagai nilai default saat menentukan fungsi dengan parameter opsional

Hilangkan iklan

Pesan Kesalahan Terkait dengan Argumen Input

Salah satu pesan kesalahan paling umum yang akan Anda temui adalah saat Anda memanggil fungsi yang memerlukan argumen, tetapi Anda tidak meneruskan argumen tersebut dalam pemanggilan fungsi

$ python optional_params.py
1x Bread
2x Milk
1x Chocolate
1x Butter
1x Coffee
5

Di sini, Anda memanggil

$ python optional_params.py
{'Bread': 1}
_1 tanpa memberikan argumen yang diperlukan
# optional_params.py

shopping_list = {}

# ...

def add_item(item_name, quantity):
    if item_name in shopping_list.keys():
        shopping_list[item_name] += quantity
    else:
        shopping_list[item_name] = quantity

add_item("Bread", 1)
print(shopping_list)
9 dan
$ python optional_params.py
{'Bread': 1}
0. Anda akan mendapatkan
$ python optional_params.py
{'Bread': 1}
2 setiap kali argumen yang diperlukan tidak ada

$ python optional_params.py
1x Bread
2x Milk
1x Chocolate
1x Butter
1x Coffee
_6

Pesan kesalahan sangat membantu dalam kasus ini. Pesan kesalahan tidak selalu membantu seperti ini. Namun, parameter wajib yang hilang bukan satu-satunya pesan kesalahan yang akan Anda temui saat Anda belajar mendefinisikan fungsi dengan parameter wajib dan opsional

Ketika tidak ada parameter dalam definisi fungsi yang memiliki nilai default, Anda dapat mengurutkan parameter sesuai keinginan Anda. Hal yang sama berlaku ketika semua parameter memiliki nilai default. Namun, ketika Anda memiliki beberapa parameter dengan nilai default dan yang lainnya tidak, urutan di mana Anda menentukan parameter itu penting

Anda dapat mencoba menukar urutan parameter dengan dan tanpa nilai default dalam definisi

$ python optional_params.py
{'Bread': 1}
1

$ python optional_params.py
1x Bread
2x Milk
1x Chocolate
1x Butter
1x Coffee
_7

Pesan kesalahan yang akan Anda dapatkan saat menjalankan kode ini menjelaskan aturan dengan cukup jelas

$ python optional_params.py
1x Bread
2x Milk
1x Chocolate
1x Butter
1x Coffee
_8

Parameter tanpa nilai default harus selalu ada sebelum parameter yang memiliki nilai default. Dalam contoh di atas,

# optional_params.py

shopping_list = {}

# ...

def add_item(item_name, quantity):
    if item_name in shopping_list.keys():
        shopping_list[item_name] += quantity
    else:
        shopping_list[item_name] = quantity

add_item("Bread", 1)
print(shopping_list)
_9 dan
$ python optional_params.py
{'Bread': 1}
0 harus selalu diberi nilai sebagai argumen. Menempatkan parameter dengan nilai default terlebih dahulu akan membuat pemanggilan fungsi menjadi ambigu. Dua argumen wajib pertama kemudian dapat diikuti oleh argumen ketiga opsional

Menggunakan # optional_params.py shopping_list = {} # ... def add_item(item_name, quantity): if item_name in shopping_list.keys(): shopping_list[item_name] += quantity else: shopping_list[item_name] = quantity add_item("Bread", 1) print(shopping_list) 4 dan # optional_params.py shopping_list = {} # ... def add_item(item_name, quantity): if item_name in shopping_list.keys(): shopping_list[item_name] += quantity else: shopping_list[item_name] = quantity add_item("Bread", 1) print(shopping_list) 5

Ada dua jenis argumen opsional Python lain yang perlu Anda ketahui. Di bagian awal tutorial ini, Anda telah mempelajari cara membuat fungsi dengan argumen opsional. Jika Anda memerlukan lebih banyak argumen opsional, Anda dapat membuat lebih banyak parameter dengan nilai default saat menentukan fungsi

Namun, dimungkinkan untuk mendefinisikan fungsi yang menerima sejumlah argumen opsional. Anda bahkan dapat menentukan fungsi yang menerima sejumlah argumen kata kunci. Argumen kata kunci adalah argumen yang memiliki kata kunci dan nilai yang terkait dengannya, seperti yang akan Anda pelajari di bagian selanjutnya

Untuk mendefinisikan fungsi dengan jumlah variabel argumen dan kata kunci input, Anda harus mempelajari tentang

# optional_params.py

shopping_list = {}

# ...

def add_item(item_name, quantity):
    if item_name in shopping_list.keys():
        shopping_list[item_name] += quantity
    else:
        shopping_list[item_name] = quantity

add_item("Bread", 1)
print(shopping_list)
4 dan
# optional_params.py

shopping_list = {}

# ...

def add_item(item_name, quantity):
    if item_name in shopping_list.keys():
        shopping_list[item_name] += quantity
    else:
        shopping_list[item_name] = quantity

add_item("Bread", 1)
print(shopping_list)
5. Dalam tutorial ini, kita akan melihat poin terpenting yang perlu Anda ketahui tentang argumen opsional Python ini. Anda dapat menjelajahi
# optional_params.py

shopping_list = {}

# ...

def add_item(item_name, quantity):
    if item_name in shopping_list.keys():
        shopping_list[item_name] += quantity
    else:
        shopping_list[item_name] = quantity

add_item("Bread", 1)
print(shopping_list)
4 dan
# optional_params.py

shopping_list = {}

# ...

def add_item(item_name, quantity):
    if item_name in shopping_list.keys():
        shopping_list[item_name] += quantity
    else:
        shopping_list[item_name] = quantity

add_item("Bread", 1)
print(shopping_list)
5 lebih lanjut jika Anda ingin mempelajari lebih lanjut

Fungsi Menerima Sejumlah Argumen

Sebelum mendefinisikan fungsi yang menerima sejumlah argumen, Anda harus terbiasa dengan. Anda bisa mulai dengan daftar seperti berikut ini

>>>

$ python optional_params.py
1x Bread
2x Milk
1x Chocolate
1x Butter
1x Coffee
9

Variabel

# optional_params.py

shopping_list = {
    "Bread": 1,
    "Milk": 2,
    "Chocolate": 1,
    "Butter": 1,
    "Coffee": 1,
}

def show_list():
    for item_name, quantity in shopping_list.items():
        print(f"{quantity}x {item_name}")

show_list()
_24 menunjuk ke sebuah daftar, dan daftar itu, pada gilirannya, memiliki empat item di dalamnya. Jika Anda menggunakan
# optional_params.py

shopping_list = {
    "Bread": 1,
    "Milk": 2,
    "Chocolate": 1,
    "Butter": 1,
    "Coffee": 1,
}

def show_list():
    for item_name, quantity in shopping_list.items():
        print(f"{quantity}x {item_name}")

show_list()
24 sebagai argumen untuk
# optional_params.py

shopping_list = {
    "Bread": 1,
    "Milk": 2,
    "Chocolate": 1,
    "Butter": 1,
    "Coffee": 1,
}

def show_list():
    for item_name, quantity in shopping_list.items():
        print(f"{quantity}x {item_name}")

show_list()
26, maka Anda meneruskan satu variabel ke
# optional_params.py

shopping_list = {
    "Bread": 1,
    "Milk": 2,
    "Chocolate": 1,
    "Butter": 1,
    "Coffee": 1,
}

def show_list():
    for item_name, quantity in shopping_list.items():
        print(f"{quantity}x {item_name}")

show_list()
26

>>>

def show_list():
0

# optional_params.py

shopping_list = {
    "Bread": 1,
    "Milk": 2,
    "Chocolate": 1,
    "Butter": 1,
    "Coffee": 1,
}

def show_list():
    for item_name, quantity in shopping_list.items():
        print(f"{quantity}x {item_name}")

show_list()
_26 menampilkan daftar, seperti yang Anda harapkan. Namun, jika Anda harus menggunakan
# optional_params.py

shopping_list = {
    "Bread": 1,
    "Milk": 2,
    "Chocolate": 1,
    "Butter": 1,
    "Coffee": 1,
}

def show_list():
    for item_name, quantity in shopping_list.items():
        print(f"{quantity}x {item_name}")

show_list()
_29 di dalam tanda kurung
# optional_params.py

shopping_list = {
    "Bread": 1,
    "Milk": 2,
    "Chocolate": 1,
    "Butter": 1,
    "Coffee": 1,
}

def show_list():
    for item_name, quantity in shopping_list.items():
        print(f"{quantity}x {item_name}")

show_list()
26, Anda akan mendapatkan hasil yang berbeda

>>>

def show_list():
1

Kali ini,

# optional_params.py

shopping_list = {
    "Bread": 1,
    "Milk": 2,
    "Chocolate": 1,
    "Butter": 1,
    "Coffee": 1,
}

def show_list():
    for item_name, quantity in shopping_list.items():
        print(f"{quantity}x {item_name}")

show_list()
26 menampilkan empat string terpisah daripada daftar. Ini setara dengan menulis yang berikut ini

>>>

def show_list():
2

Ketika simbol asterisk atau bintang (

# optional_params.py

shopping_list = {
    "Bread": 1,
    "Milk": 2,
    "Chocolate": 1,
    "Butter": 1,
    "Coffee": 1,
}

def show_list():
    for item_name, quantity in shopping_list.items():
        print(f"{quantity}x {item_name}")

show_list()
32) digunakan tepat sebelum urutan, seperti
# optional_params.py

shopping_list = {
    "Bread": 1,
    "Milk": 2,
    "Chocolate": 1,
    "Butter": 1,
    "Coffee": 1,
}

def show_list():
    for item_name, quantity in shopping_list.items():
        print(f"{quantity}x {item_name}")

show_list()
24, urutan akan dibongkar menjadi komponen individualnya. Saat urutan seperti daftar dibongkar, itemnya diekstrak dan diperlakukan sebagai objek individual

Anda mungkin telah memperhatikan bahwa

# optional_params.py

shopping_list = {
    "Bread": 1,
    "Milk": 2,
    "Chocolate": 1,
    "Butter": 1,
    "Coffee": 1,
}

def show_list():
    for item_name, quantity in shopping_list.items():
        print(f"{quantity}x {item_name}")

show_list()
_26 dapat mengambil sejumlah argumen. Anda telah menggunakannya dengan satu argumen input dan dengan empat argumen input pada contoh di atas. Anda juga dapat menggunakan
# optional_params.py

shopping_list = {
    "Bread": 1,
    "Milk": 2,
    "Chocolate": 1,
    "Butter": 1,
    "Coffee": 1,
}

def show_list():
    for item_name, quantity in shopping_list.items():
        print(f"{quantity}x {item_name}")

show_list()
26 dengan tanda kurung kosong, dan itu akan mencetak baris kosong

Anda sekarang siap untuk mendefinisikan fungsi Anda sendiri yang menerima sejumlah variabel argumen input. Untuk sementara, Anda dapat menyederhanakan

# optional_params.py

shopping_list = {
    "Bread": 1,
    "Milk": 2,
    "Chocolate": 1,
    "Butter": 1,
    "Coffee": 1,
}

def show_list():
    for item_name, quantity in shopping_list.items():
        print(f"{quantity}x {item_name}")

show_list()
_36 untuk hanya menerima nama barang yang Anda inginkan dalam daftar belanja. Anda akan menetapkan jumlah ke
# optional_params.py

shopping_list = {}

# ...

def add_item(item_name, quantity):
    if item_name in shopping_list.keys():
        shopping_list[item_name] += quantity
    else:
        shopping_list[item_name] = quantity

add_item("Bread", 1)
print(shopping_list)
8 untuk setiap item. Anda kemudian akan kembali menyertakan kuantitas sebagai bagian dari argumen masukan di bagian selanjutnya

Tanda tangan fungsi yang menyertakan jumlah variabel argumen input menggunakan

# optional_params.py

shopping_list = {}

# ...

def add_item(item_name, quantity):
    if item_name in shopping_list.keys():
        shopping_list[item_name] += quantity
    else:
        shopping_list[item_name] = quantity

add_item("Bread", 1)
print(shopping_list)
4 terlihat seperti ini

def show_list():
_3

Anda akan sering melihat tanda tangan fungsi yang menggunakan nama

# optional_params.py

shopping_list = {}

# ...

def add_item(item_name, quantity):
    if item_name in shopping_list.keys():
        shopping_list[item_name] += quantity
    else:
        shopping_list[item_name] = quantity

add_item("Bread", 1)
print(shopping_list)
4 untuk mewakili jenis argumen opsional ini. Namun, ini hanyalah nama parameter. Tidak ada yang spesial dari nama
# optional_params.py

shopping_list = {}

# ...

def add_item(item_name, quantity):
    if item_name in shopping_list.keys():
        shopping_list[item_name] += quantity
    else:
        shopping_list[item_name] = quantity

add_item("Bread", 1)
print(shopping_list)
4. Ini adalah
# optional_params.py

shopping_list = {
    "Bread": 1,
    "Milk": 2,
    "Chocolate": 1,
    "Butter": 1,
    "Coffee": 1,
}

def show_list():
    for item_name, quantity in shopping_list.items():
        print(f"{quantity}x {item_name}")

show_list()
32 sebelumnya yang memberikan parameter ini properti khususnya, yang akan Anda baca di bawah. Seringkali, lebih baik menggunakan nama parameter yang paling sesuai dengan kebutuhan Anda untuk membuat kode lebih mudah dibaca, seperti pada contoh di bawah ini

def show_list():
_4

Argumen pertama saat memanggil

# optional_params.py

shopping_list = {
    "Bread": 1,
    "Milk": 2,
    "Chocolate": 1,
    "Butter": 1,
    "Coffee": 1,
}

def show_list():
    for item_name, quantity in shopping_list.items():
        print(f"{quantity}x {item_name}")

show_list()
_36 adalah argumen yang diperlukan. Mengikuti argumen pertama, fungsi dapat menerima sejumlah argumen tambahan. Dalam hal ini, Anda telah menambahkan empat argumen tambahan saat memanggil fungsi. Inilah output dari kode di atas

def show_list():
_5

Anda dapat memahami apa yang terjadi dengan parameter

# optional_params.py

shopping_list = {
    "Bread": 1,
    "Milk": 2,
    "Chocolate": 1,
    "Butter": 1,
    "Coffee": 1,
}

def show_list():
    for item_name, quantity in shopping_list.items():
        print(f"{quantity}x {item_name}")

show_list()
43 dengan melihat contoh sederhana

>>>

def show_list():
6

Saat Anda menampilkan tipe data, Anda dapat melihat bahwa

# optional_params.py

shopping_list = {
    "Bread": 1,
    "Milk": 2,
    "Chocolate": 1,
    "Butter": 1,
    "Coffee": 1,
}

def show_list():
    for item_name, quantity in shopping_list.items():
        print(f"{quantity}x {item_name}")

show_list()
43 adalah a. Oleh karena itu, semua argumen tambahan diberikan sebagai item dalam tuple
# optional_params.py

shopping_list = {
    "Bread": 1,
    "Milk": 2,
    "Chocolate": 1,
    "Butter": 1,
    "Coffee": 1,
}

def show_list():
    for item_name, quantity in shopping_list.items():
        print(f"{quantity}x {item_name}")

show_list()
43. Anda kemudian dapat menggunakan tuple ini dalam definisi fungsi seperti yang Anda lakukan dalam definisi utama
# optional_params.py

shopping_list = {
    "Bread": 1,
    "Milk": 2,
    "Chocolate": 1,
    "Butter": 1,
    "Coffee": 1,
}

def show_list():
    for item_name, quantity in shopping_list.items():
        print(f"{quantity}x {item_name}")

show_list()
36 di atas, di mana Anda mengulang melalui tuple
# optional_params.py

shopping_list = {
    "Bread": 1,
    "Milk": 2,
    "Chocolate": 1,
    "Butter": 1,
    "Coffee": 1,
}

def show_list():
    for item_name, quantity in shopping_list.items():
        print(f"{quantity}x {item_name}")

show_list()
43 menggunakan loop
# optional_params.py

shopping_list = {
    "Bread": 1,
    "Milk": 2,
    "Chocolate": 1,
    "Butter": 1,
    "Coffee": 1,
}

def show_list():
    for item_name, quantity in shopping_list.items():
        print(f"{quantity}x {item_name}")

show_list()
48

Ini tidak sama dengan melewatkan tuple sebagai argumen dalam pemanggilan fungsi. Menggunakan

# optional_params.py

shopping_list = {
    "Bread": 1,
    "Milk": 2,
    "Chocolate": 1,
    "Butter": 1,
    "Coffee": 1,
}

def show_list():
    for item_name, quantity in shopping_list.items():
        print(f"{quantity}x {item_name}")

show_list()
_49 memungkinkan Anda untuk menggunakan fungsi lebih fleksibel karena Anda dapat menambahkan argumen sebanyak yang Anda inginkan tanpa perlu menempatkannya di tuple dalam pemanggilan fungsi

Jika Anda tidak menambahkan argumen tambahan apa pun saat memanggil fungsi, maka tuple akan kosong

>>>

def show_list():
7

Saat Anda menambahkan

# optional_params.py

shopping_list = {}

# ...

def add_item(item_name, quantity):
    if item_name in shopping_list.keys():
        shopping_list[item_name] += quantity
    else:
        shopping_list[item_name] = quantity

add_item("Bread", 1)
print(shopping_list)
4 ke definisi fungsi, biasanya Anda akan menambahkannya setelah semua parameter wajib dan opsional. Anda dapat memiliki argumen kata kunci saja yang mengikuti
# optional_params.py

shopping_list = {}

# ...

def add_item(item_name, quantity):
    if item_name in shopping_list.keys():
        shopping_list[item_name] += quantity
    else:
        shopping_list[item_name] = quantity

add_item("Bread", 1)
print(shopping_list)
4, tetapi untuk tutorial ini, Anda dapat berasumsi bahwa
# optional_params.py

shopping_list = {}

# ...

def add_item(item_name, quantity):
    if item_name in shopping_list.keys():
        shopping_list[item_name] += quantity
    else:
        shopping_list[item_name] = quantity

add_item("Bread", 1)
print(shopping_list)
4 biasanya akan ditambahkan setelah semua argumen lainnya, kecuali untuk
# optional_params.py

shopping_list = {}

# ...

def add_item(item_name, quantity):
    if item_name in shopping_list.keys():
        shopping_list[item_name] += quantity
    else:
        shopping_list[item_name] = quantity

add_item("Bread", 1)
print(shopping_list)
5, yang akan Anda pelajari di bagian berikut

Hilangkan iklan

Fungsi Menerima Sejumlah Argumen Kata Kunci

Saat Anda menentukan fungsi dengan parameter, Anda memiliki pilihan untuk memanggil fungsi menggunakan argumen non-kata kunci atau argumen kata kunci

>>>

def show_list():
8

Pada pemanggilan fungsi pertama, argumen diteruskan oleh posisi, sedangkan pada pemanggilan kedua argumen diteruskan oleh kata kunci. Jika Anda menggunakan argumen kata kunci, Anda tidak perlu lagi memasukkan argumen sesuai urutan yang ditentukan

>>>

def show_list():
9

Anda dapat mengubah perilaku default ini dengan mendeklarasikan atau

Saat mendefinisikan suatu fungsi, Anda dapat menyertakan sejumlah argumen kata kunci opsional untuk disertakan menggunakan

# optional_params.py

shopping_list = {}

# ...

def add_item(item_name, quantity):
    if item_name in shopping_list.keys():
        shopping_list[item_name] += quantity
    else:
        shopping_list[item_name] = quantity

add_item("Bread", 1)
print(shopping_list)
5, yang merupakan singkatan dari argumen kata kunci. Tanda tangan fungsi terlihat seperti ini

# optional_params.py

shopping_list = {}

# ...

def add_item(item_name, quantity):
    if item_name in shopping_list.keys():
        shopping_list[item_name] += quantity
    else:
        shopping_list[item_name] = quantity

add_item("Bread", 1)
print(shopping_list)
0

Nama parameter

# optional_params.py

shopping_list = {}

# ...

def add_item(item_name, quantity):
    if item_name in shopping_list.keys():
        shopping_list[item_name] += quantity
    else:
        shopping_list[item_name] = quantity

add_item("Bread", 1)
print(shopping_list)
5 diawali dengan dua tanda bintang (
# optional_params.py

shopping_list = {
    "Bread": 1,
    "Milk": 2,
    "Chocolate": 1,
    "Butter": 1,
    "Coffee": 1,
}

def show_list():
    for item_name, quantity in shopping_list.items():
        print(f"{quantity}x {item_name}")

show_list()
56). Bintang ganda atau tanda bintang beroperasi serupa dengan tanda bintang tunggal yang Anda gunakan sebelumnya untuk membongkar item dari urutan. Bintang ganda digunakan untuk membongkar item dari pemetaan. Pemetaan adalah tipe data yang memiliki nilai berpasangan sebagai item, seperti kamus

Nama parameter

# optional_params.py

shopping_list = {}

# ...

def add_item(item_name, quantity):
    if item_name in shopping_list.keys():
        shopping_list[item_name] += quantity
    else:
        shopping_list[item_name] = quantity

add_item("Bread", 1)
print(shopping_list)
5 sering digunakan dalam definisi fungsi, tetapi parameter dapat memiliki nama lain asalkan didahului oleh operator
# optional_params.py

shopping_list = {
    "Bread": 1,
    "Milk": 2,
    "Chocolate": 1,
    "Butter": 1,
    "Coffee": 1,
}

def show_list():
    for item_name, quantity in shopping_list.items():
        print(f"{quantity}x {item_name}")

show_list()
56. Anda sekarang dapat menulis ulang
# optional_params.py

shopping_list = {
    "Bread": 1,
    "Milk": 2,
    "Chocolate": 1,
    "Butter": 1,
    "Coffee": 1,
}

def show_list():
    for item_name, quantity in shopping_list.items():
        print(f"{quantity}x {item_name}")

show_list()
36 sehingga menerima sejumlah argumen kata kunci

# optional_params.py

shopping_list = {}

# ...

def add_item(item_name, quantity):
    if item_name in shopping_list.keys():
        shopping_list[item_name] += quantity
    else:
        shopping_list[item_name] = quantity

add_item("Bread", 1)
print(shopping_list)
_1

Output dari kode ini menampilkan item dalam kamus

# optional_params.py

shopping_list = {}

# ...

def add_item(item_name, quantity):
    if item_name in shopping_list.keys():
        shopping_list[item_name] += quantity
    else:
        shopping_list[item_name] = quantity

add_item("Bread", 1)
print(shopping_list)
7, menunjukkan keempat hal yang ingin Anda beli dan jumlahnya masing-masing. Anda menyertakan informasi ini sebagai argumen kata kunci saat memanggil fungsi

# optional_params.py

shopping_list = {}

# ...

def add_item(item_name, quantity):
    if item_name in shopping_list.keys():
        shopping_list[item_name] += quantity
    else:
        shopping_list[item_name] = quantity

add_item("Bread", 1)
print(shopping_list)
_2

Sebelumnya, Anda mengetahui bahwa

# optional_params.py

shopping_list = {}

# ...

def add_item(item_name, quantity):
    if item_name in shopping_list.keys():
        shopping_list[item_name] += quantity
    else:
        shopping_list[item_name] = quantity

add_item("Bread", 1)
print(shopping_list)
4 adalah sebuah tuple, dan argumen non-kata kunci opsional yang digunakan dalam pemanggilan fungsi disimpan sebagai item dalam tuple. Argumen kata kunci opsional disimpan dalam kamus, dan argumen kata kunci disimpan sebagai pasangan nilai kunci dalam kamus ini

>>>

# optional_params.py

shopping_list = {}

# ...

def add_item(item_name, quantity):
    if item_name in shopping_list.keys():
        shopping_list[item_name] += quantity
    else:
        shopping_list[item_name] = quantity

add_item("Bread", 1)
print(shopping_list)
3

Untuk mempelajari lebih lanjut tentang

# optional_params.py

shopping_list = {}

# ...

def add_item(item_name, quantity):
    if item_name in shopping_list.keys():
        shopping_list[item_name] += quantity
    else:
        shopping_list[item_name] = quantity

add_item("Bread", 1)
print(shopping_list)
4 dan
# optional_params.py

shopping_list = {}

# ...

def add_item(item_name, quantity):
    if item_name in shopping_list.keys():
        shopping_list[item_name] += quantity
    else:
        shopping_list[item_name] = quantity

add_item("Bread", 1)
print(shopping_list)
5, Anda dapat membaca Python args dan kwargs. Terungkap, dan Anda akan menemukan detail lebih lanjut tentang argumen kata kunci dan non-kata kunci dalam fungsi dan urutan penggunaan argumen

Kesimpulan

Menentukan fungsi Anda sendiri untuk membuat subrutin mandiri adalah salah satu blok bangunan utama saat menulis kode. Fungsi yang paling berguna dan kuat adalah yang melakukan satu tugas yang jelas dan dapat Anda gunakan dengan cara yang fleksibel. Menggunakan argumen opsional adalah teknik utama untuk mencapai hal ini

Dalam tutorial ini, Anda telah belajar

  • Apa perbedaan antara parameter dan argumen
  • Cara mendefinisikan fungsi dengan argumen opsional dan nilai parameter default
  • Cara mendefinisikan fungsi menggunakan
    # optional_params.py
    
    shopping_list = {}
    
    # ...
    
    def add_item(item_name, quantity):
        if item_name in shopping_list.keys():
            shopping_list[item_name] += quantity
        else:
            shopping_list[item_name] = quantity
    
    add_item("Bread", 1)
    print(shopping_list)
    
    _4 dan
    # optional_params.py
    
    shopping_list = {}
    
    # ...
    
    def add_item(item_name, quantity):
        if item_name in shopping_list.keys():
            shopping_list[item_name] += quantity
        else:
            shopping_list[item_name] = quantity
    
    add_item("Bread", 1)
    print(shopping_list)
    
    5
  • Cara menangani pesan kesalahan tentang argumen opsional

Pemahaman yang baik tentang argumen opsional juga akan membantu Anda menggunakan fungsi di pustaka standar dan di modul pihak ketiga lainnya. Menampilkan dokumentasi untuk fungsi-fungsi ini akan menunjukkan kepada Anda tanda tangan fungsi yang darinya Anda dapat mengidentifikasi argumen mana yang diperlukan, mana yang opsional, dan mana yang

# optional_params.py

shopping_list = {}

# ...

def add_item(item_name, quantity):
    if item_name in shopping_list.keys():
        shopping_list[item_name] += quantity
    else:
        shopping_list[item_name] = quantity

add_item("Bread", 1)
print(shopping_list)
4 atau
# optional_params.py

shopping_list = {}

# ...

def add_item(item_name, quantity):
    if item_name in shopping_list.keys():
        shopping_list[item_name] += quantity
    else:
        shopping_list[item_name] = quantity

add_item("Bread", 1)
print(shopping_list)
5

Namun, keterampilan utama yang Anda pelajari dalam tutorial ini adalah menentukan fungsi Anda sendiri. Anda sekarang dapat mulai menulis fungsi dengan parameter wajib dan opsional serta dengan jumlah variabel argumen non-kata kunci dan kata kunci. Menguasai keterampilan ini akan membantu Anda membawa kode Python Anda ke tingkat berikutnya

Tandai sebagai Selesai

Tonton Sekarang Tutorial ini memiliki kursus video terkait yang dibuat oleh tim Real Python. Tonton bersama dengan tutorial tertulis untuk memperdalam pemahaman Anda. Mendefinisikan Fungsi Python Dengan Argumen Opsional

🐍 Trik Python 💌

Dapatkan Trik Python singkat & manis yang dikirim ke kotak masuk Anda setiap beberapa hari. Tidak pernah ada spam. Berhenti berlangganan kapan saja. Dikuratori oleh tim Real Python

Nilai sys argv default python

Kirimi Saya Trik Python »

Tentang Stephen Gruppetta

Nilai sys argv default python
Nilai sys argv default python

Stephen bekerja sebagai fisikawan penelitian di masa lalu, mengembangkan sistem pencitraan untuk mendeteksi penyakit mata. Dia sekarang mengajar coding dengan Python untuk anak-anak dan orang dewasa. Dan dia hampir selesai menulis buku coding Python pertamanya untuk pemula

» Lebih lanjut tentang Stefanus


Setiap tutorial di Real Python dibuat oleh tim pengembang sehingga memenuhi standar kualitas tinggi kami. Anggota tim yang mengerjakan tutorial ini adalah

Nilai sys argv default python

Aldren

Nilai sys argv default python

Bartosz

Nilai sys argv default python

Joanna

Nilai sys argv default python

Yakub

Nilai sys argv default python

Leodanis

Master Keterampilan Python Dunia Nyata Dengan Akses Tanpa Batas ke Python Nyata

Bergabunglah dengan kami dan dapatkan akses ke ribuan tutorial, kursus video langsung, dan komunitas pakar Pythonista

Tingkatkan Keterampilan Python Anda »

Guru Keterampilan Python Dunia Nyata
Dengan Akses Tak Terbatas ke Real Python

Bergabunglah dengan kami dan dapatkan akses ke ribuan tutorial, kursus video langsung, dan komunitas ahli Pythonista

Tingkatkan Keterampilan Python Anda »

Bagaimana menurut anda?

Nilai artikel ini

Tweet Bagikan Bagikan Email

Apa takeaway # 1 Anda atau hal favorit yang Anda pelajari?

Kiat Berkomentar. Komentar yang paling berguna adalah yang ditulis dengan tujuan belajar dari atau membantu siswa lain. dan dapatkan jawaban atas pertanyaan umum di portal dukungan kami

Berapa nilai yang disimpan di SYS argv?

" sistem. argv Daftar argumen baris perintah diteruskan ke skrip Python . argv[0] adalah nama skrip (bergantung pada sistem operasi apakah ini nama path lengkap atau tidak). Jika perintah dijalankan menggunakan opsi baris perintah -c ke juru bahasa, argv[0] diatur ke string '-c'.

Apakah SYS argv mulai 0?

sys. argv adalah daftar argumen baris perintah yang diteruskan ke program Python. argv mewakili semua item yang datang melalui input baris perintah, itu pada dasarnya adalah sebuah array yang memegang argumen baris perintah dari program kita. Jangan lupa bahwa penghitungan dimulai dari nol (0) bukan satu (1) .

Berapa nilai SYS argv 1?

sys. argv[1] berisi argumen baris perintah pertama yang diteruskan ke skrip Anda .

Apa argumen pertama di SYS argv?

Sys. argv[0] adalah argumen pertama dalam daftar. Dalam semua kasus, argumen pertama selalu berupa nama skrip