Tùy chọn trong Python là gì?

Trong xử lý các hàm cho đến nay, mỗi định nghĩa hàm chỉ định 0 hoặc nhiều tham số hình thức hơn và mỗi lời gọi hàm cung cấp chính xác nhiều giá trị đó. Đôi khi sẽ thuận tiện khi có các tham số tùy chọn có thể được chỉ định hoặc bỏ qua. Khi một tham số tùy chọn bị bỏ qua trong lời gọi hàm, tham số chính thức được gắn với một giá trị mặc định. Khi bao gồm tham số tùy chọn, thì tham số chính thức được liên kết với giá trị được cung cấp. Các tham số tùy chọn thuận tiện khi một hàm hầu như luôn được sử dụng theo cách đơn giản, nhưng thật tuyệt khi cho phép nó được sử dụng theo cách phức tạp hơn, với các giá trị không mặc định được chỉ định cho các tham số tùy chọn

Ví dụ, hãy xem xét hàm int mà bạn đã sử dụng trước đó. Tham số đầu tiên của nó, được yêu cầu, chỉ định đối tượng mà bạn muốn chuyển đổi thành số nguyên. Ví dụ: nếu bạn gọi một chuỗi, int["100"], giá trị trả về sẽ là số nguyên 100

Đó là cách phổ biến nhất mà các lập trình viên muốn chuyển chuỗi thành số nguyên. Tuy nhiên, đôi khi, họ đang làm việc với các số ở một số “cơ số” khác thay vì cơ số 10. Ví dụ: trong cơ số 8, chữ số ngoài cùng bên phải là hàng đơn vị, chữ số tiếp theo bên trái là 8s và chữ số bên trái của chữ số đó là hàng 64s [8**2]

Hàm int cung cấp một tham số tùy chọn cho cơ sở. Khi nó không được chỉ định, số được chuyển đổi thành số nguyên giả sử số ban đầu ở cơ số 10. Chúng tôi nói rằng 10 là giá trị mặc định. Vì vậy, int["100"] cũng giống như gọi int["100", 10]. Chúng tôi có thể ghi đè giá trị mặc định là 10 bằng cách cung cấp một giá trị khác

Ghi chú

Toán học mới của Tom Lehrer

Một số nhà giáo dục toán học tin rằng học sinh tiểu học sẽ hiểu sâu hơn nhiều về hệ thống giá trị theo vị trí và tạo nền tảng cho việc học đại số sau này, nếu chúng học cách làm số học không chỉ ở cơ số 10 mà còn ở cơ số 8 và các phép toán khác. . Đây là một phần của phong trào gọi là “Toán học mới”, mặc dù bây giờ nó không còn quá mới [tôi đã có nó khi còn học tiểu học. ] Tom Lehrer đã tạo một bài hát thực sự hài hước về nó và hiện tại bài hát đó đã được thiết lập bằng hình ảnh trong một số phiên bản YouTube. Hãy thử phiên bản hát nhép cực hay này

Khi xác định hàm, bạn có thể chỉ định giá trị mặc định cho tham số. Tham số đó sau đó trở thành tham số tùy chọn khi hàm được gọi. Cách chỉ định một giá trị mặc định bằng một câu lệnh gán bên trong danh sách tham số. Hãy xem xét đoạn mã sau, ví dụ

Hoạt động. MãLens 15. 1. 2 [clens15_1_1]

Lưu ý các liên kết khác nhau của x, y và z trên ba cách gọi của f. Lần đầu tiên, y và z có giá trị mặc định là 3 và 7. Lần thứ hai, y nhận giá trị 5 được truyền vào, nhưng z vẫn nhận giá trị mặc định là 7. Lần cuối cùng, z nhận giá trị 8 được truyền vào

Nếu muốn cung cấp giá trị không mặc định cho tham số thứ ba [z], bạn cũng cần cung cấp giá trị cho mục thứ hai [y]. Chúng ta sẽ thấy trong phần tiếp theo một cơ chế được gọi là tham số từ khóa cho phép bạn chỉ định giá trị cho z mà không cần chỉ định giá trị cho y

Ghi chú

