Hướng dẫn void function python - chức năng void python

  1. Nhà
  2. Hướng dẫn Python
  3. Chức năng trong Python

Cập nhật lần cuối vào ngày 22 tháng 9 năm 2020

Show

Nội dung chính ShowShow

  • Hàm # là gì
  • Như bạn có thể thấy cả hai phiên bản của chương trình là gần như giống hệt nhau, sự khác biệt duy nhất là các giá trị của các biến import datetime def greet(): print("Hello !") print("Today is", datetime.datetime.now()) greet() 6 và import datetime def greet(): print("Hello !") print("Today is", datetime.datetime.now()) greet() 7. Vì vậy, mỗi khi chúng tôi muốn tính tổng của hai số, chúng tôi sẽ cần cập nhật nguồn của chương trình. Sẽ tốt nếu chúng tôi bằng cách nào đó chỉ sử dụng lại toàn bộ mã mà không thực hiện bất kỳ sửa đổi nào. Chúng ta có thể làm điều đó bằng cách sử dụng các chức năng.
  • Các biến cục bộ, biến toàn cầu và phạm vi #
  • Bây giờ hãy xem xét các ví dụ sau:
  • Khi hàm sum = 0 start = 100 end = 200 for i in range(start, end+1): sum += i print("Sum is", sum) 58 được gọi trong dòng 8, đối số import datetime def greet(): print("Hello !") print("Today is", datetime.datetime.now()) greet() 2 được truyền đến biến tham số sum = 0 start = 100 end = 200 for i in range(start, end+1): sum += i print("Sum is", sum) 60 và sum = 0 start = 100 end = 200 for i in range(start, end+1): sum += i print("Sum is", sum) 61 được chuyển đến biến tham số sum = 0 start = 100 end = 200 for i in range(start, end+1): sum += i print("Sum is", sum) 62.
  • Ví dụ 2: Chuyển các đối tượng có thể thay đổi cho chức năng
  • Một cách khác để chuyển các đối số cho một hàm là sử dụng các đối số từ khóa. Trong phương pháp này, chúng tôi vượt qua từng đối số trong mẫu sau:
  • Một cách khác để chuyển các đối số cho một hàm là sử dụng các đối số từ khóa. Trong phương pháp này, chúng tôi vượt qua từng đối số trong mẫu sau:
  • Hàm void trả về không. #
  • Trả về nhiều giá trị #
  • Đối số mặc định #
  • Ví dụ về hàm void là gì?
  • Các chức năng void là gì?
  • Loại trống trong Python là gì?
  • Các chức năng hiệu quả và các chức năng void đưa ra ví dụ là gì?


Cho đến nay trong khóa học này, chúng tôi đã sử dụng các chức năng tích hợp đi kèm với Python. Trong bài học này, chúng ta sẽ tìm hiểu làm thế nào chúng ta có thể tạo ra các chức năng của riêng mình. Nhưng trước khi chúng ta làm điều đó, chúng ta hãy dành thời gian để tìm hiểu lý do tại sao chúng ta thậm chí cần chúng ngay từ đầu.

Giả sử bạn muốn tạo một chương trình cho phép người dùng tính tổng giữa hai số. Tại thời điểm này, bạn không nên có bất kỳ vấn đề nào để viết các chương trình như vậy; Dù sao, mã của bạn có thể trông giống như vậy:

sum = 0
start = 10
end = 30
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)

Thử ngay bây giờ

Chương trình này tính toán tổng của tất cả các số từ

import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
2 đến
import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
3. Nếu chúng tôi muốn tính tổng số các số từ
import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
4 đến
import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
5, chúng tôi sẽ cần cập nhật chương trình như sau:
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)

Như bạn có thể thấy cả hai phiên bản của chương trình là gần như giống hệt nhau, sự khác biệt duy nhất là các giá trị của các biến

import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
6 và
import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
7. Vì vậy, mỗi khi chúng tôi muốn tính tổng của hai số, chúng tôi sẽ cần cập nhật nguồn của chương trình. Sẽ tốt nếu chúng tôi bằng cách nào đó chỉ sử dụng lại toàn bộ mã mà không thực hiện bất kỳ sửa đổi nào. Chúng ta có thể làm điều đó bằng cách sử dụng các chức năng.

Hàm # là gì

Như bạn có thể thấy cả hai phiên bản của chương trình là gần như giống hệt nhau, sự khác biệt duy nhất là các giá trị của các biến import datetime def greet(): print("Hello !") print("Today is", datetime.datetime.now()) greet() 6 và import datetime def greet(): print("Hello !") print("Today is", datetime.datetime.now()) greet() 7. Vì vậy, mỗi khi chúng tôi muốn tính tổng của hai số, chúng tôi sẽ cần cập nhật nguồn của chương trình. Sẽ tốt nếu chúng tôi bằng cách nào đó chỉ sử dụng lại toàn bộ mã mà không thực hiện bất kỳ sửa đổi nào. Chúng ta có thể làm điều đó bằng cách sử dụng các chức năng.

Các biến cục bộ, biến toàn cầu và phạm vi #

Bây giờ hãy xem xét các ví dụ sau:

Khi hàm sum = 0 start = 100 end = 200 for i in range(start, end+1): sum += i print("Sum is", sum) 58 được gọi trong dòng 8, đối số import datetime def greet(): print("Hello !") print("Today is", datetime.datetime.now()) greet() 2 được truyền đến biến tham số sum = 0 start = 100 end = 200 for i in range(start, end+1): sum += i print("Sum is", sum) 60 và sum = 0 start = 100 end = 200 for i in range(start, end+1): sum += i print("Sum is", sum) 61 được chuyển đến biến tham số sum = 0 start = 100 end = 200 for i in range(start, end+1): sum += i print("Sum is", sum) 62.

Ví dụ 2: Chuyển các đối tượng có thể thay đổi cho chức năng

Một cách khác để chuyển các đối số cho một hàm là sử dụng các đối số từ khóa. Trong phương pháp này, chúng tôi vượt qua từng đối số trong mẫu sau:

Hàm void trả về không. #

Đây là chức năng nhỏ in ngày và giờ hiện tại cùng với lời chào:

python101/Chapter-13/first_function.py

