Làm thế nào là một hàm được viết bằng ngôn ngữ lập trình Python Chọn câu trả lời đúng?

Tại thời điểm này, chúng tôi đã viết mã để vẽ một số tính năng thú vị trong dữ liệu viêm nhiễm của mình, lặp lại tất cả các tệp dữ liệu của chúng tôi để nhanh chóng vẽ các biểu đồ này cho từng tệp và để Python đưa ra quyết định dựa trên những gì nó thấy trong dữ liệu của chúng tôi. Tuy nhiên, mã của chúng tôi đang trở nên khá dài và phức tạp; . Ngoài ra, điều gì sẽ xảy ra nếu chúng ta muốn sử dụng lại mã đó, trên một tập dữ liệu khác hoặc tại một điểm khác trong chương trình của chúng ta? . Chúng tôi muốn có một cách để đóng gói mã của mình để dễ sử dụng lại hơn và Python cung cấp điều này bằng cách cho phép chúng tôi xác định những thứ gọi là 'hàm' - một cách viết tắt để thực thi lại các đoạn mã dài hơn. Hãy bắt đầu bằng cách xác định hàm

def fahr_to_kelvin(temp_f):
    temp_c = fahr_to_celsius(temp_f)
    temp_k = celsius_to_kelvin(temp_c)
    return temp_k

print('boiling point of water in Kelvin:', fahr_to_kelvin(212.0))
8 chuyển đổi nhiệt độ từ độ F sang độ C

def fahr_to_celsius(temp):
    return ((temp - 32) * (5/9))

Làm thế nào là một hàm được viết bằng ngôn ngữ lập trình Python Chọn câu trả lời đúng?

Định nghĩa hàm mở ra bằng từ khóa

def fahr_to_kelvin(temp_f):
    temp_c = fahr_to_celsius(temp_f)
    temp_k = celsius_to_kelvin(temp_c)
    return temp_k

print('boiling point of water in Kelvin:', fahr_to_kelvin(212.0))
9 theo sau là tên của hàm (
def fahr_to_kelvin(temp_f):
    temp_c = fahr_to_celsius(temp_f)
    temp_k = celsius_to_kelvin(temp_c)
    return temp_k

print('boiling point of water in Kelvin:', fahr_to_kelvin(212.0))
8) và danh sách tên tham số được đặt trong ngoặc đơn (
boiling point of water in Kelvin: 373.15
1). Phần thân của hàm — các câu lệnh được thực thi khi nó chạy — được thụt vào bên dưới dòng định nghĩa. Phần thân kết thúc bằng từ khóa
boiling point of water in Kelvin: 373.15
2 theo sau là giá trị trả về

Khi chúng ta gọi hàm, các giá trị chúng ta truyền cho nó sẽ được gán cho các biến đó để chúng ta có thể sử dụng chúng bên trong hàm. Bên trong hàm, chúng ta sử dụng câu lệnh return để gửi kết quả lại cho bất kỳ ai đã yêu cầu kết quả đó

Hãy thử chạy chức năng của chúng tôi

fahr_to_celsius(32)

Lệnh này sẽ gọi hàm của chúng ta, sử dụng “32” làm đầu vào và trả về giá trị hàm

Trên thực tế, gọi hàm của chính chúng ta không khác gì gọi bất kỳ hàm nào khác

print('freezing point of water:', fahr_to_celsius(32), 'C')
print('boiling point of water:', fahr_to_celsius(212), 'C')

________số 8

Chúng tôi đã gọi thành công hàm mà chúng tôi đã xác định và chúng tôi có quyền truy cập vào giá trị mà chúng tôi đã trả về

Hàm soạn thảo

Bây giờ chúng ta đã biết cách biến độ F thành độ C, chúng ta cũng có thể viết hàm để biến độ C thành độ Kelvin

def celsius_to_kelvin(temp_c):
    return temp_c + 273.15

print('freezing point of water in Kelvin:', celsius_to_kelvin(0.))

def fahr_to_celsius(temp):
    return ((temp - 32) * (5/9))
0

Còn việc chuyển đổi Fahrenheit sang Kelvin thì sao? . Thay vào đó, chúng ta có thể soạn hai hàm mà chúng ta đã tạo

