Datacamp python data science toolbox bagian 1 jawaban

Untuk memiliki banyak parameter, cukup terima lebih dari 1 parameter saat mendefinisikan fungsi. Jumlah argumen dalam fungsi sama dengan jumlah parameter

Untuk mendapatkan banyak pengembalian, kita perlu menggunakan Tuples
Tupel

  • Seperti daftar - dapat berisi beberapa nilai
  • Tidak dapat diubah - tidak dapat mengubah nilai, ini berarti Anda tidak dapat memperbarui elemen di Tuple dengan
    print(even_nums[1])
    second_num = even_nums[1]
    6
  • Bangun menggunakan tanda kurung ()

Buka kemasan tuple menjadi beberapa variabel

1
2
3
even_nums = (2, 4, 6)
a, b, c = even_nums
print(a) #will return 2

Mengakses elemen tuple seperti daftar menggunakan pengindeksan nol

1
2
print(even_nums[1])
second_num = even_nums[1]

Contoh

1
2
3
4
5
6
def raise_both(value1, value2) # Function header
"""Raise value1 to the power of value2 and vice versa"""
new_value1 = value1 ** value2 # Function body
new_value2 = value2 ** value1
new_tuple = (new_value1, new_value2)
return new_tuple

Studi kasus. jumlah bahasa tweeter

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# Define count_entries()
def count_entries(df, col_name):
"""Return a dictionary with counts of
occurrences as value for each key."""

# Initialize an empty dictionary: langs_count
langs_count = {}

# Extract column from DataFrame: col
col = df[col_name]

# Iterate over lang column in DataFrame
for entry in col:

# If the language is in langs_count, add 1
if entry in langs_count.keys():
langs_count[entry] += 1
# Else add the language to langs_count, set the value to 1
else:
langs_count[entry] = 1

# Return the langs_count dictionary
return(langs_count)

# Call count_entries(): result
result = count_entries(tweets_df, 'lang')

# Print the result
print(result)
Cakupan dan Fungsi yang Ditentukan Pengguna

Lingkup adalah bagian dari program di mana objek atau nama dapat diakses, karena tidak semua objek dapat diakses di mana pun dalam skrip

  • Cakupan global. didefinisikan di bagian utama skrip atau program python
  • Cakupan lokal. didefinisikan di dalam suatu fungsi. Setelah eksekusi selesai, nama apa pun di dalam lingkup lokal tidak akan ada lagi
  • Lingkup bawaan. nama dalam modul bawaan yang ditentukan sebelumnya yang disediakan python, seperti
    print(even_nums[1])
    second_num = even_nums[1]
    7 dan
    print(even_nums[1])
    second_num = even_nums[1]
    8

Urutan cakupan yang akan dilihat Python saat memanggil nama adalah. lingkup lokal -> Melampirkan fungsi (jika ada) -> lingkup global -> lingkup bawaan. (Aturan LEGB)

Contoh
Pertama kita mendefinisikan fungsi

def square(value):
"""Return the square of a value""" # Docstring
new_value = value ** 2
return new_value
num = square(4)
print(num)
0
def square(value):
"""Return the square of a value""" # Docstring
new_value = value ** 2
return new_value
num = square(4)
print(num)
1

Kita tidak dapat mengakses variabel

print(even_nums[1])
second_num = even_nums[1]
_9 di luar fungsi, karena variabel ini didefinisikan hanya dalam lingkup lokal fungsi, dan tidak didefinisikan secara global

Di bawah ini, kami mendefinisikan nama secara global sebelum mendefinisikan dan memanggil fungsi

def square(value):
"""Return the square of a value""" # Docstring
new_value = value ** 2
return new_value
num = square(4)
print(num)
2
def square(value):
"""Return the square of a value""" # Docstring
new_value = value ** 2
return new_value
num = square(4)
print(num)
3
  • Setiap kali kami memanggil nama dalam lingkup global, kami akan mengakses nama dalam lingkup global
  • Setiap kali kita memanggil nama dalam lingkup lokal fungsi, Python akan melihat terlebih dahulu dalam lingkup lokal (itulah sebabnya
    1
    2
    3
    4
    5
    6
    0 menghasilkan 9 bukannya 10). Jika Python tidak dapat menemukan nama dalam lingkup lokal, ia akan, dan baru kemudian, mencari dalam lingkup global

Di bawah ini, kami mengakses new_val, yang didefinisikan secara global, di dalam kotak fungsi. Perhatikan bahwa nilai global yang diakses adalah nilai pada saat fungsi dipanggil, bukan nilai saat fungsi didefinisikan

Jadi, jika kita menetapkan kembali nilai ke