import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
3

Thử ngay bây giờ

Chương trình này tính toán tổng của tất cả các số từ

import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
2 đến
import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
3. Nếu chúng tôi muốn tính tổng số các số từ
import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
4 đến
import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
5, chúng tôi sẽ cần cập nhật chương trình như sau:

Như bạn có thể thấy cả hai phiên bản của chương trình là gần như giống hệt nhau, sự khác biệt duy nhất là các giá trị của các biến import datetime def greet(): print("Hello !") print("Today is", datetime.datetime.now()) greet() 6 và import datetime def greet(): print("Hello !") print("Today is", datetime.datetime.now()) greet() 7. Vì vậy, mỗi khi chúng tôi muốn tính tổng của hai số, chúng tôi sẽ cần cập nhật nguồn của chương trình. Sẽ tốt nếu chúng tôi bằng cách nào đó chỉ sử dụng lại toàn bộ mã mà không thực hiện bất kỳ sửa đổi nào. Chúng ta có thể làm điều đó bằng cách sử dụng các chức năng.

Hàm # là gì

import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
8

Một chức năng được đặt tên là nhóm các câu lệnh, thực hiện một nhiệm vụ cụ thể. Cú pháp xác định hàm như sau:

Một chức năng bao gồm hai phần: tiêu đề và cơ thể. Tiêu đề chức năng bắt đầu với từ khóa

import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
8, theo sau là tên của hàm, theo sau là các đối số và kết thúc bằng dấu hai chấm (
import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
9).
import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
1

python101/Chapter-13/calling_first_function.py

import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()

Thử ngay bây giờ

Output:

Chương trình này tính toán tổng của tất cả các số từ

Chương trình này tính toán tổng của tất cả các số từ

import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
2 đến
import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
3. Nếu chúng tôi muốn tính tổng số các số từ
import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
4 đến
import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
5, chúng tôi sẽ cần cập nhật chương trình như sau:

python101/Chapter-13/call_before_definition.py

Như bạn có thể thấy cả hai phiên bản của chương trình là gần như giống hệt nhau, sự khác biệt duy nhất là các giá trị của các biến import datetime def greet(): print("Hello !") print("Today is", datetime.datetime.now()) greet() 6 và import datetime def greet(): print("Hello !") print("Today is", datetime.datetime.now()) greet() 7. Vì vậy, mỗi khi chúng tôi muốn tính tổng của hai số, chúng tôi sẽ cần cập nhật nguồn của chương trình. Sẽ tốt nếu chúng tôi bằng cách nào đó chỉ sử dụng lại toàn bộ mã mà không thực hiện bất kỳ sửa đổi nào. Chúng ta có thể làm điều đó bằng cách sử dụng các chức năng.

Thử ngay bây giờ

Output:

Chương trình này tính toán tổng của tất cả các số từ

Chương trình này tính toán tổng của tất cả các số từ

import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
2 đến
import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
3. Nếu chúng tôi muốn tính tổng số các số từ
import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
4 đến
import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
5, chúng tôi sẽ cần cập nhật chương trình như sau:

Như bạn có thể thấy cả hai phiên bản của chương trình là gần như giống hệt nhau, sự khác biệt duy nhất là các giá trị của các biến import datetime def greet(): print("Hello !") print("Today is", datetime.datetime.now()) greet() 6 và import datetime def greet(): print("Hello !") print("Today is", datetime.datetime.now()) greet() 7. Vì vậy, mỗi khi chúng tôi muốn tính tổng của hai số, chúng tôi sẽ cần cập nhật nguồn của chương trình. Sẽ tốt nếu chúng tôi bằng cách nào đó chỉ sử dụng lại toàn bộ mã mà không thực hiện bất kỳ sửa đổi nào. Chúng ta có thể làm điều đó bằng cách sử dụng các chức năng.

Hàm # là gì

python101/Chapter-13/transfer_of_control.py

Một chức năng được đặt tên là nhóm các câu lệnh, thực hiện một nhiệm vụ cụ thể. Cú pháp xác định hàm như sau:

Thử ngay bây giờ

Output:

Một chức năng bao gồm hai phần: tiêu đề và cơ thể. Tiêu đề chức năng bắt đầu với từ khóa

Chương trình này tính toán tổng của tất cả các số từ

import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
2 đến
import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
3. Nếu chúng tôi muốn tính tổng số các số từ
import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
4 đến
import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
5, chúng tôi sẽ cần cập nhật chương trình như sau:

Hướng dẫn void function python - chức năng void python

Như bạn có thể thấy cả hai phiên bản của chương trình là gần như giống hệt nhau, sự khác biệt duy nhất là các giá trị của các biến import datetime def greet(): print("Hello !") print("Today is", datetime.datetime.now()) greet() 6 và import datetime def greet(): print("Hello !") print("Today is", datetime.datetime.now()) greet() 7. Vì vậy, mỗi khi chúng tôi muốn tính tổng của hai số, chúng tôi sẽ cần cập nhật nguồn của chương trình. Sẽ tốt nếu chúng tôi bằng cách nào đó chỉ sử dụng lại toàn bộ mã mà không thực hiện bất kỳ sửa đổi nào. Chúng ta có thể làm điều đó bằng cách sử dụng các chức năng.

Hàm # là gì

python101/Chapter-13/two_func_program_control.py

Một chức năng được đặt tên là nhóm các câu lệnh, thực hiện một nhiệm vụ cụ thể. Cú pháp xác định hàm như sau:Một chức năng bao gồm hai phần: tiêu đề và cơ thể. Tiêu đề chức năng bắt đầu với từ khóa

Thử ngay bây giờ

import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
8, theo sau là tên của hàm, theo sau là các đối số và kết thúc bằng dấu hai chấm (
import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
9).
import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
1

import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()

import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
2

import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
8

import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
9

Như bạn có thể thấy cả hai phiên bản của chương trình là gần như giống hệt nhau, sự khác biệt duy nhất là các giá trị của các biến