def fahr_to_kelvin(temp_f):
    temp_c = fahr_to_celsius(temp_f)
    temp_k = celsius_to_kelvin(temp_c)
    return temp_k

print('boiling point of water in Kelvin:', fahr_to_kelvin(212.0))

boiling point of water in Kelvin: 373.15

Đây là hương vị đầu tiên của chúng tôi về cách các chương trình lớn hơn được xây dựng. chúng tôi xác định các hoạt động cơ bản, sau đó kết hợp chúng thành các khối lớn hơn bao giờ hết để đạt được hiệu quả mà chúng tôi muốn. Các hàm thực tế thường sẽ lớn hơn các hàm được hiển thị ở đây — thường là từ nửa tá đến vài chục dòng — nhưng chúng không bao giờ dài hơn thế nhiều, nếu không người tiếp theo đọc nó sẽ không thể hiểu được

Phạm vi biến đổi

Khi soạn các hàm chuyển đổi nhiệt độ, chúng tôi đã tạo các biến bên trong các hàm đó,

boiling point of water in Kelvin: 373.15
1,
boiling point of water in Kelvin: 373.15
4,
boiling point of water in Kelvin: 373.15
5 và
boiling point of water in Kelvin: 373.15
6. Chúng tôi gọi các biến này là biến cục bộ vì chúng không còn tồn tại sau khi thực thi xong hàm. Nếu chúng ta cố gắng truy cập các giá trị của chúng bên ngoài hàm, chúng ta sẽ gặp lỗi

def fahr_to_celsius(temp):
    return ((temp - 32) * (5/9))
7

def fahr_to_celsius(temp):
    return ((temp - 32) * (5/9))
8

Nếu bạn muốn sử dụng lại nhiệt độ theo đơn vị Kelvin sau khi đã tính toán nó với

boiling point of water in Kelvin: 373.15
7, bạn có thể lưu trữ kết quả của lệnh gọi hàm trong một biến

fahr_to_celsius(32)
0

fahr_to_celsius(32)
1

Biến

boiling point of water in Kelvin: 373.15
8, được định nghĩa bên ngoài bất kỳ hàm nào, được gọi là toàn cục

Bên trong một hàm, người ta có thể đọc giá trị của các biến toàn cục đó

fahr_to_celsius(32)
2

fahr_to_celsius(32)
3

Làm sạch

Bây giờ chúng ta đã biết cách gói các đoạn mã trong các hàm, chúng ta có thể làm cho phân tích tình trạng viêm của chúng ta dễ đọc hơn và dễ sử dụng lại hơn. Trước tiên, hãy tạo một hàm

boiling point of water in Kelvin: 373.15
9 để tạo các biểu đồ của chúng ta

fahr_to_celsius(32)
4

và một chức năng khác gọi là

def fahr_to_celsius(temp):
    return ((temp - 32) * (5/9))
70 kiểm tra các hệ thống mà chúng tôi nhận thấy

fahr_to_celsius(32)
5

Đợi đã. Chẳng phải chúng ta đã quên chỉ định cái mà cả hai hàm này sẽ trả về sao? . Trong Python, các hàm không bắt buộc phải bao gồm câu lệnh

boiling point of water in Kelvin: 373.15
2 và có thể được sử dụng cho mục đích duy nhất là nhóm các đoạn mã lại với nhau để thực hiện một việc theo khái niệm. Trong những trường hợp như vậy, tên hàm thường mô tả chức năng của chúng, e. g.
boiling point of water in Kelvin: 373.15
9,
def fahr_to_celsius(temp):
    return ((temp - 32) * (5/9))
70

Lưu ý rằng thay vì trộn mã này với nhau trong một vòng lặp khổng lồ

def fahr_to_celsius(temp):
    return ((temp - 32) * (5/9))
74, giờ đây chúng ta có thể đọc và sử dụng lại cả hai ý tưởng một cách riêng biệt. Chúng ta có thể tạo lại phân tích trước đó bằng một vòng lặp
def fahr_to_celsius(temp):
    return ((temp - 32) * (5/9))
74 đơn giản hơn nhiều

fahr_to_celsius(32)
6

Bằng cách đặt tên cho các chức năng mà con người có thể đọc được, chúng ta có thể dễ dàng đọc và hiểu những gì đang xảy ra trong vòng lặp

def fahr_to_celsius(temp):
    return ((temp - 32) * (5/9))
