Hàm ghi trong Python là gì

Hoặc, chúng ta có thể đặt tên cho các đối số khi chúng ta gọi hàm, điều này cho phép chúng ta chỉ định chúng theo bất kỳ thứ tự nào và thêm sự rõ ràng cho vị trí cuộc gọi;

print_date[month=3, day=19, year=1871]

1871/3/19

  • Qua Twitter.
    print_date[month=3, day=19, year=1871]
    
    1 chứa các thành phần cho chức năng trong khi phần thân chứa công thức

Các hàm có thể trả về kết quả cho người gọi của chúng bằng cách sử dụng
print_date[month=3, day=19, year=1871]
2

  • Sử dụng
    print_date[month=3, day=19, year=1871]
    
    3 để trả lại giá trị cho người gọi
  • Có thể xảy ra bất cứ nơi nào trong chức năng
  • Nhưng các chức năng sẽ dễ hiểu hơn nếu
    print_date[month=3, day=19, year=1871]
    
    2 xảy ra
    • Khi bắt đầu xử lý các trường hợp đặc biệt
    • Cuối cùng, với một kết quả cuối cùng

def average[values]:
    if len[values] == 0:
        return None
    return sum[values] / len[values]

a = average[[1, 3, 4]]
print['average of actual values:', a]

________số 8_______

print_greeting[]
0

print_greeting[]
1

  • Nhớ. mỗi chức năng trả về một cái gì đó
  • Một hàm không rõ ràng
    print_date[month=3, day=19, year=1871]
    
    2 một giá trị tự động trả về
    print_date[month=3, day=19, year=1871]
    
    6

print_greeting[]
2

print_greeting[]
3

Xác định lỗi cú pháp

  1. Đọc mã bên dưới và cố gắng xác định lỗi là gì mà không cần chạy nó
  2. Chạy mã và đọc thông báo lỗi. Nó là một
    print_date[month=3, day=19, year=1871]
    
    7 hay một
    print_date[month=3, day=19, year=1871]
    
    8?
  3. Sửa lỗi
  4. Lặp lại bước 2 và 3 cho đến khi bạn đã sửa tất cả các lỗi

print_greeting[]
4

Giải pháp

print_greeting[]
5

Định nghĩa và sử dụng

Đoạn chương trình sau in ra gì?

print_greeting[]
6

Giải pháp

print_greeting[]
7

Một lệnh gọi hàm luôn cần dấu ngoặc đơn, nếu không, bạn sẽ nhận được địa chỉ bộ nhớ của đối tượng hàm. Vì vậy, nếu chúng ta muốn gọi hàm có tên báo cáo và đặt cho nó giá trị 22. 5 để báo cáo, chúng ta có thể gọi hàm như sau

print_greeting[]
8

print_greeting[]
9

Thứ tự hoạt động

  1. Có gì sai trong ví dụ này?

    Hello!
    
    0

  2. Sau khi khắc phục sự cố ở trên, hãy giải thích lý do chạy mã ví dụ này

    Hello!
    
    1

    đưa ra đầu ra này

    Hello!
    
    2

  3. Tại sao kết quả của cuộc gọi là

    print_date[month=3, day=19, year=1871]
    
    6?

Giải pháp

  1. Vấn đề với ví dụ này là hàm

    1871/3/19
    
    0 được xác định sau khi gọi hàm được thực hiện. Python không biết cách giải quyết tên
    1871/3/19
    
    1 vì nó chưa được xác định và sẽ tăng giá trị
    1871/3/19
    
    2 e. g. ,
    1871/3/19
    
    3

  2. Dòng đầu tiên của đầu ra

    1871/3/19
    
    4 được in bởi dòng mã đầu tiên,
    1871/3/19
    
    5 liên kết giá trị được trả về bằng cách gọi
    1871/3/19
    
    1 với biến
    1871/3/19
    
    7. Dòng thứ hai là từ lệnh in thứ hai để in nội dung của biến
    1871/3/19
    
    7

  3. 1871/3/19
    
    0 không rõ ràng về giá trị
    print_date[month=3, day=19, year=1871]
    
    2, do đó, nó tự động trả về
    print_date[month=3, day=19, year=1871]
    
    6