import datetime def greet(): print("Hello !") print("Today is", datetime.datetime.now()) greet() 6 và import datetime def greet(): print("Hello !") print("Today is", datetime.datetime.now()) greet() 7. Vì vậy, mỗi khi chúng tôi muốn tính tổng của hai số, chúng tôi sẽ cần cập nhật nguồn của chương trình. Sẽ tốt nếu chúng tôi bằng cách nào đó chỉ sử dụng lại toàn bộ mã mà không thực hiện bất kỳ sửa đổi nào. Chúng ta có thể làm điều đó bằng cách sử dụng các chức năng.

sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
0 The scope of a variable refers to the part of the program where it can be accessed.

sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
1

Ở phía bên kia của quang phổ, chúng ta có các biến toàn cầu. Biến toàn cầu là các biến được xác định bên ngoài bất kỳ chức năng nào. Phạm vi của biến toàn cầu bắt đầu từ điểm chúng được xác định và tiếp tục cho đến khi chương trình kết thúc.

Bây giờ hãy xem xét các ví dụ sau:

Ví dụ 1:: :

python101/Chapter-13/variable_scope.py

sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
4
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
5

Thử ngay bây giờ

Output:

sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
6

Trong các dòng 3-5 và 8-11, chúng tôi đã xác định hai hàm

import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
82 và
import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
95. Hàm
import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
82 hiện được cập nhật để chấp nhận một đối số gọi là
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
00, sau đó nó sử dụng trong dòng tiếp theo để chào người dùng.

Hàm

import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
95 không chấp nhận bất kỳ đối số nào và có ba tuyên bố bên trong cơ thể.

Output:

sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
7

Câu lệnh trong dòng 13, gọi hàm

import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
95. Kiểm soát chương trình nhảy vào cơ thể của hàm
import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
95. Câu lệnh đầu tiên bên trong chuỗi in
import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
95
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
05 vào bảng điều khiển. Câu lệnh trong dòng 10, gọi hàm
import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
82 với đối số
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
07 sẽ được gán cho biến
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
00 trong tiêu đề chức năng. Tại thời điểm này, việc thực hiện các câu lệnh sau cuộc gọi đến
import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
82 dừng lại và kiểm soát chương trình nhảy vào phần thân của hàm
import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
82. Sau khi thực hiện phần thân của chức năng
import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
82, điều khiển chương trình nhảy trở lại nơi nó rời khỏi và thực thi câu lệnh
import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
83 trong dòng 11. Vì không còn câu lệnh nào để thực thi trong hàm
import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
95 và điều khiển chương trình nhảy trở lại nơi nó rời đi Tắt để thực thi các câu lệnh sau khi gọi chức năng (dòng 13).

Các biến cục bộ, biến toàn cầu và phạm vi #

Phạm vi biến: Phạm vi của một biến đề cập đến một phần của chương trình nơi nó có thể được truy cập.

python101/Chapter-13/same_global_and_local.py

sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
8

Thử ngay bây giờ

Output:

sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
6

Ở phía bên kia của quang phổ, chúng ta có các biến toàn cầu. Biến toàn cầu là các biến được xác định bên ngoài bất kỳ chức năng nào. Phạm vi của biến toàn cầu bắt đầu từ điểm chúng được xác định và tiếp tục cho đến khi chương trình kết thúc.

python101/Chapter-13/same_variable_names_in_different_functions.py

Trong các dòng 3-5 và 8-11, chúng tôi đã xác định hai hàm
import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
82 và
import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
95. Hàm
import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
82 hiện được cập nhật để chấp nhận một đối số gọi là
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
00, sau đó nó sử dụng trong dòng tiếp theo để chào người dùng.

Thử ngay bây giờ

Output:

sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
6

Bây giờ hãy xem xét các ví dụ sau:

Trong các dòng 3-5 và 8-11, chúng tôi đã xác định hai hàm

import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
82 và
import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
95. Hàm
import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
82 hiện được cập nhật để chấp nhận một đối số gọi là
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
00, sau đó nó sử dụng trong dòng tiếp theo để chào người dùng.

Hàm
import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
95 không chấp nhận bất kỳ đối số nào và có ba tuyên bố bên trong cơ thể.

sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
7

Câu lệnh trong dòng 13, gọi hàm

import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
95. Kiểm soát chương trình nhảy vào cơ thể của hàm
import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
95. Câu lệnh đầu tiên bên trong chuỗi in
import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
95
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
05 vào bảng điều khiển. Câu lệnh trong dòng 10, gọi hàm
import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
82 với đối số
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
07 sẽ được gán cho biến
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
00 trong tiêu đề chức năng. Tại thời điểm này, việc thực hiện các câu lệnh sau cuộc gọi đến
import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
82 dừng lại và kiểm soát chương trình nhảy vào phần thân của hàm
import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
82. Sau khi thực hiện phần thân của chức năng
import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
82, điều khiển chương trình nhảy trở lại nơi nó rời khỏi và thực thi câu lệnh
import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
83 trong dòng 11. Vì không còn câu lệnh nào để thực thi trong hàm
import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
95 và điều khiển chương trình nhảy trở lại nơi nó rời đi Tắt để thực thi các câu lệnh sau khi gọi chức năng (dòng 13).

python101/Chapter-13/function_argument.py

Các biến cục bộ, biến toàn cầu và phạm vi #

Thử ngay bây giờ

Output:

sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
6

Trong các dòng 3-5 và 8-11, chúng tôi đã xác định hai hàm

import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
82 và
import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
95. Hàm
import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
82 hiện được cập nhật để chấp nhận một đối số gọi là
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
00, sau đó nó sử dụng trong dòng tiếp theo để chào người dùng.
Function to calculate the factorial of a number.

python101/Chapter-13/factorial.py

Hàm

Thử ngay bây giờ

Output:

sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
6

Trong các dòng 3-5 và 8-11, chúng tôi đã xác định hai hàm

import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
82 và
import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
95. Hàm
import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
82 hiện được cập nhật để chấp nhận một đối số gọi là
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
00, sau đó nó sử dụng trong dòng tiếp theo để chào người dùng.

Hàm

import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
95 không chấp nhận bất kỳ đối số nào và có ba tuyên bố bên trong cơ thể.

sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
7
Câu lệnh trong dòng 13, gọi hàm
import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
95. Kiểm soát chương trình nhảy vào cơ thể của hàm
import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
95. Câu lệnh đầu tiên bên trong chuỗi in
import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
95
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
05 vào bảng điều khiển. Câu lệnh trong dòng 10, gọi hàm
import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
82 với đối số
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
07 sẽ được gán cho biến
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
00 trong tiêu đề chức năng. Tại thời điểm này, việc thực hiện các câu lệnh sau cuộc gọi đến
import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
82 dừng lại và kiểm soát chương trình nhảy vào phần thân của hàm
import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
82. Sau khi thực hiện phần thân của chức năng
import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
82, điều khiển chương trình nhảy trở lại nơi nó rời khỏi và thực thi câu lệnh
import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
83 trong dòng 11. Vì không còn câu lệnh nào để thực thi trong hàm
import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
95 và điều khiển chương trình nhảy trở lại nơi nó rời đi Tắt để thực thi các câu lệnh sau khi gọi chức năng (dòng 13).
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
43
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
44
Các biến cục bộ, biến toàn cầu và phạm vi #Phạm vi biến: Phạm vi của một biến đề cập đến một phần của chương trình nơi nó có thể được truy cập.
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
8
Biến chúng tôi tạo bên trong hàm được gọi là biến cục bộ. Các biến cục bộ chỉ có thể được truy cập bên trong phần thân của hàm được xác định. Nói cách khác, phạm vi của biến cục bộ bắt đầu từ điểm chúng được xác định và tiếp tục cho đến khi kết thúc hàm. Các biến cục bộ phải chịu bộ sưu tập rác ngay khi hàm kết thúc. Do đó, cố gắng truy cập một biến cục bộ bên ngoài phạm vi của nó sẽ dẫn đến lỗi.
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
9
def function_name(arg1, arg2, arg3 ... argN):
    # function body
    <indented statement 1>
    <non-indented statement 2>
    ...
    <indented statement n>
    <return statement>
0
def function_name(arg1, arg2, arg3 ... argN):
    # function body
    <indented statement 1>
    <non-indented statement 2>
    ...
    <indented statement n>
    <return statement>
1
Ví dụ 1:
Trong dòng 1, chúng tôi đã tạo một biến toàn cầu có tên
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
14. Sau đó, nó được truy cập trong dòng 12, bên trong hàm
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
15 và trong dòng 17, bên ngoài hàm. Chúng tôi cũng đã khai báo một biến cục bộ có tên
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
16 bên trong hàm
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
15. Sau đó, nó được truy cập bên trong hàm trong dòng 9.
def function_name(arg1, arg2, arg3 ... argN):
    # function body
    <indented statement 1>
    <non-indented statement 2>
    ...
    <indented statement n>
    <return statement>
2
Khi hàm
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
27 được gọi bằng đối số, giá trị của đối số được gán cho biến
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
20 và câu lệnh
import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
83 sẽ in giá trị của
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
20 sau khi thêm
import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
4 vào nó.
Chương trình sau đây trình bày cách gọi một chức năng với đối số.
def function_name(arg1, arg2, arg3 ... argN):
    # function body
    <indented statement 1>
    <non-indented statement 2>
    ...
    <indented statement n>
    <return statement>
3
Trong dòng 6, hàm
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
55

sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
27 được gọi với đối số
import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
4. Giá trị của đối số sau đó được gán cho biến tham số
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
20.56: Passing multiple arguments to the function

python101/Chapter-13/multiple_arguments.py

Ví dụ 2: Hàm để tính toán giai thừa của một số. Function to calculate the factorial of a number.

Thử ngay bây giờ

Output:

def function_name(arg1, arg2, arg3 ... argN):
    # function body
    <indented statement 1>
    <non-indented statement 2>
    ...
    <indented statement n>
    <return statement>
4

sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
27 được gọi với đối số
import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
4. Giá trị của đối số sau đó được gán cho biến tham số
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
20.
def function_name(arg1, arg2, arg3 ... argN):
    # function body
    <indented statement 1>
    <non-indented statement 2>
    ...
    <indented statement n>
    <return statement>
5

Ví dụ 2: Hàm để tính toán giai thừa của một số.

def function_name(arg1, arg2, arg3 ... argN):
    # function body
    <indented statement 1>
    <non-indented statement 2>
    ...
    <indented statement n>
    <return statement>
6

Lượng của một số

Thứ tự của các đối số được truyền trong khi gọi hàm phải khớp với thứ tự của các tham số trong tiêu đề hàm, nếu không, bạn có thể nhận được kết quả không mong muốn.

Vượt qua giá trị #

def function_name(arg1, arg2, arg3 ... argN):
    # function body
    <indented statement 1>
    <non-indented statement 2>
    ...
    <indented statement n>
    <return statement>
9

Thử ngay bây giờ

Output:

import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
30

Hãy nhớ lại rằng mọi thứ trong Python là đối tượng. Vì vậy, một biến cho một đối tượng, thực sự là một tham chiếu đến đối tượng. Nói cách khác, một biến lưu trữ địa chỉ nơi một đối tượng được lưu trữ trong bộ nhớ. Nó không chứa chính đối tượng thực tế.

Khi một hàm được gọi với các đối số, đó là địa chỉ của đối tượng được lưu trữ trong đối số được truyền đến biến tham số. Tuy nhiên, chỉ vì mục đích đơn giản, chúng tôi nói rằng giá trị của đối số được chuyển đến tham số trong khi gọi hàm. Cơ chế này được gọi là vượt qua theo giá trị. Xem xét ví dụ sau:

  1. Lưu ý rằng các giá trị

    sum = 0
    start = 100
    end = 200
    for i in range(start, end+1):
        sum += i    
    
    print("Sum is", sum)
    
    63 là như nhau. Điều này có nghĩa là biến
    sum = 0
    start = 100
    end = 200
    for i in range(start, end+1):
        sum += i    
    
    print("Sum is", sum)
    
    64 và
    sum = 0
    start = 100
    end = 200
    for i in range(start, end+1):
        sum += i    
    
    print("Sum is", sum)
    
    65 tham chiếu cùng một đối tượng. Nói cách khác, cả
    sum = 0
    start = 100
    end = 200
    for i in range(start, end+1):
        sum += i    
    
    print("Sum is", sum)
    
    64 và
    sum = 0
    start = 100
    end = 200
    for i in range(start, end+1):
        sum += i    
    
    print("Sum is", sum)
    
    65 đều chỉ vào cùng một vị trí bộ nhớ trong đó đối tượng
    sum = 0
    start = 100
    end = 200
    for i in range(start, end+1):
        sum += i    
    
    print("Sum is", sum)
    
    68 (
    import datetime
    
    def greet():
        print("Hello !")
        print("Today is", datetime.datetime.now())
    
    greet()
    
    4) được lưu trữ.
  2. Hành vi này có hai hậu quả quan trọng:

Nếu các đối số được truyền cho chức năng là bất biến, thì các thay đổi được thực hiện đối với biến tham số sẽ không ảnh hưởng đến đối số.

Tuy nhiên, nếu đối số được truyền cho hàm là có thể thay đổi, thì các thay đổi được thực hiện đối với biến tham số sẽ ảnh hưởng đến đối số.: Passing immutable objects to function.: Passing immutable objects to function.

python101/Chapter-13/passing_immutable_objects.py

import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
31

Thử ngay bây giờ

Output:

import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
30

Hãy nhớ lại rằng mọi thứ trong Python là đối tượng. Vì vậy, một biến cho một đối tượng, thực sự là một tham chiếu đến đối tượng. Nói cách khác, một biến lưu trữ địa chỉ nơi một đối tượng được lưu trữ trong bộ nhớ. Nó không chứa chính đối tượng thực tế.

Khi một hàm được gọi với các đối số, đó là địa chỉ của đối tượng được lưu trữ trong đối số được truyền đến biến tham số. Tuy nhiên, chỉ vì mục đích đơn giản, chúng tôi nói rằng giá trị của đối số được chuyển đến tham số trong khi gọi hàm. Cơ chế này được gọi là vượt qua theo giá trị. Xem xét ví dụ sau:

Lưu ý rằng các giá trị

sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
63 là như nhau. Điều này có nghĩa là biến
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
64 và
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
65 tham chiếu cùng một đối tượng. Nói cách khác, cả
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
64 và
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
65 đều chỉ vào cùng một vị trí bộ nhớ trong đó đối tượng
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
68 (
import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
4) được lưu trữ.15 được gọi với một đối số
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
64 (chỉ vào một đối tượng bất biến
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
68). Giá trị của
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
64 được truyền đến tham số
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
65. Bên trong giá trị hàm của
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
65 được tăng lên bởi
import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
4 (dòng 3). Khi hàm kết thúc, câu lệnh in trong dòng 8 được thực thi và chuỗi
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
77 được in vào bảng điều khiển. Điều này chứng minh rằng bất kể chức năng nào làm gì đối với
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
65, giá trị của
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
64 vẫn giữ nguyên.
: Passing mutable objects to function

python101/Chapter-13/passing_mutable_objects.py

Hành vi này có hai hậu quả quan trọng:

Thử ngay bây giờ

Output:

import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
30

Hãy nhớ lại rằng mọi thứ trong Python là đối tượng. Vì vậy, một biến cho một đối tượng, thực sự là một tham chiếu đến đối tượng. Nói cách khác, một biến lưu trữ địa chỉ nơi một đối tượng được lưu trữ trong bộ nhớ. Nó không chứa chính đối tượng thực tế.

Khi một hàm được gọi với các đối số, đó là địa chỉ của đối tượng được lưu trữ trong đối số được truyền đến biến tham số. Tuy nhiên, chỉ vì mục đích đơn giản, chúng tôi nói rằng giá trị của đối số được chuyển đến tham số trong khi gọi hàm. Cơ chế này được gọi là vượt qua theo giá trị. Xem xét ví dụ sau:

Lưu ý rằng các giá trị

sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
63 là như nhau. Điều này có nghĩa là biến
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
64 và
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
65 tham chiếu cùng một đối tượng. Nói cách khác, cả
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
64 và
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
65 đều chỉ vào cùng một vị trí bộ nhớ trong đó đối tượng
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
68 (
import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
4) được lưu trữ.

Hành vi này có hai hậu quả quan trọng:
  1. Nếu các đối số được truyền cho chức năng là bất biến, thì các thay đổi được thực hiện đối với biến tham số sẽ không ảnh hưởng đến đối số.
  2. Tuy nhiên, nếu đối số được truyền cho hàm là có thể thay đổi, thì các thay đổi được thực hiện đối với biến tham số sẽ ảnh hưởng đến đối số.: Passing immutable objects to function.

import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
31

python101/Chapter-13/pythagorean_triplets.py

import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
32

Thử ngay bây giờ

import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
30

Hãy nhớ lại rằng mọi thứ trong Python là đối tượng. Vì vậy, một biến cho một đối tượng, thực sự là một tham chiếu đến đối tượng. Nói cách khác, một biến lưu trữ địa chỉ nơi một đối tượng được lưu trữ trong bộ nhớ. Nó không chứa chính đối tượng thực tế.

Khi một hàm được gọi với các đối số, đó là địa chỉ của đối tượng được lưu trữ trong đối số được truyền đến biến tham số. Tuy nhiên, chỉ vì mục đích đơn giản, chúng tôi nói rằng giá trị của đối số được chuyển đến tham số trong khi gọi hàm. Cơ chế này được gọi là vượt qua theo giá trị. Xem xét ví dụ sau:

Lưu ý rằng các giá trị

sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
63 là như nhau. Điều này có nghĩa là biến
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
64 và
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
65 tham chiếu cùng một đối tượng. Nói cách khác, cả
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
64 và
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
65 đều chỉ vào cùng một vị trí bộ nhớ trong đó đối tượng
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
68 (
import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
4) được lưu trữ.

Hành vi này có hai hậu quả quan trọng:

Nếu các đối số được truyền cho chức năng là bất biến, thì các thay đổi được thực hiện đối với biến tham số sẽ không ảnh hưởng đến đối số.
Tuy nhiên, nếu đối số được truyền cho hàm là có thể thay đổi, thì các thay đổi được thực hiện đối với biến tham số sẽ ảnh hưởng đến đối số.: Passing immutable objects to function.

Thử ngay bây giờ

import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
30