74. Thậm chí tốt hơn, nếu vào một ngày nào đó sau này chúng ta muốn sử dụng lại một trong hai đoạn mã đó, chúng ta có thể làm như vậy trong một dòng duy nhất

Kiểm tra và tài liệu

Khi chúng tôi bắt đầu đưa mọi thứ vào các chức năng để chúng tôi có thể sử dụng lại chúng, chúng tôi cần bắt đầu kiểm tra xem các chức năng đó có hoạt động chính xác không. Để xem cách thực hiện việc này, hãy viết một hàm để bù một tập dữ liệu sao cho giá trị trung bình của nó chuyển sang giá trị do người dùng xác định

fahr_to_celsius(32)
7

Chúng tôi có thể kiểm tra điều này trên dữ liệu thực tế của mình, nhưng vì chúng tôi không biết giá trị phải là bao nhiêu nên sẽ khó biết được kết quả có chính xác hay không. Thay vào đó, hãy sử dụng NumPy để tạo ma trận 0 và sau đó bù các giá trị của nó để có giá trị trung bình là 3

fahr_to_celsius(32)
8

fahr_to_celsius(32)
9

Điều đó có vẻ đúng, vì vậy hãy thử dùng

def fahr_to_celsius(temp):
    return ((temp - 32) * (5/9))
77 trên dữ liệu thực của chúng tôi

print('freezing point of water:', fahr_to_celsius(32), 'C')
print('boiling point of water:', fahr_to_celsius(212), 'C')
0

print('freezing point of water:', fahr_to_celsius(32), 'C')
print('boiling point of water:', fahr_to_celsius(212), 'C')
1

Thật khó để nói từ đầu ra mặc định liệu kết quả có chính xác hay không, nhưng có một vài thử nghiệm mà chúng tôi có thể chạy để trấn an chúng tôi

print('freezing point of water:', fahr_to_celsius(32), 'C')
print('boiling point of water:', fahr_to_celsius(212), 'C')
2

print('freezing point of water:', fahr_to_celsius(32), 'C')
print('boiling point of water:', fahr_to_celsius(212), 'C')
3

Điều đó có vẻ gần như đúng. ý nghĩa ban đầu là khoảng 6. 1, vì vậy giới hạn dưới từ 0 bây giờ là khoảng -6. 1. Giá trị trung bình của dữ liệu bù đắp không hoàn toàn bằng không — chúng ta sẽ khám phá lý do tại sao không phải trong các thử thách — nhưng nó cũng khá gần. Chúng tôi thậm chí có thể đi xa hơn và kiểm tra xem độ lệch chuẩn không thay đổi

print('freezing point of water:', fahr_to_celsius(32), 'C')
print('boiling point of water:', fahr_to_celsius(212), 'C')
4

print('freezing point of water:', fahr_to_celsius(32), 'C')
print('boiling point of water:', fahr_to_celsius(212), 'C')
5

Các giá trị đó trông giống nhau, nhưng có lẽ chúng ta sẽ không nhận thấy nếu chúng khác nhau ở vị trí thập phân thứ sáu. Hãy làm điều này thay vào đó

print('freezing point of water:', fahr_to_celsius(32), 'C')
print('boiling point of water:', fahr_to_celsius(212), 'C')
6

print('freezing point of water:', fahr_to_celsius(32), 'C')
print('boiling point of water:', fahr_to_celsius(212), 'C')
7

Một lần nữa, sự khác biệt là rất nhỏ. Vẫn có khả năng chức năng của chúng ta bị sai, nhưng có vẻ như không đủ khả năng để chúng ta quay lại thực hiện phân tích của mình. Tuy nhiên, chúng tôi có một nhiệm vụ nữa trước tiên. chúng ta nên viết một số tài liệu cho chức năng của mình để sau này nhắc nhở bản thân rằng nó dùng để làm gì và sử dụng nó như thế nào

Cách thông thường để đưa tài liệu vào phần mềm là thêm nhận xét như thế này

print('freezing point of water:', fahr_to_celsius(32), 'C')
print('boiling point of water:', fahr_to_celsius(212), 'C')
8

Có một cách tốt hơn, mặc dù. Nếu điều đầu tiên trong một hàm là một chuỗi không được gán cho một biến, chuỗi đó sẽ được đính kèm vào hàm dưới dạng tài liệu của nó

print('freezing point of water:', fahr_to_celsius(32), 'C')
print('boiling point of water:', fahr_to_celsius(212), 'C')
9

Điều này tốt hơn vì giờ đây chúng ta có thể yêu cầu hệ thống trợ giúp tích hợp sẵn của Python hiển thị cho chúng ta tài liệu về chức năng

freezing point of water: 0.0 C
boiling point of water: 100.0 C
0

freezing point of water: 0.0 C
boiling point of water: 100.0 C
1

Một chuỗi như thế này được gọi là docstring. Chúng ta không cần sử dụng ba dấu ngoặc kép khi viết một dấu ngoặc kép, nhưng nếu làm như vậy, chúng ta có thể ngắt chuỗi trên nhiều dòng

freezing point of water: 0.0 C
boiling point of water: 100.0 C
2

freezing point of water: 0.0 C
boiling point of water: 100.0 C
3

Xác định giá trị mặc định

Chúng ta đã truyền tham số cho hàm theo hai cách. trực tiếp, như trong

def fahr_to_celsius(temp):
    return ((temp - 32) * (5/9))
78, và theo tên, như trong
def fahr_to_celsius(temp):
    return ((temp - 32) * (5/9))
79. Trên thực tế, chúng ta có thể chuyển tên tệp tới
def fahr_to_celsius(temp):
    return ((temp - 32) * (5/9))
80 mà không cần
def fahr_to_celsius(temp):
    return ((temp - 32) * (5/9))
81

freezing point of water: 0.0 C
boiling point of water: 100.0 C
4

freezing point of water: 0.0 C
boiling point of water: 100.0 C
5

nhưng chúng ta vẫn cần phải nói

def fahr_to_celsius(temp):
    return ((temp - 32) * (5/9))
82

freezing point of water: 0.0 C
boiling point of water: 100.0 C
6

freezing point of water: 0.0 C
boiling point of water: 100.0 C
7

Để hiểu chuyện gì đang xảy ra và làm cho các hàm của chúng ta dễ sử dụng hơn, hãy xác định lại hàm

def fahr_to_celsius(temp):
    return ((temp - 32) * (5/9))
77 của chúng ta như thế này

freezing point of water: 0.0 C
boiling point of water: 100.0 C
8

Thay đổi quan trọng là tham số thứ hai hiện được viết là

def fahr_to_celsius(temp):
    return ((temp - 32) * (5/9))
84 thay vì chỉ
def fahr_to_celsius(temp):
    return ((temp - 32) * (5/9))
85. Nếu chúng ta gọi hàm với hai đối số, nó sẽ hoạt động như trước đây

freezing point of water: 0.0 C
boiling point of water: 100.0 C
9

fahr_to_celsius(32)
9

Nhưng bây giờ chúng ta cũng có thể gọi nó chỉ với một tham số, trong trường hợp đó,

def fahr_to_celsius(temp):
    return ((temp - 32) * (5/9))
85 sẽ tự động được gán giá trị mặc định là 0. 0

def celsius_to_kelvin(temp_c):
    return temp_c + 273.15

print('freezing point of water in Kelvin:', celsius_to_kelvin(0.))
1

def celsius_to_kelvin(temp_c):
    return temp_c + 273.15

print('freezing point of water in Kelvin:', celsius_to_kelvin(0.))
2

cái này tiện dụng. nếu chúng ta thường muốn một chức năng hoạt động theo một cách, nhưng đôi khi cần nó làm việc khác, chúng ta có thể cho phép mọi người chuyển tham số khi họ cần nhưng cung cấp giá trị mặc định để làm cho trường hợp thông thường dễ dàng hơn. Ví dụ dưới đây cho thấy cách Python khớp giá trị với tham số

def celsius_to_kelvin(temp_c):
    return temp_c + 273.15

print('freezing point of water in Kelvin:', celsius_to_kelvin(0.))
3

def celsius_to_kelvin(temp_c):
    return temp_c + 273.15

print('freezing point of water in Kelvin:', celsius_to_kelvin(0.))
4

Như ví dụ này cho thấy, các tham số được so khớp từ trái sang phải và bất kỳ tham số nào chưa được cung cấp giá trị rõ ràng sẽ nhận giá trị mặc định của chúng. Chúng tôi có thể ghi đè hành vi này bằng cách đặt tên cho giá trị khi chúng tôi chuyển nó vào

def celsius_to_kelvin(temp_c):
    return temp_c + 273.15

print('freezing point of water in Kelvin:', celsius_to_kelvin(0.))
5

def celsius_to_kelvin(temp_c):
    return temp_c + 273.15

print('freezing point of water in Kelvin:', celsius_to_kelvin(0.))
6

Với điều đó trong tay, chúng ta hãy xem trợ giúp cho

def fahr_to_celsius(temp):
    return ((temp - 32) * (5/9))
87

def celsius_to_kelvin(temp_c):
    return temp_c + 273.15

print('freezing point of water in Kelvin:', celsius_to_kelvin(0.))
7

def celsius_to_kelvin(temp_c):
    return temp_c + 273.15

print('freezing point of water in Kelvin:', celsius_to_kelvin(0.))
8

Có rất nhiều thông tin ở đây, nhưng phần quan trọng nhất là vài dòng đầu tiên

def celsius_to_kelvin(temp_c):
    return temp_c + 273.15

print('freezing point of water in Kelvin:', celsius_to_kelvin(0.))
9

Điều này cho chúng ta biết rằng

def fahr_to_celsius(temp):
    return ((temp - 32) * (5/9))
80 có một tham số tên là
def fahr_to_celsius(temp):
    return ((temp - 32) * (5/9))
89 không có giá trị mặc định và tám tham số khác có giá trị mặc định. Nếu chúng ta gọi hàm như thế này

freezing point of water: 0.0 C
boiling point of water: 100.0 C
6

sau đó tên tệp được gán cho

def fahr_to_celsius(temp):
    return ((temp - 32) * (5/9))
89 (đó là những gì chúng tôi muốn), nhưng chuỗi dấu phân cách
fahr_to_celsius(32)
01 được gán cho
fahr_to_celsius(32)
02 thay vì
fahr_to_celsius(32)
03, vì
fahr_to_celsius(32)
02 là tham số thứ hai trong danh sách. Tuy nhiên,
fahr_to_celsius(32)
01 không phải là một
fahr_to_celsius(32)
02 đã biết nên mã của chúng tôi tạo ra thông báo lỗi khi chúng tôi cố chạy nó. Khi gọi
def fahr_to_celsius(temp):
    return ((temp - 32) * (5/9))
80, chúng ta không phải cung cấp tên tệp ____ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ''

chức năng có thể đọc được

Hãy xem xét hai chức năng này

def fahr_to_celsius(temp):
    return ((temp - 32) * (5/9))
01

Các hàm

fahr_to_celsius(32)
13 và
fahr_to_celsius(32)
14 tương đương về mặt tính toán (cả hai đều tính toán độ lệch chuẩn mẫu), nhưng đối với người đọc, chúng trông rất khác nhau. Bạn có thể thấy
fahr_to_celsius(32)
14 dễ đọc và dễ hiểu hơn nhiều so với
fahr_to_celsius(32)
13

Như ví dụ này minh họa, cả tài liệu và phong cách viết mã của lập trình viên kết hợp với nhau để xác định mức độ dễ dàng để người khác đọc và hiểu mã của lập trình viên. Chọn tên biến có ý nghĩa và sử dụng khoảng trống để chia mã thành các “khối” hợp lý là những kỹ thuật hữu ích để tạo mã có thể đọc được. Điều này hữu ích không chỉ cho việc chia sẻ mã với người khác mà còn cho lập trình viên ban đầu. Nếu bạn cần xem lại mã mà bạn đã viết nhiều tháng trước và chưa nghĩ đến kể từ đó, bạn sẽ đánh giá cao giá trị của mã có thể đọc được

kết hợp chuỗi

“Cộng” hai chuỗi tạo ra sự nối của chúng.

fahr_to_celsius(32)
17 là
fahr_to_celsius(32)
18. Viết một hàm có tên là
fahr_to_celsius(32)
19 nhận vào hai tham số có tên là
fahr_to_celsius(32)
20 và
fahr_to_celsius(32)
21 và trả về một chuỗi mới có ký tự bao bọc ở đầu và cuối của chuỗi gốc. Một cuộc gọi đến chức năng của bạn sẽ giống như thế này

def fahr_to_celsius(temp):
    return ((temp - 32) * (5/9))
02

def fahr_to_celsius(temp):
    return ((temp - 32) * (5/9))
03

Dung dịch

def fahr_to_celsius(temp):
    return ((temp - 32) * (5/9))
04

Trả lại so với in

Lưu ý rằng

boiling point of water in Kelvin: 373.15
2 và
fahr_to_celsius(32)
23 không thể hoán đổi cho nhau.
fahr_to_celsius(32)
23 là một hàm Python in dữ liệu ra màn hình. Nó cho phép chúng tôi, người dùng, xem dữ liệu. Mặt khác, câu lệnh
boiling point of water in Kelvin: 373.15
2 làm cho chương trình hiển thị dữ liệu. Hãy cùng xem chức năng sau

def fahr_to_celsius(temp):
    return ((temp - 32) * (5/9))
05

Câu hỏi. Chúng ta sẽ thấy gì nếu thực hiện các lệnh sau?

def fahr_to_celsius(temp):
    return ((temp - 32) * (5/9))
06

Dung dịch

Đầu tiên, Python sẽ thực thi hàm

fahr_to_celsius(32)
26 với
fahr_to_celsius(32)
27 và
fahr_to_celsius(32)
28, và do đó, in ra
fahr_to_celsius(32)
29. Tuy nhiên, vì hàm
fahr_to_celsius(32)
26 không có dòng bắt đầu bằng
boiling point of water in Kelvin: 373.15
2 (không có “câu lệnh”
boiling point of water in Kelvin: 373.15
2), theo mặc định, nó sẽ không trả về gì cả, trong thế giới Python, được gọi là
fahr_to_celsius(32)
33. Do đó,
fahr_to_celsius(32)
34 sẽ được gán cho
fahr_to_celsius(32)
33 và dòng cuối cùng (
fahr_to_celsius(32)
36) sẽ in ra
fahr_to_celsius(32)
33. Kết quả là, chúng ta sẽ thấy

def fahr_to_celsius(temp):
    return ((temp - 32) * (5/9))
07

Chọn ký tự từ chuỗi

Nếu biến

fahr_to_celsius(32)
13 đề cập đến một chuỗi, thì
fahr_to_celsius(32)
39 là ký tự đầu tiên của chuỗi và
fahr_to_celsius(32)
40 là ký tự cuối cùng của chuỗi đó. Viết một hàm có tên là
fahr_to_celsius(32)
41 trả về một chuỗi chỉ gồm các ký tự đầu tiên và cuối cùng của đầu vào của nó. Một cuộc gọi đến chức năng của bạn sẽ giống như thế này

def fahr_to_celsius(temp):
    return ((temp - 32) * (5/9))
08

def fahr_to_celsius(temp):
    return ((temp - 32) * (5/9))
09

Dung dịch

def fahr_to_kelvin(temp_f):
    temp_c = fahr_to_celsius(temp_f)
    temp_k = celsius_to_kelvin(temp_c)
    return temp_k

print('boiling point of water in Kelvin:', fahr_to_kelvin(212.0))
0

Thay đổi kích thước một mảng

Viết hàm

fahr_to_celsius(32)
42 lấy một mảng làm đầu vào và trả về một mảng tương ứng các giá trị được chia tỷ lệ nằm trong phạm vi 0. 0 đến 1. 0. (Gợi ý. Nếu
fahr_to_celsius(32)
43 và
fahr_to_celsius(32)
44 là các giá trị thấp nhất và cao nhất trong mảng ban đầu, thì giá trị thay thế cho giá trị
fahr_to_celsius(32)
45 phải là
fahr_to_celsius(32)
46. )

Dung dịch

def fahr_to_kelvin(temp_f):
    temp_c = fahr_to_celsius(temp_f)
    temp_k = celsius_to_kelvin(temp_c)
    return temp_k

print('boiling point of water in Kelvin:', fahr_to_kelvin(212.0))
1

Kiểm tra và ghi lại chức năng của bạn

Chạy các lệnh

fahr_to_celsius(32)
47 và
fahr_to_celsius(32)
48 để xem cách sử dụng các hàm này để tạo các giá trị có khoảng cách đều nhau, sau đó sử dụng các giá trị đó để kiểm tra hàm
fahr_to_celsius(32)
42 của bạn. Khi bạn đã kiểm tra thành công chức năng của mình, hãy thêm một chuỗi tài liệu giải thích chức năng của nó

Dung dịch

def fahr_to_kelvin(temp_f):
    temp_c = fahr_to_celsius(temp_f)
    temp_k = celsius_to_kelvin(temp_c)
    return temp_k

print('boiling point of water in Kelvin:', fahr_to_kelvin(212.0))
2

Xác định giá trị mặc định

Viết lại hàm

fahr_to_celsius(32)
42 để nó chia tỷ lệ dữ liệu nằm giữa
fahr_to_celsius(32)
51 và
fahr_to_celsius(32)
52 theo mặc định, nhưng sẽ cho phép người gọi chỉ định giới hạn dưới và trên nếu họ muốn. So sánh việc triển khai của bạn với hàng xóm của bạn. hai chức năng luôn hoạt động theo cùng một cách?

Dung dịch

def fahr_to_kelvin(temp_f):
    temp_c = fahr_to_celsius(temp_f)
    temp_k = celsius_to_kelvin(temp_c)
    return temp_k

print('boiling point of water in Kelvin:', fahr_to_kelvin(212.0))
3

Các biến bên trong và bên ngoài chức năng

Đoạn mã sau hiển thị gì khi chạy — và tại sao?

def fahr_to_kelvin(temp_f):
    temp_c = fahr_to_celsius(temp_f)
    temp_k = celsius_to_kelvin(temp_c)
    return temp_k

print('boiling point of water in Kelvin:', fahr_to_kelvin(212.0))
4

Dung dịch

def fahr_to_kelvin(temp_f):
    temp_c = fahr_to_celsius(temp_f)
    temp_k = celsius_to_kelvin(temp_c)
    return temp_k

print('boiling point of water in Kelvin:', fahr_to_kelvin(212.0))
5

fahr_to_celsius(32)
53 là 0 vì
fahr_to_celsius(32)
53 bên trong hàm
fahr_to_celsius(32)
55 không biết về
fahr_to_celsius(32)
53 được xác định bên ngoài hàm. Khi hàm
fahr_to_celsius(32)
55 được gọi, nó sẽ tạo một biến cục bộ
fahr_to_celsius(32)
53. Hàm không trả về bất kỳ giá trị nào và không thay đổi
fahr_to_celsius(32)
53 bên ngoài bản sao cục bộ của nó. Do đó giá trị ban đầu của
fahr_to_celsius(32)
53 không thay đổi. Coi chừng một
fahr_to_celsius(32)
53 cục bộ được tạo vì các câu lệnh nội bộ của
fahr_to_celsius(32)
55 ảnh hưởng đến một giá trị mới cho nó. Nếu
fahr_to_celsius(32)
53 chỉ là
fahr_to_celsius(32)
64, nó sẽ chỉ truy xuất giá trị toàn cục của
fahr_to_celsius(32)
53

Trộn các tham số mặc định và không mặc định

Cho đoạn mã sau

def fahr_to_kelvin(temp_f):
    temp_c = fahr_to_celsius(temp_f)
    temp_k = celsius_to_kelvin(temp_c)
    return temp_k

print('boiling point of water in Kelvin:', fahr_to_kelvin(212.0))
6

những gì bạn mong đợi sẽ được in?

  1. fahr_to_celsius(32)
    
    66
  2. fahr_to_celsius(32)
    
    67
  3. fahr_to_celsius(32)
    
    68
  4. fahr_to_celsius(32)
    
    69

Cho rằng đoạn mã sau hiển thị khi chạy?

def fahr_to_kelvin(temp_f):
    temp_c = fahr_to_celsius(temp_f)
    temp_k = celsius_to_kelvin(temp_c)
    return temp_k

print('boiling point of water in Kelvin:', fahr_to_kelvin(212.0))
7

  1. fahr_to_celsius(32)
    
    70
  2. fahr_to_celsius(32)
    
    71
  3. fahr_to_celsius(32)
    
    72
  4. fahr_to_celsius(32)
    
    73

Dung dịch

Cố gắng xác định hàm

fahr_to_celsius(32)
74 dẫn đến kết quả là
fahr_to_celsius(32)
75. Các tham số đã xác định
fahr_to_celsius(32)
76 và
fahr_to_celsius(32)
77 được cung cấp các giá trị mặc định. Bởi vì
fahr_to_celsius(32)
78 và
fahr_to_celsius(32)
79 không được cung cấp giá trị mặc định, chúng bắt buộc phải được đưa vào làm đối số khi hàm được gọi và phải được đặt trước bất kỳ tham số nào có giá trị mặc định trong định nghĩa hàm

Cuộc gọi đã cho đến

fahr_to_celsius(32)
80 hiển thị
fahr_to_celsius(32)
72. -1 được gán cho tham số đầu tiên
fahr_to_celsius(32)
82, 2 được gán cho tham số tiếp theo
fahr_to_celsius(32)
83 và
fahr_to_celsius(32)
84 không được truyền giá trị, vì vậy nó sử dụng giá trị mặc định 6

Mã có thể đọc được

Sửa lại hàm bạn đã viết cho một trong các bài tập trước để cố gắng làm cho mã dễ đọc hơn. Sau đó, cộng tác với một trong những người hàng xóm của bạn để phê bình các chức năng của nhau và thảo luận về cách có thể cải thiện hơn nữa việc triển khai chức năng của bạn để làm cho chúng dễ đọc hơn

Những điểm chính

  • Xác định hàm bằng cách sử dụng

    fahr_to_celsius(32)
    
    85

  • Phần thân của hàm phải được thụt lề

  • Gọi một chức năng bằng cách sử dụng

    fahr_to_celsius(32)
    
    86

  • Các số được lưu trữ dưới dạng số nguyên hoặc số dấu phẩy động

  • Các biến được xác định trong một hàm chỉ có thể được nhìn thấy và sử dụng trong phần thân của hàm

  • Các biến được tạo bên ngoài bất kỳ hàm nào được gọi là biến toàn cục

  • Trong một hàm, chúng ta có thể truy cập các biến toàn cục

  • Các biến được tạo trong một hàm sẽ ghi đè các biến toàn cục nếu tên của chúng khớp với nhau

  • Sử dụng

    fahr_to_celsius(32)
    
    87 để xem trợ giúp cho điều gì đó

  • Đặt các chuỗi tài liệu trong các chức năng để cung cấp trợ giúp cho chức năng đó

  • Chỉ định giá trị mặc định cho tham số khi xác định hàm bằng cách sử dụng

    fahr_to_celsius(32)
    
    88 trong danh sách tham số

  • Các tham số có thể được chuyển bằng cách khớp dựa trên tên, theo vị trí hoặc bằng cách bỏ qua chúng (trong trường hợp đó, giá trị mặc định được sử dụng)

  • Đặt mã có các tham số thay đổi thường xuyên trong một hàm, sau đó gọi nó với các giá trị tham số khác nhau để tùy chỉnh hành vi của nó

    Làm thế nào là một chức năng được viết bằng ngôn ngữ lập trình Python Mcq?

    Giải thích. Các chức năng được xác định bằng cách sử dụng từ khóa def . Sau từ khóa này là tên định danh cho hàm, theo sau là một cặp dấu ngoặc đơn có thể kèm theo một số tên biến và dấu hai chấm cuối cùng kết thúc dòng. Tiếp theo là khối câu lệnh là một phần của chức năng này.

    Hàm trả về câu trả lời đúng trong ngôn ngữ lập trình Python như thế nào?

    Câu lệnh trả về trong Python là một câu lệnh đặc biệt mà bạn có thể sử dụng bên trong một hàm hoặc phương thức để gửi lại kết quả của hàm cho người gọi. Câu lệnh trả về bao gồm từ khóa trả về theo sau là giá trị trả về tùy chọn . Giá trị trả về của hàm Python có thể là bất kỳ đối tượng Python nào.

    Các chức năng trong câu trả lời Python là gì?

    Một hàm là một khối mã chỉ chạy khi nó được gọi . Bạn có thể truyền dữ liệu, được gọi là tham số, vào một hàm. Kết quả là một hàm có thể trả về dữ liệu.

    Cách viết hàm nào sau đây là đúng?

    Để hoạt động chính xác, một hàm phải được viết theo một cách cụ thể, được gọi là cú pháp. Cú pháp cơ bản của hàm là dấu bằng (=), tên hàm (ví dụ: SUM) và một hoặc nhiều đối số .