đóng gói

Điền vào chỗ trống để tạo một hàm lấy một tên tệp làm đối số, tải dữ liệu trong tệp được đặt tên theo đối số và trả về giá trị nhỏ nhất trong dữ liệu đó

Hello!
3

Giải pháp

Hello!
4

Tìm người đầu tiên

Điền vào chỗ trống để tạo một hàm lấy danh sách các số làm đối số và trả về giá trị âm đầu tiên trong danh sách. Chức năng của bạn sẽ làm gì nếu danh sách trống?

Hello!
5

Giải pháp

Hello!
6

Nếu một danh sách trống hoặc một danh sách có tất cả các giá trị dương được chuyển đến hàm này, thì nó sẽ trả về

print_date[month=3, day=19, year=1871]
6

Hello!
7

Hello!
8

Gọi tên

Trước đó chúng ta đã thấy chức năng này

Hello!
9

Chúng ta thấy rằng chúng ta có thể gọi hàm bằng cách sử dụng các đối số được đặt tên, như thế này

def print_date[year, month, day]:
    joined = str[year] + '/' + str[month] + '/' + str[day]
    print[joined]

print_date[1871, 3, 19]
0

  1. def average[values]:
        if len[values] == 0:
            return None
        return sum[values] / len[values]
    
    3 in gì?
  2. Bạn đã từng thấy lệnh gọi hàm như thế này khi nào chưa?
  3. Khi nào và tại sao gọi hàm theo cách này lại hữu ích?

Giải pháp

  1. def average[values]:
        if len[values] == 0:
            return None
        return sum[values] / len[values]
    
    4
  2. Chúng tôi đã xem các ví dụ về cách sử dụng các đối số được đặt tên khi làm việc với thư viện gấu trúc. Ví dụ: khi đọc trong tập dữ liệu bằng cách sử dụng
    def average[values]:
        if len[values] == 0:
            return None
        return sum[values] / len[values]
    
    5, đối số cuối cùng
    def average[values]:
        if len[values] == 0:
            return None
        return sum[values] / len[values]
    
    6 là đối số được đặt tên
  3. Sử dụng các đối số được đặt tên có thể làm cho mã dễ đọc hơn vì người ta có thể nhìn thấy từ hàm gọi tên của các đối số khác nhau bên trong hàm. Nó cũng có thể làm giảm khả năng chuyển các đối số theo thứ tự sai, vì bằng cách sử dụng các đối số được đặt tên, thứ tự không thành vấn đề

Đóng gói khối If/Print

Đoạn mã dưới đây sẽ chạy trên máy in nhãn cho trứng gà. Cân kỹ thuật số sẽ báo khối lượng trứng gà [tính bằng gam] cho máy tính và sau đó máy tính sẽ in nhãn

def print_date[year, month, day]:
    joined = str[year] + '/' + str[month] + '/' + str[day]
    print[joined]

print_date[1871, 3, 19]
1

Khối if phân loại trứng có thể hữu ích trong các trường hợp khác, vì vậy để tránh lặp lại, chúng ta có thể gấp nó thành một hàm,

def average[values]:
    if len[values] == 0:
        return None
    return sum[values] / len[values]
7. Sửa đổi chương trình để sử dụng chức năng sẽ cung cấp cho chúng tôi điều này

def print_date[year, month, day]:
    joined = str[year] + '/' + str[month] + '/' + str[day]
    print[joined]

print_date[1871, 3, 19]
2

  1. Tạo định nghĩa hàm cho
    def average[values]:
        if len[values] == 0:
            return None
        return sum[values] / len[values]
    
    7 sẽ hoạt động với chương trình đã sửa đổi ở trên. Lưu ý rằng giá trị trả về của hàm
    def average[values]:
        if len[values] == 0:
            return None
        return sum[values] / len[values]
    
    7 sẽ rất quan trọng. Đầu ra mẫu từ chương trình trên sẽ là
    a = average[[1, 3, 4]]
    print['average of actual values:', a]
    
    0
  2. Một quả trứng bẩn có thể có khối lượng hơn 90 gam và một quả trứng hư hoặc hỏng có thể có khối lượng dưới 50 gam. Sửa đổi hàm
    def average[values]:
        if len[values] == 0:
            return None
        return sum[values] / len[values]
    
    7 của bạn để giải thích cho các điều kiện lỗi này. Đầu ra mẫu có thể là
    a = average[[1, 3, 4]]
    print['average of actual values:', a]
    
    2

Giải pháp

def print_date[year, month, day]:
    joined = str[year] + '/' + str[month] + '/' + str[day]
    print[joined]

print_date[1871, 3, 19]
3

Đóng gói phân tích dữ liệu

Giả sử rằng đoạn mã sau đã được thực thi

def print_date[year, month, day]:
    joined = str[year] + '/' + str[month] + '/' + str[day]
    print[joined]

print_date[1871, 3, 19]
4

  1. Hoàn thành các câu dưới đây để có được GDP trung bình của Nhật Bản trong những năm được báo cáo cho những năm 1980

    def print_date[year, month, day]:
        joined = str[year] + '/' + str[month] + '/' + str[day]
        print[joined]
    
    print_date[1871, 3, 19]
    
    5

  2. Tóm tắt đoạn mã trên thành một hàm duy nhất

    def print_date[year, month, day]:
        joined = str[year] + '/' + str[month] + '/' + str[day]
        print[joined]
    
    print_date[1871, 3, 19]
    
    6

  3. Bạn sẽ khái quát hóa chức năng này như thế nào nếu bạn không biết trước những năm cụ thể nào xảy ra dưới dạng các cột trong dữ liệu? . sử dụng các cột để lọc ra những cột tương ứng với thập kỷ, thay vì liệt kê chúng trong mã. ]

Giải pháp

  1. GDP trung bình của Nhật Bản trong những năm được báo cáo cho những năm 1980 được tính bằng

    def print_date[year, month, day]:
        joined = str[year] + '/' + str[month] + '/' + str[day]
        print[joined]
    
    print_date[1871, 3, 19]
    
    7

  2. Mã đó như một chức năng là

    def print_date[year, month, day]:
        joined = str[year] + '/' + str[month] + '/' + str[day]
        print[joined]
    
    print_date[1871, 3, 19]
    
    8

  3. Để có được mức trung bình cho các năm có liên quan, chúng ta cần lặp lại chúng

    def print_date[year, month, day]:
        joined = str[year] + '/' + str[month] + '/' + str[day]
        print[joined]
    
    print_date[1871, 3, 19]
    
    9

Chức năng bây giờ có thể được gọi bởi

1871/3/19
0

1871/3/19
1

Mô phỏng một hệ động lực

Trong toán học, một hệ động lực là một hệ trong đó một hàm mô tả sự phụ thuộc thời gian của một điểm trong không gian hình học. Một ví dụ điển hình của hệ thống động lực là bản đồ logistic, một mô hình tăng trưởng tính toán mật độ dân số mới [từ 0 đến 1] dựa trên mật độ hiện tại. Trong mô hình, thời gian nhận các giá trị rời rạc 0, 1, 2, …

  1. Định nghĩa một hàm gọi là

    a = average[[1, 3, 4]]
    print['average of actual values:', a]
    
    3 nhận hai đầu vào.
    a = average[[1, 3, 4]]
    print['average of actual values:', a]
    
    4, đại diện cho dân số hiện tại [tại thời điểm
    a = average[[1, 3, 4]]
    print['average of actual values:', a]
    
    5] và một tham số
    a = average[[1, 3, 4]]
    print['average of actual values:', a]
    
    6. Hàm này sẽ trả về một giá trị thể hiện trạng thái của hệ thống [dân số] tại thời điểm
    a = average[[1, 3, 4]]
    print['average of actual values:', a]
    
    7, sử dụng hàm ánh xạ

    a = average[[1, 3, 4]]
    print['average of actual values:', a]
    
    8

  2. Sử dụng vòng lặp

    a = average[[1, 3, 4]]
    print['average of actual values:', a]
    
    9 hoặc
    average of actual values: 2.6666666666666665
    
    0, lặp lại hàm
    a = average[[1, 3, 4]]
    print['average of actual values:', a]
    
    3 được xác định trong phần 1, bắt đầu từ tổng thể ban đầu là 0. 5, trong một khoảng thời gian
    average of actual values: 2.6666666666666665
    
    2. Lưu trữ các kết quả trung gian trong một danh sách để sau khi vòng lặp kết thúc, bạn đã tích lũy được một chuỗi các giá trị biểu thị trạng thái của bản đồ hậu cần tại các thời điểm
    average of actual values: 2.6666666666666665
    
    3 [tổng cộng 11 giá trị]. In danh sách này để xem sự tiến hóa của dân số

  3. Đóng gói logic vòng lặp của bạn thành một hàm có tên là

    average of actual values: 2.6666666666666665
    
    4 lấy dân số ban đầu làm đầu vào đầu tiên, tham số
    average of actual values: 2.6666666666666665
    
    5 làm đầu vào thứ hai và tham số
    average of actual values: 2.6666666666666665
    
    6 làm đầu vào thứ ba. Hàm sẽ trả về danh sách các giá trị biểu thị trạng thái của bản đồ hậu cần tại các thời điểm
    average of actual values: 2.6666666666666665
    
    3. Chạy hàm này trong khoảng thời gian
    average of actual values: 2.6666666666666665
    
    8 và
    average of actual values: 2.6666666666666665
    
    9 và in một số giá trị. Là dân số có xu hướng hướng tới một trạng thái ổn định?

Giải pháp

  1. 1871/3/19
    
    2

  2. 1871/3/19
    
    3

  3. 1871/3/19
    
    4

    1871/3/19
    
    5

    Dân số dường như đang tiến gần đến con số không

Sử dụng hàm với điều kiện trong Pandas

Các hàm thường sẽ chứa các điều kiện. Dưới đây là một ví dụ ngắn sẽ cho biết đối số thuộc nhóm phần tư nào dựa trên các giá trị được mã hóa thủ công cho các điểm cắt phần tư

1871/3/19
6

1871/3/19
7

Hàm đó thường được sử dụng trong vòng lặp

a = average[[1, 3, 4]]
print['average of actual values:', a]
9, nhưng Pandas có một cách khác, hiệu quả hơn để thực hiện điều tương tự và đó là bằng cách áp dụng một hàm cho khung dữ liệu hoặc một phần của khung dữ liệu. Đây là một ví dụ, sử dụng định nghĩa trên

1871/3/19
8

Có rất nhiều thứ trong dòng thứ hai đó, vì vậy hãy xem từng phần một. Ở phía bên phải của

print_greeting[]
01, chúng tôi bắt đầu với
print_greeting[]
02, là cột trong khung dữ liệu có tên là
print_greeting[]
03 có nhãn là
print_greeting[]
04. Chúng tôi sử dụng
print_greeting[]
05 để làm những gì nó nói, áp dụng
print_greeting[]
06 cho giá trị của cột này cho mỗi hàng trong khung dữ liệu

Chức năng đọc và ghi trong Python là gì?

Nối và Đọc ['a+']. Sử dụng phương pháp này, bạn có thể đọc và ghi trong tệp. Nếu tệp chưa tồn tại, một tệp sẽ được tạo. Tay cầm được đặt ở cuối tệp. Văn bản mới viết sẽ được thêm vào cuối, sau dữ liệu đã viết trước đó.

Hàm write[] trả về trong Python là gì?

f. write[string] ghi nội dung của chuỗi vào tệp, trả về số ký tự đã viết .

Hàm write[] trả về là gì?

💡 Mẹo. Phương thức write[] trả về số ký tự đã viết . Nếu bạn muốn viết nhiều dòng cùng một lúc, bạn có thể sử dụng phương thức writelines[], phương thức này nhận danh sách các chuỗi. Mỗi chuỗi đại diện cho một dòng sẽ được thêm vào tệp.

Ghi tệp trong Python là gì?

Ghi vào tệp hiện có . "a" - Nối - sẽ nối vào cuối tệp . "w" - Viết - sẽ ghi đè lên bất kỳ nội dung hiện có nào .

Chủ Đề