Hãy nhớ lại rằng mọi thứ trong Python là đối tượng. Vì vậy, một biến cho một đối tượng, thực sự là một tham chiếu đến đối tượng. Nói cách khác, một biến lưu trữ địa chỉ nơi một đối tượng được lưu trữ trong bộ nhớ. Nó không chứa chính đối tượng thực tế.

Một cách khác để chuyển các đối số cho một hàm là sử dụng các đối số từ khóa. Trong phương pháp này, chúng tôi vượt qua từng đối số trong mẫu sau:

trong đó

sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
99 là tên của biến tham số trong tiêu đề hàm và
def function_name(arg1, arg2, arg3 ... argN):
    # function body
    <indented statement 1>
    <non-indented statement 2>
    ...
    <indented statement n>
    <return statement>
00 đề cập đến giá trị bạn muốn chuyển đến biến tham số. Bởi vì, chúng tôi đang liên kết tên tham số với các giá trị, thứ tự đối số trong lệnh gọi hàm không quan trọng.
import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
37

Thử ngay bây giờ

Tuyên bố

sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
84 vượt qua
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
85 đến
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
86,
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
41 đến
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
88 và
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
89 đến
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
90 và in
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
91. Tuy nhiên, tuyên bố
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
92, chuyển
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
85 cho cơ sở,
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
89 đến
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
88 và
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
41 đến
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
90 và in
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
98, điều này là sai. Vì vậy, khi sử dụng các đối số vị trí luôn đảm bảo rằng thứ tự của các đối số trong lệnh gọi chức năng và thứ tự của các tham số trong các tiêu đề chức năng phù hợp. Nếu không, bạn có thể nhận được kết quả mong đợi.
import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
38

Thử ngay bây giờ

Tuyên bố

sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
84 vượt qua
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
85 đến
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
86,
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
41 đến
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
88 và
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
89 đến
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
90 và in
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
91. Tuy nhiên, tuyên bố
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
92, chuyển
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
85 cho cơ sở,
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
89 đến
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
88 và
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
41 đến
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
90 và in
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
98, điều này là sai. Vì vậy, khi sử dụng các đối số vị trí luôn đảm bảo rằng thứ tự của các đối số trong lệnh gọi chức năng và thứ tự của các tham số trong các tiêu đề chức năng phù hợp. Nếu không, bạn có thể nhận được kết quả mong đợi.
import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
38

Một cách khác để chuyển các đối số cho một hàm là sử dụng các đối số từ khóa. Trong phương pháp này, chúng tôi vượt qua từng đối số trong mẫu sau:

trong đó

sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
99 là tên của biến tham số trong tiêu đề hàm và
def function_name(arg1, arg2, arg3 ... argN):
    # function body
    <indented statement 1>
    <non-indented statement 2>
    ...
    <indented statement n>
    <return statement>
00 đề cập đến giá trị bạn muốn chuyển đến biến tham số. Bởi vì, chúng tôi đang liên kết tên tham số với các giá trị, thứ tự đối số trong lệnh gọi hàm không quan trọng.

import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
37

Thử ngay bây giờ

Tuyên bố

sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
84 vượt qua
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
85 đến
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
86,
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
41 đến
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
88 và
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
89 đến
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
90 và in
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
91. Tuy nhiên, tuyên bố
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
92, chuyển
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
85 cho cơ sở,
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
89 đến
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
88 và
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
41 đến
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
90 và in
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
98, điều này là sai. Vì vậy, khi sử dụng các đối số vị trí luôn đảm bảo rằng thứ tự của các đối số trong lệnh gọi chức năng và thứ tự của các tham số trong các tiêu đề chức năng phù hợp. Nếu không, bạn có thể nhận được kết quả mong đợi.

import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
38

import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
39

sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
99 là tên của biến tham số trong tiêu đề hàm và
def function_name(arg1, arg2, arg3 ... argN):
    # function body
    <indented statement 1>
    <non-indented statement 2>
    ...
    <indented statement n>
    <return statement>
00 đề cập đến giá trị bạn muốn chuyển đến biến tham số. Bởi vì, chúng tôi đang liên kết tên tham số với các giá trị, thứ tự đối số trong lệnh gọi hàm không quan trọng.

Dưới đây là một số cách khác nhau mà chúng ta có thể gọi chức năng

def function_name(arg1, arg2, arg3 ... argN):
    # function body
    <indented statement 1>
    <non-indented statement 2>
    ...
    <indented statement n>
    <return statement>
01 bằng cách sử dụng các đối số từ khóa:

Thử ngay bây giờ

Tuyên bố

sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
84 vượt qua
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
85 đến
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
86,
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
41 đến
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
88 và
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
89 đến
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
90 và in
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
91. Tuy nhiên, tuyên bố
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
92, chuyển
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
85 cho cơ sở,
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
89 đến
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
88 và
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
41 đến
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
90 và in
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
98, điều này là sai. Vì vậy, khi sử dụng các đối số vị trí luôn đảm bảo rằng thứ tự của các đối số trong lệnh gọi chức năng và thứ tự của các tham số trong các tiêu đề chức năng phù hợp. Nếu không, bạn có thể nhận được kết quả mong đợi.

Thử ngay bây giờ

Tuyên bố

sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
84 vượt qua
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
85 đến
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
86,
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
41 đến
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
88 và
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
89 đến
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
90 và in
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
91. Tuy nhiên, tuyên bố
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
92, chuyển
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
85 cho cơ sở,
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
89 đến
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
88 và
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
41 đến
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
90 và in
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
98, điều này là sai. Vì vậy, khi sử dụng các đối số vị trí luôn đảm bảo rằng thứ tự của các đối số trong lệnh gọi chức năng và thứ tự của các tham số trong các tiêu đề chức năng phù hợp. Nếu không, bạn có thể nhận được kết quả mong đợi.

import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
38

import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
39

sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
99 là tên của biến tham số trong tiêu đề hàm và
def function_name(arg1, arg2, arg3 ... argN):
    # function body
    <indented statement 1>
    <non-indented statement 2>
    ...
    <indented statement n>
    <return statement>