Đây là cách sử dụng = thứ hai, có liên quan nhưng hơi khác so với những gì chúng ta đã thấy trước đây. Trong một câu lệnh gán độc lập, không phải là một phần của định nghĩa hàm, x=3 gán 3 cho biến x. Là một phần của việc chỉ định tham số trong định nghĩa hàm, x=3 nói rằng 3 là giá trị mặc định cho x, chỉ được sử dụng khi không có giá trị nào được cung cấp trong khi gọi hàm

Có hai điều phức tạp có thể khiến bạn nhầm lẫn với các giá trị mặc định. Đầu tiên là giá trị mặc định được xác định tại thời điểm hàm được xác định, không phải tại thời điểm nó được gọi. Vì vậy, trong ví dụ trên, nếu chúng ta muốn gọi hàm f với giá trị 10 cho z, chúng ta không thể chỉ đặt giá trị ban đầu = 10 ngay trước khi gọi f. Xem điều gì xảy ra trong đoạn mã bên dưới, trong đó z vẫn nhận giá trị 7 khi f được gọi mà không chỉ định giá trị cho z

Hoạt động. MãLens 15. 1. 3 [clens15_1_2]

Điều khó khăn thứ hai là nếu giá trị mặc định được đặt thành một đối tượng có thể thay đổi, chẳng hạn như danh sách hoặc từ điển, thì đối tượng đó sẽ được chia sẻ trong tất cả các lần gọi hàm. Điều này có thể rất khó hiểu, vì vậy tôi khuyên bạn không bao giờ đặt giá trị mặc định là đối tượng có thể thay đổi. Ví dụ: theo dõi việc thực hiện cái này một cách cẩn thận

Hoạt động. MãLens 15. 1. 4 [opt_params_4]

Khi giá trị mặc định được sử dụng, cùng một danh sách được chia sẻ. Nhưng ở dòng 8 và 9, hai bản sao khác nhau của danh sách [“Xin chào”] được cung cấp, vì vậy bản 4 được thêm vào không có trong danh sách được in ở dòng 9

Kiểm tra việc hiểu của bạn

    Đoạn mã sau sẽ in ra cái gì?

    def f[x = 0, y = 1]:
        return x * y
    
    print[f[]]
    

  • 0
  • Vì không có tham số nào được chỉ định, x là 0 và y là 1, vì vậy 0 được trả về
  • 1
  • 0 * 1 là 0
  • Không có
  • Hàm không trả về một giá trị
  • Lỗi thời gian chạy do không có tham số nào được chuyển trong lệnh gọi f
  • Bởi vì cả hai tham số đều có giá trị mặc định được chỉ định trong định nghĩa, nên cả hai đều là tùy chọn

    Đoạn mã sau sẽ in ra cái gì?

    def f[x = 0, y = 1]:
        return x * y
    
    print[f[1]]
    

  • 0
  • Vì một giá trị tham số được chỉ định, nên nó được liên kết với x;
  • 1
  • Vì một giá trị tham số được chỉ định, nên nó được liên kết với x;
  • Không có
  • Hàm không trả về một giá trị
  • Lỗi thời gian chạy do thiếu giá trị tham số thứ hai
  • Bởi vì cả hai tham số đều có giá trị mặc định được chỉ định trong định nghĩa, nên cả hai đều là tùy chọn

3. Viết một hàm có tên là str_mult nhận tham số chuỗi bắt buộc và tham số số nguyên tùy chọn. Giá trị mặc định cho tham số số nguyên phải là 3. Hàm sẽ trả về chuỗi nhân với tham số nguyên

Tùy chọn trong một chức năng là gì?

Theo định nghĩa, Tham số tùy chọn là một tính năng hữu ích cho phép lập trình viên truyền số lượng tham số ít hơn cho hàm và gán giá trị mặc định .

Python có tùy chọn không?

Nói 'không' với Không. Thường có những tình huống trong mã mà giá trị bắt buộc không tồn tại. Một cách điển hình để giải quyết vấn đề này là trả về Không nhưng tùy chọn cung cấp một cách rõ ràng hơn và tùy chọn. mô-đun py cung cấp cách triển khai tùy chọn dễ sử dụng .

Từ khóa và đối số tùy chọn cho hàm trong Python là gì?

Đối số mặc định là đối số từ khóa có giá trị được gán tại thời điểm định nghĩa hàm. Các đối số tùy chọn là các đối số mặc định, dựa trên các giá trị được gán cho chúng [e. g. , Không hoặc 0], có thể bỏ qua

Chủ Đề