1
2
3
4
5
6
1, dan memanggil fungsi kuadrat lagi, kita dapat melihat bahwa nilai baru dari
1
2
3
4
5
6
1 diakses

________11
print(even_nums[1])
second_num = even_nums[1]
_11_______5

Bagaimana jika kita ingin mengubah nilai nama global dalam pemanggilan fungsi?

________11
print(even_nums[1])
second_num = even_nums[1]
_11_______7

Contoh lain

________11
print(even_nums[1])
second_num = even_nums[1]
_11_______9

Fungsi bersarang

Ini membantu ketika beberapa perhitungan serupa diperlukan

def square(value):
"""Return the square of a value""" # Docstring
new_value = value ** 2
return new_value
num = square(4)
print(num)
4
1
2
3
1

Juga, dapat digunakan untuk mengembalikan fungsi

1
2
3
2
1
2
3
3

Menggunakan

1
2
3
4
5
6
_4 untuk mengakses dan mengubah nama dalam lingkup terlampir

1
2
3
2
1
2
3
5 Argumen Default dan Fleksibel

Tambahkan argumen default

1
2
3
4
5
6
1
2
3
_7

Argumen yang fleksibel

Kami menggunakan argumen fleksibel saat kami tidak yakin tentang argumen spesifik yang ditambahkan ke fungsi dengan

1
2
3
4
5
6
5

1
2
3
8
1
2
3
9

Kami juga dapat memberikan jumlah argumen kata kunci yang sewenang-wenang dengan

1
2
3
4
5
6
6, yang merupakan argumen yang didahului oleh pengidentifikasi. (kamus)

even_nums = (2, 4, 6)
a, b, c = even_nums
print(a) #will return 2
0
even_nums = (2, 4, 6)
a, b, c = even_nums
print(a) #will return 2
1

Studi kasus

Hasilkan fungsi sebelumnya untuk menghitung kejadian di kolom mana pun dalam kerangka data

even_nums = (2, 4, 6)
a, b, c = even_nums
print(a) #will return 2
2
even_nums = (2, 4, 6)
a, b, c = even_nums
print(a) #will return 2
3Fungsi Lambda & Penanganan Kesalahan

Fungsi Lambda

Lambda memungkinkan Anda menulis fungsi dengan cepat dan berpotensi kotor

1
2
even_nums = (2, 4, 6)
a, b, c = even_nums
print(a) #will return 2
5

1
2
3
4
5
6
_7

  • mengambil dua argumen.
    1
    2
    3
    4
    5
    6
    _8
  • berlaku fungsi semua elemen dalam urutan
  • Dalam hal ini, fungsi tersebut bahkan tidak perlu memiliki nama, dan dengan demikian disebut sebagai fungsi anonim.
    even_nums = (2, 4, 6)
    a, b, c = even_nums
    print(a) #will return 2
    6
    even_nums = (2, 4, 6)
    a, b, c = even_nums
    print(a) #will return 2
    7

1
2
3
4
5
6
_9

  • menyaring elemen dari daftar yang tidak memenuhi kriteria tertentu
    even_nums = (2, 4, 6)
    a, b, c = even_nums
    print(a) #will return 2
    8
    even_nums = (2, 4, 6)
    a, b, c = even_nums
    print(a) #will return 2
    9

def raise_both(value1, value2) # Function header
"""Raise value1 to the power of value2 and vice versa"""
new_value1 = value1 ** value2 # Function body
new_value2 = value2 ** value1
new_tuple = (new_value1, new_value2)
return new_tuple
_0

  • berguna untuk melakukan beberapa perhitungan pada daftar dan mengembalikan satu nilai sebagai hasilnya
  • perlu diimpor dari modul
    def raise_both(value1, value2) # Function header
    """Raise value1 to the power of value2 and vice versa"""
    new_value1 = value1 ** value2 # Function body
    new_value2 = value2 ** value1
    new_tuple = (new_value1, new_value2)
    return new_tuple
    _1 sebelum digunakan
    even_nums = (2, 4, 6)
    a, b, c = even_nums
    print(a) #will return 2
    8
    1
    2
    1

Penanganan Kesalahan

Kita harus berusaha untuk menghasilkan pesan kesalahan yang berguna untuk fungsi yang kita tulis. tangkap pengecualian selama eksekusi dengan klausa

def raise_both(value1, value2) # Function header
"""Raise value1 to the power of value2 and vice versa"""
new_value1 = value1 ** value2 # Function body
new_value2 = value2 ** value1
new_tuple = (new_value1, new_value2)
return new_tuple
2 &
def raise_both(value1, value2) # Function header
"""Raise value1 to the power of value2 and vice versa"""
new_value1 = value1 ** value2 # Function body
new_value2 = value2 ** value1
new_tuple = (new_value1, new_value2)
return new_tuple
3