00 đề cập đến giá trị bạn muốn chuyển đến biến tham số. Bởi vì, chúng tôi đang liên kết tên tham số với các giá trị, thứ tự đối số trong lệnh gọi hàm không quan trọng.

python101/Chapter-13/return_factorial.py

Dưới đây là một số cách khác nhau mà chúng ta có thể gọi chức năng

Thử ngay bây giờ

Output:

Tuyên bố

sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
84 vượt qua
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
85 đến
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
86,
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
41 đến
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
88 và
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
89 đến
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
90 và in
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
91. Tuy nhiên, tuyên bố
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
92, chuyển
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
85 cho cơ sở,
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
89 đến
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
88 và
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
41 đến
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
90 và in
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
98, điều này là sai. Vì vậy, khi sử dụng các đối số vị trí luôn đảm bảo rằng thứ tự của các đối số trong lệnh gọi chức năng và thứ tự của các tham số trong các tiêu đề chức năng phù hợp. Nếu không, bạn có thể nhận được kết quả mong đợi.

import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
38

python101/Chapter-13/is_even_or_odd.py

import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
39
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
99 là tên của biến tham số trong tiêu đề hàm và
def function_name(arg1, arg2, arg3 ... argN):
    # function body
    <indented statement 1>
    <non-indented statement 2>
    ...
    <indented statement n>
    <return statement>
00 đề cập đến giá trị bạn muốn chuyển đến biến tham số. Bởi vì, chúng tôi đang liên kết tên tham số với các giá trị, thứ tự đối số trong lệnh gọi hàm không quan trọng.

Thử ngay bây giờ

Tuyên bố

sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
84 vượt qua
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
85 đến
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
86,
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
41 đến
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
88 và
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
89 đến
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
90 và in
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
91. Tuy nhiên, tuyên bố
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
92, chuyển
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
85 cho cơ sở,
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
89 đến
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
88 và
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
41 đến
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
90 và in
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
98, điều này là sai. Vì vậy, khi sử dụng các đối số vị trí luôn đảm bảo rằng thứ tự của các đối số trong lệnh gọi chức năng và thứ tự của các tham số trong các tiêu đề chức năng phù hợp. Nếu không, bạn có thể nhận được kết quả mong đợi.

import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
38

import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
39

sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
99 là tên của biến tham số trong tiêu đề hàm và
def function_name(arg1, arg2, arg3 ... argN):
    # function body
    <indented statement 1>
    <non-indented statement 2>
    ...
    <indented statement n>
    <return statement>
00 đề cập đến giá trị bạn muốn chuyển đến biến tham số. Bởi vì, chúng tôi đang liên kết tên tham số với các giá trị, thứ tự đối số trong lệnh gọi hàm không quan trọng.

python101/Chapter-13/returning_none.py

Dưới đây là một số cách khác nhau mà chúng ta có thể gọi chức năng

Thử ngay bây giờ

Output:

Tuyên bố

sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
84 vượt qua
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
85 đến
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
86,
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
41 đến
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
88 và
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
89 đến
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
90 và in
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
91. Tuy nhiên, tuyên bố
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
92, chuyển
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
85 cho cơ sở,
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
89 đến
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
88 và
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
41 đến
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
90 và in
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
98, điều này là sai. Vì vậy, khi sử dụng các đối số vị trí luôn đảm bảo rằng thứ tự của các đối số trong lệnh gọi chức năng và thứ tự của các tham số trong các tiêu đề chức năng phù hợp. Nếu không, bạn có thể nhận được kết quả mong đợi.

python101/Chapter-13/grade_calculator.py

import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
38
import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
39

Thử ngay bây giờ

sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
99 là tên của biến tham số trong tiêu đề hàm và
def function_name(arg1, arg2, arg3 ... argN):
    # function body
    <indented statement 1>
    <non-indented statement 2>
    ...
    <indented statement n>
    <return statement>
00 đề cập đến giá trị bạn muốn chuyển đến biến tham số. Bởi vì, chúng tôi đang liên kết tên tham số với các giá trị, thứ tự đối số trong lệnh gọi hàm không quan trọng.

Dưới đây là một số cách khác nhau mà chúng ta có thể gọi chức năng

def function_name(arg1, arg2, arg3 ... argN):
    # function body
    <indented statement 1>
    <non-indented statement 2>
    ...
    <indented statement n>
    <return statement>
01 bằng cách sử dụng các đối số từ khóa:

Đối số từ khóa có chút linh hoạt vì chúng ta không phải nhớ thứ tự của các tham số trong tiêu đề chức năng.

Trộn các đối số từ khóa và vị trí #

Chúng ta cũng có thể trộn các đối số vị trí và đối số từ khóa trong một cuộc gọi chức năng. Khi làm như vậy, yêu cầu duy nhất là các đối số vị trí phải xuất hiện trước bất kỳ đối số từ khóa nào. Điều đó có nghĩa là hai cuộc gọi sau đây hoàn toàn hợp lệ vì trong cả hai cuộc gọi đối số vị trí xuất hiện trước các đối số từ khóa.

import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
24 nào thì giá trị đặc biệt
import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
27 được trả về khi hàm kết thúc. Trong Python,
import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
27 là một chữ của loại
import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
29 được sử dụng để biểu thị sự vắng mặt của một giá trị. Nó thường được gán cho một biến để chỉ ra rằng biến không trỏ đến bất kỳ đối tượng nào.

Chương trình sau đây chứng minh rằng các hàm void trả về

import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
27.

python101/Chapter-13/void_function.py

import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
13

Thử ngay bây giờ

Output:

Đảm bảo đủ!

def function_name(arg1, arg2, arg3 ... argN):
    # function body
    <indented statement 1>
    <non-indented statement 2>
    ...
    <indented statement n>
    <return statement>
13 Hàm thực sự trả về
import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
27. Vì vậy, chúng ta có thể nói rằng trong Python, tất cả các hàm trả về giá trị cho dù bạn có sử dụng câu lệnh
import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
24 hay không. Tuy nhiên, điều này không có nghĩa là bạn có thể sử dụng các hàm void giống như hàm hoàn trả giá trị. Xem xét ví dụ sau:

python101/Chapter-13/using_void_function_as_non_void_function.py

import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
14

Thử ngay bây giờ

Output:

Đảm bảo đủ!

def function_name(arg1, arg2, arg3 ... argN):
    # function body
    <indented statement 1>
    <non-indented statement 2>
    ...
    <indented statement n>
    <return statement>
13 Hàm thực sự trả về
import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
27. Vì vậy, chúng ta có thể nói rằng trong Python, tất cả các hàm trả về giá trị cho dù bạn có sử dụng câu lệnh
import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
24 hay không. Tuy nhiên, điều này không có nghĩa là bạn có thể sử dụng các hàm void giống như hàm hoàn trả giá trị. Xem xét ví dụ sau:

import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
14

import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
15

Trong dòng 5, chúng tôi đang cố gắng thêm giá trị được trả về từ

def function_name(arg1, arg2, arg3 ... argN):
    # function body
    <indented statement 1>
    <non-indented statement 2>
    ...
    <indented statement n>
    <return statement>
13 tức là
import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
27 vào số nguyên
import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
4, nhưng thao tác không thành công vì hoạt động
def function_name(arg1, arg2, arg3 ... argN):
    # function body
    <indented statement 1>
    <non-indented statement 2>
    ...
    <indented statement n>
    <return statement>
39 không thể thêm
import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
29 vào
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
68.

Đó là lý do tại sao một hàm void thường được gọi như một tuyên bố như thế này:

Trả về nhiều giá trị #

Để trả về nhiều giá trị từ một hàm, chỉ cần chỉ định từng giá trị được phân tách bằng dấu phẩy (

python101/Chapter-13/returning_multiple_values.py

import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
22) sau từ khóa
import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
24.
import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
16

Thử ngay bây giờ

Output:

Đảm bảo đủ!

def function_name(arg1, arg2, arg3 ... argN):
    # function body
    <indented statement 1>
    <non-indented statement 2>
    ...
    <indented statement n>
    <return statement>
13 Hàm thực sự trả về
import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
27. Vì vậy, chúng ta có thể nói rằng trong Python, tất cả các hàm trả về giá trị cho dù bạn có sử dụng câu lệnh
import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
24 hay không. Tuy nhiên, điều này không có nghĩa là bạn có thể sử dụng các hàm void giống như hàm hoàn trả giá trị. Xem xét ví dụ sau:

import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
19

import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
14

import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
15

Trong dòng 5, chúng tôi đang cố gắng thêm giá trị được trả về từ

def function_name(arg1, arg2, arg3 ... argN):
    # function body
    <indented statement 1>
    <non-indented statement 2>
    ...
    <indented statement n>
    <return statement>
13 tức là
import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
27 vào số nguyên
import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
4, nhưng thao tác không thành công vì hoạt động
def function_name(arg1, arg2, arg3 ... argN):
    # function body
    <indented statement 1>
    <non-indented statement 2>
    ...
    <indented statement n>
    <return statement>
39 không thể thêm
import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
29 vào
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
68.

python101/Chapter-13/setting_default_values.py

Đó là lý do tại sao một hàm void thường được gọi như một tuyên bố như thế này:

Thử ngay bây giờ

Output:

Đảm bảo đủ!

def function_name(arg1, arg2, arg3 ... argN):
    # function body
    <indented statement 1>
    <non-indented statement 2>
    ...
    <indented statement n>
    <return statement>
13 Hàm thực sự trả về
import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
27. Vì vậy, chúng ta có thể nói rằng trong Python, tất cả các hàm trả về giá trị cho dù bạn có sử dụng câu lệnh
import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
24 hay không. Tuy nhiên, điều này không có nghĩa là bạn có thể sử dụng các hàm void giống như hàm hoàn trả giá trị. Xem xét ví dụ sau:

import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
14

import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
15

Trong dòng 5, chúng tôi đang cố gắng thêm giá trị được trả về từ

def function_name(arg1, arg2, arg3 ... argN):
    # function body
    <indented statement 1>
    <non-indented statement 2>
    ...
    <indented statement n>
    <return statement>
13 tức là
import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
27 vào số nguyên
import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
4, nhưng thao tác không thành công vì hoạt động
def function_name(arg1, arg2, arg3 ... argN):
    # function body
    <indented statement 1>
    <non-indented statement 2>
    ...
    <indented statement n>
    <return statement>
39 không thể thêm
import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
29 vào
sum = 0
start = 100
end = 200
for i in range(start, end+1):
    sum += i    

print("Sum is", sum)
68.

Đó là lý do tại sao một hàm void thường được gọi như một tuyên bố như thế này:

Trả về nhiều giá trị #

Để trả về nhiều giá trị từ một hàm, chỉ cần chỉ định từng giá trị được phân tách bằng dấu phẩy (printf function is treated as a void function. (In actuality, printf returns an integer which is the number of characters printed... but we almost always ignore this value.)

import datetime def greet(): print("Hello !") print("Today is", datetime.datetime.now()) greet() 22) sau từ khóa import datetime def greet(): print("Hello !") print("Today is", datetime.datetime.now()) greet() 24.import datetime def greet(): print("Hello !") print("Today is", datetime.datetime.now()) greet() 16

Khi gọi một hàm trả về nhiều giá trị, số lượng biến ở phía bên trái của toán tử created and used just like value-returning functions except they do not return a value after the function executes. In lieu of a data type, void functions use the keyword "void." A void function performs a task, and then control returns back to the caller--but, it does not return a value.

def function_name(arg1, arg2, arg3 ... argN): # function body ... 44 phải bằng số lượng giá trị được trả về bởi câu lệnh import datetime def greet(): print("Hello !") print("Today is", datetime.datetime.now()) greet() 24. Vì vậy, nếu một hàm trả về hai giá trị thì bạn phải sử dụng 2 biến ở phía bên trái của toán tử def function_name(arg1, arg2, arg3 ... argN): # function body ... 44. Đây là một ví dụ:

import datetime

def greet():
    print("Hello !")
    print("Today is", datetime.datetime.now())

greet()
17 the data type for the result of a function that returns normally, but does not provide a result value to its caller.

import datetime def greet(): print("Hello !") print("Today is", datetime.datetime.now()) greet() 18

Lưu ý cách các giá trị được gán trong khi gọi hàm. Tuyên bố: