Python đầu vào mặc định
Trong hầu hết mọi chương trình Python, bạn đang xử lý các hàm nhận đầu vào, thực hiện một hành động và đưa ra kết quả đầu ra. Thường xuyên hơn không, có thể hữu ích khi bao gồm một giá trị đối số mặc định trong một hàm. Nếu một đối số đầu vào không được cung cấp, thì giá trị mặc định sẽ được sử dụng để thay thế. Và nếu giá trị đầu vào được cung cấp, giá trị đó sẽ được sử dụng trong hàm Show
Bạn có thể thêm các tham số hàm mặc định trong Python bằng cách đưa ra một giá trị mặc định cho một tham số trong định nghĩa hàm bằng toán tử gán (=) Ví dụ def greet(name="friend"): print("Hello,", name) Bây giờ giá trị mặc định cho tên là “bạn“ Nếu bạn gọi hàm này mà không có tham số greet() Bạn nhận được lời chào mặc định Hello friend Nhưng nếu bạn gọi nó với một đối số tên greet("Jon") Bạn nhận được một lời chào được cá nhân hóa bằng cách sử dụng tên Hello Jon Đây là hướng dẫn đầy đủ về các giá trị mặc định trong Python Bạn sẽ tìm hiểu đối số mặc định là gì và cách chỉ định nhiều đối số mặc định trong một hàm. Ngoài ra, bạn biết rằng bạn có thể sử dụng cả đối số thông thường và đối số mặc định trong cùng một hàm Nhiều tham số mặc định trong PythonBạn có thể triển khai các hàm Python với nhiều tham số mặc định. Điều này hoạt động tương tự như cách bạn có thể có các hàm với một số tham số thông thường
def function(param1=value1, param2=value2, param3=value3, ...): Chẳng hạn, hãy tạo một hàm hỏi tên và họ. Nếu những giá trị này không được cung cấp, các giá trị mặc định sẽ được sử dụng để thay thế def greet(firstname="Mr.", lastname="Who"): print("Hello,", firstname, lastname) Dưới đây là một số lệnh gọi ví dụ cho chức năng này greet() greet("Jack") greet(lastname="Jones") greet("Matt", "Gibson") đầu ra ________số 8Tiếp theo, chúng ta hãy xem cách thêm cả tham số mặc định và thông thường vào lệnh gọi hàm Kết hợp tham số mặc định và tham số thông thườngBạn có thể định nghĩa một hàm có cả tham số mặc định và tham số thông thường trong Python. Khi bạn gọi một hàm như thế này, trình thông dịch Python sẽ xác định biến nào dựa trên việc nó có nhãn đối số hay không Ví dụ def greet(greeting_word, firstname="Mr.", lastname="Who"): print(greeting_word, firstname, lastname) # Example calls: greet("Hi") greet("Hi", "Jack") greet("Hello", lastname="Jones") greet("Howdy", "Matt", "Gibson") đầu ra greet()0 Cuối cùng nhưng không kém phần quan trọng, hãy xem cách các tham số mặc định được biểu thị trong tài liệu Python Tham số mặc định trong Tài liệu PythonNếu bạn đọc tài liệu về Python, đôi khi bạn sẽ thấy các hàm có tham số mặc định trong cú pháp hàm Ví dụ: chúng ta hãy xem tài liệu về hàm liệt kê Trong hàm này, có start=0 trong các đối số Điều này có nghĩa là hàm liệt kê có đối số bắt đầu mặc định là 0 theo mặc định. Nói cách khác, bạn có thể gọi hàm enumerate() bằng cách chỉ định
Phần kết luậnHôm nay bạn đã học về tham số mặc định của hàm Python Bạn có thể cung cấp các giá trị mặc định cho tham số chức năng trong Python. Điều này có thể đơn giản hóa các cuộc gọi chức năng và mã của bạn Dưới đây là một ví dụ về hàm có giá trị tham số mặc định def greet(name="friend"): print("Hello,", name) Khi bạn gọi hàm này mà không có tham số, nó sẽ mặc định nói “Xin chào, bạn”. Khi bạn gọi nó bằng đối số tên, nó sẽ chào người có tên đó Có một số cách để trình bày đầu ra của một chương trình; . Chương này sẽ thảo luận về một số khả năng 7. 1. Định dạng đầu ra đẹp hơn¶Cho đến nay, chúng tôi đã gặp hai cách viết giá trị. câu lệnh biểu thức và hàm greet()29. (Cách thứ ba là sử dụng phương thức greet()30 của các đối tượng tệp; tệp đầu ra tiêu chuẩn có thể được tham chiếu là greet()31. Xem Tham khảo thư viện để biết thêm thông tin về điều này. ) Thông thường, bạn sẽ muốn kiểm soát nhiều hơn định dạng đầu ra của mình hơn là chỉ in các giá trị được phân tách bằng dấu cách. Có một số cách để định dạng đầu ra
Khi bạn không cần đầu ra ưa thích mà chỉ muốn hiển thị nhanh một số biến cho mục đích gỡ lỗi, bạn có thể chuyển đổi bất kỳ giá trị nào thành chuỗi bằng các hàm greet()39 hoặc Hello friend50 Hàm Hello friend50 có nghĩa là trả về các biểu diễn của các giá trị mà con người khá dễ đọc, trong khi greet()39 có nghĩa là tạo ra các biểu diễn mà trình thông dịch có thể đọc được (hoặc sẽ buộc Hello friend53 nếu không có cú pháp tương đương). Đối với các đối tượng không có đại diện cụ thể cho tiêu dùng của con người, Hello friend50 sẽ trả về giá trị giống như greet()39. Nhiều giá trị, chẳng hạn như số hoặc cấu trúc như danh sách và từ điển, có cùng cách biểu diễn khi sử dụng một trong hai hàm. Đặc biệt, các chuỗi có hai biểu diễn riêng biệt Vài ví dụ greet()2 Mô-đun Hello friend56 chứa một lớp Hello friend57 cung cấp một cách khác để thay thế các giá trị thành chuỗi, sử dụng các trình giữ chỗ như Hello friend58 và thay thế chúng bằng các giá trị từ một từ điển, nhưng cung cấp ít quyền kiểm soát định dạng hơn nhiều 7. 1. 1. Chuỗi ký tự được định dạng¶Chuỗi ký tự được định dạng (còn được gọi tắt là f-strings) cho phép bạn bao gồm giá trị của các biểu thức Python bên trong một chuỗi bằng cách thêm tiền tố vào chuỗi là greet()32 hoặc greet()33 và viết biểu thức dưới dạng greet("Jon")71. Một công cụ xác định định dạng tùy chọn có thể theo sau biểu thức. Điều này cho phép kiểm soát tốt hơn cách định dạng giá trị. Ví dụ sau đây làm tròn số pi đến ba vị trí sau dấu thập phân greet()3 Truyền một số nguyên sau greet("Jon")72 sẽ khiến trường đó có số lượng ký tự tối thiểu. Điều này rất hữu ích để tạo các cột thẳng hàng Hello friend5 Các công cụ sửa đổi khác có thể được sử dụng để chuyển đổi giá trị trước khi nó được định dạng. greet("Jon")73 áp dụng greet("Jon")74, greet("Jon")75 áp dụng Hello friend50 và greet("Jon")77 áp dụng greet()39 greet("Jon")7 Trình xác định greet("Jon")79 có thể được sử dụng để mở rộng một biểu thức thành văn bản của biểu thức, một dấu bằng, sau đó biểu diễn biểu thức được đánh giá Hello Jon9 Xem biểu thức tự ghi tài liệu để biết thêm thông tin về trình xác định greet("Jon")79. Để tham khảo về các đặc tả định dạng này, hãy xem hướng dẫn tham khảo về Ngôn ngữ nhỏ đặc tả định dạng . 7. 1. 2. Phương thức String format()¶Cách sử dụng cơ bản của phương pháp greet()36 trông như thế này def function(param1=value1, param2=value2, param3=value3, ...):2 Các dấu ngoặc và ký tự bên trong chúng (được gọi là các trường định dạng) được thay thế bằng các đối tượng được truyền vào phương thức greet()36. Một số trong ngoặc có thể được sử dụng để chỉ vị trí của đối tượng được truyền vào phương thức greet()36 def function(param1=value1, param2=value2, param3=value3, ...):5 Nếu đối số từ khóa được sử dụng trong phương thức greet()36, giá trị của chúng được gọi bằng cách sử dụng tên của đối số def function(param1=value1, param2=value2, param3=value3, ...):7 Đối số vị trí và từ khóa có thể được kết hợp tùy ý Hello friend30 Nếu bạn có một chuỗi định dạng thực sự dài mà bạn không muốn chia nhỏ, sẽ rất tuyệt nếu bạn có thể tham chiếu các biến được định dạng theo tên thay vì theo vị trí. Điều này có thể được thực hiện bằng cách chuyển chính tả và sử dụng dấu ngoặc vuông Hello Jon95 để truy cập các phím Hello friend31 Điều này cũng có thể được thực hiện bằng cách chuyển từ điển Hello Jon96 làm đối số từ khóa với ký hiệu Hello Jon97 Hello friend32 Điều này đặc biệt hữu ích khi kết hợp với hàm tích hợp sẵn Hello Jon98, trả về một từ điển chứa tất cả các biến cục bộ Ví dụ: các dòng sau tạo ra một tập hợp các cột được sắp xếp gọn gàng cho các số nguyên và hình vuông và hình khối của chúng Hello friend33 Để biết tổng quan đầy đủ về định dạng chuỗi với greet()36, hãy xem Cú pháp chuỗi định dạng . 7. 1. 3. Định dạng chuỗi thủ công¶Đây là cùng một bảng hình vuông và hình khối, được định dạng thủ công Hello friend34 (Lưu ý rằng một khoảng cách giữa mỗi cột đã được thêm vào theo cách hoạt động của greet()29. nó luôn thêm khoảng trắng giữa các đối số của nó. ) Phương thức def function(param1=value1, param2=value2, param3=value3, ...):21 của các đối tượng chuỗi canh phải một chuỗi trong một trường có chiều rộng nhất định bằng cách thêm vào đó các khoảng trắng ở bên trái. Có các phương pháp tương tự def function(param1=value1, param2=value2, param3=value3, ...):22 và def function(param1=value1, param2=value2, param3=value3, ...):23. Các phương thức này không viết bất cứ thứ gì, chúng chỉ trả về một chuỗi mới. Nếu chuỗi đầu vào quá dài, họ sẽ không cắt bớt mà trả về không thay đổi; . (Nếu bạn thực sự muốn cắt ngắn, bạn luôn có thể thêm thao tác cắt lát, như trong def function(param1=value1, param2=value2, param3=value3, ...):24. ) Có một phương pháp khác, def function(param1=value1, param2=value2, param3=value3, ...):25, đệm một chuỗi số ở bên trái bằng các số không. Nó hiểu về dấu cộng và dấu trừ Hello friend35 7. 1. 4. Định dạng chuỗi cũ¶Toán tử % (modulo) cũng có thể được sử dụng để định dạng chuỗi. Cho trước def function(param1=value1, param2=value2, param3=value3, ...):26, các trường hợp của def function(param1=value1, param2=value2, param3=value3, ...):27 trong Hello friend56 được thay thế bằng 0 hoặc nhiều phần tử của def function(param1=value1, param2=value2, param3=value3, ...):29. Hoạt động này thường được gọi là nội suy chuỗi. Ví dụ Hello friend36 Bạn có thể tìm thêm thông tin trong phần Định dạng chuỗi kiểu printf . 7. 2. Đọc và ghi tệp¶def function(param1=value1, param2=value2, param3=value3, ...):50 trả về một đối tượng tệp và được sử dụng phổ biến nhất với hai đối số vị trí và một đối số từ khóa. def function(param1=value1, param2=value2, param3=value3, ...):51 Hello friend37 Đối số đầu tiên là một chuỗi chứa tên tệp. Đối số thứ hai là một chuỗi khác chứa một vài ký tự mô tả cách sử dụng tệp. chế độ có thể là def function(param1=value1, param2=value2, param3=value3, ...):52 khi tệp sẽ chỉ được đọc, def function(param1=value1, param2=value2, param3=value3, ...):53 chỉ để ghi (tệp hiện có cùng tên sẽ bị xóa) và def function(param1=value1, param2=value2, param3=value3, ...):54 mở tệp để nối thêm; . def function(param1=value1, param2=value2, param3=value3, ...):55 mở tệp cho cả đọc và ghi. Đối số chế độ là tùy chọn; Thông thường, các tệp được mở ở chế độ văn bản, nghĩa là bạn đọc và ghi các chuỗi từ và đến tệp, được mã hóa bằng một mã hóa cụ thể. Nếu mã hóa không được chỉ định, mặc định sẽ phụ thuộc vào nền tảng (xem def function(param1=value1, param2=value2, param3=value3, ...):50). Bởi vì UTF-8 là tiêu chuẩn thực tế hiện đại, nên sử dụng def function(param1=value1, param2=value2, param3=value3, ...):58 trừ khi bạn biết rằng mình cần sử dụng một mã hóa khác. Nối một def function(param1=value1, param2=value2, param3=value3, ...):59 vào chế độ sẽ mở tệp ở chế độ nhị phân. Dữ liệu chế độ nhị phân được đọc và ghi dưới dạng đối tượng def function(param1=value1, param2=value2, param3=value3, ...):70. Bạn không thể chỉ định mã hóa khi mở tệp ở chế độ nhị phân Ở chế độ văn bản, mặc định khi đọc là chuyển đổi kết thúc dòng dành riêng cho nền tảng ( def function(param1=value1, param2=value2, param3=value3, ...):71 trên Unix, def function(param1=value1, param2=value2, param3=value3, ...):72 trên Windows) thành chỉ def function(param1=value1, param2=value2, param3=value3, ...):71. Khi viết ở chế độ văn bản, mặc định là chuyển đổi các lần xuất hiện của def function(param1=value1, param2=value2, param3=value3, ...):71 trở lại kết thúc dòng dành riêng cho nền tảng. Việc sửa đổi hậu trường này đối với dữ liệu tệp phù hợp với tệp văn bản, nhưng sẽ làm hỏng dữ liệu nhị phân như vậy trong tệp def function(param1=value1, param2=value2, param3=value3, ...):75 hoặc def function(param1=value1, param2=value2, param3=value3, ...):76. Hãy thật cẩn thận khi sử dụng chế độ nhị phân khi đọc và ghi các tệp đó Nên sử dụng từ khóa def function(param1=value1, param2=value2, param3=value3, ...):77 khi xử lý các đối tượng tệp. Ưu điểm là tệp được đóng đúng cách sau khi bộ phần mềm của nó kết thúc, ngay cả khi một ngoại lệ được đưa ra tại một số điểm. Sử dụng def function(param1=value1, param2=value2, param3=value3, ...):77 cũng ngắn hơn nhiều so với viết các khối tương đương def function(param1=value1, param2=value2, param3=value3, ...):79- Hello friend300 Hello friend38 Nếu bạn không sử dụng từ khóa def function(param1=value1, param2=value2, param3=value3, ...):77, thì bạn nên gọi Hello friend302 để đóng tệp và ngay lập tức giải phóng mọi tài nguyên hệ thống được sử dụng bởi nó Cảnh báo Gọi Hello friend303 mà không sử dụng từ khóa def function(param1=value1, param2=value2, param3=value3, ...):77 hoặc gọi Hello friend302 có thể dẫn đến các đối số của Hello friend303 không được ghi hoàn toàn vào đĩa, ngay cả khi chương trình thoát thành công Sau khi một đối tượng tệp bị đóng, bằng câu lệnh def function(param1=value1, param2=value2, param3=value3, ...):77 hoặc bằng cách gọi Hello friend302, các nỗ lực sử dụng đối tượng tệp sẽ tự động thất bại Hello friend39 7. 2. 1. Phương thức của đối tượng tệp¶Phần còn lại của các ví dụ trong phần này sẽ giả định rằng một đối tượng tệp có tên là greet()32 đã được tạo Để đọc nội dung của tệp, hãy gọi Hello friend310, đọc một số lượng dữ liệu và trả về dưới dạng chuỗi (ở chế độ văn bản) hoặc đối tượng byte (ở chế độ nhị phân). kích thước là một đối số số tùy chọn. Khi kích thước bị bỏ qua hoặc âm, toàn bộ nội dung của tệp sẽ được đọc và trả về; . Mặt khác, ở hầu hết các ký tự kích thước (ở chế độ văn bản) hoặc byte kích thước (ở chế độ nhị phân) đều được đọc và trả về. Nếu đã đến cuối tệp, Hello friend311 sẽ trả về một chuỗi rỗng ( Hello friend312) greet()20 Hello friend313 đọc một dòng từ tệp; . Điều này làm cho giá trị trả về trở nên rõ ràng; greet()21 Để đọc các dòng từ một tệp, bạn có thể lặp qua đối tượng tệp. Đây là bộ nhớ hiệu quả, nhanh chóng và dẫn đến mã đơn giản greet()22 Nếu bạn muốn đọc tất cả các dòng của tệp trong danh sách, bạn cũng có thể sử dụng Hello friend317 hoặc Hello friend318 Hello friend319 ghi nội dung của chuỗi vào tệp, trả về số ký tự đã ghi greet()23 Các loại đối tượng khác cần được chuyển đổi – thành chuỗi (ở chế độ văn bản) hoặc đối tượng byte (ở chế độ nhị phân) – trước khi viết chúng greet()24 Hello friend320 trả về một số nguyên cho biết vị trí hiện tại của đối tượng tệp trong tệp được biểu thị dưới dạng số byte từ đầu tệp khi ở chế độ nhị phân và một số mờ khi ở chế độ văn bản Để thay đổi vị trí của đối tượng tệp, hãy sử dụng Hello friend321. Vị trí được tính từ việc thêm phần bù vào điểm tham chiếu; . Giá trị bắt nguồn từ 0 đo từ đầu tệp, 1 sử dụng vị trí tệp hiện tại và 2 sử dụng cuối tệp làm điểm tham chiếu. từ đâu có thể được bỏ qua và mặc định là 0, sử dụng phần đầu của tệp làm điểm tham chiếu greet()25 Trong các tệp văn bản (những tệp được mở mà không có Hello friend322 trong chuỗi chế độ), chỉ cho phép tìm kiếm liên quan đến phần đầu của tệp (ngoại lệ là tìm kiếm đến chính tệp kết thúc bằng Hello friend323) và các giá trị bù trừ hợp lệ duy nhất là các giá trị được trả về từ . Bất kỳ giá trị bù nào khác đều tạo ra hành vi không xác định Các đối tượng tệp có một số phương thức bổ sung, chẳng hạn như Hello friend325 và Hello friend326 ít được sử dụng hơn; 7. 2. 2. Lưu dữ liệu có cấu trúc với Hello friend327¶Các chuỗi có thể dễ dàng được ghi và đọc từ một tệp. Các số tốn nhiều công sức hơn một chút, vì phương thức Hello friend328 chỉ trả về các chuỗi, chuỗi này sẽ phải được chuyển đến một hàm như Hello friend329, hàm này nhận một chuỗi như Hello friend330 và trả về giá trị số 123 của nó. Khi bạn muốn lưu các loại dữ liệu phức tạp hơn như danh sách lồng nhau và từ điển, việc phân tích cú pháp và tuần tự hóa bằng tay trở nên phức tạp Thay vì yêu cầu người dùng liên tục viết và gỡ lỗi mã để lưu các loại dữ liệu phức tạp vào tệp, Python cho phép bạn sử dụng định dạng trao đổi dữ liệu phổ biến được gọi là JSON (Ký hiệu đối tượng JavaScript). Mô-đun tiêu chuẩn có tên là Hello friend327 có thể lấy cấu trúc phân cấp dữ liệu Python và chuyển đổi chúng thành biểu diễn chuỗi; . Tái tạo lại dữ liệu từ biểu diễn chuỗi được gọi là giải tuần tự hóa. Giữa tuần tự hóa và giải tuần tự hóa, chuỗi đại diện cho đối tượng có thể đã được lưu trữ trong một tệp hoặc dữ liệu hoặc được gửi qua kết nối mạng tới một số máy ở xa Ghi chú Định dạng JSON thường được các ứng dụng hiện đại sử dụng để cho phép trao đổi dữ liệu. Nhiều lập trình viên đã quen thuộc với nó, điều này làm cho nó trở thành một lựa chọn tốt cho khả năng tương tác Nếu bạn có một đối tượng Hello friend332, bạn có thể xem biểu diễn chuỗi JSON của nó bằng một dòng mã đơn giản greet()26 Một biến thể khác của hàm Hello friend333, được gọi là Hello friend334, chỉ cần tuần tự hóa đối tượng thành tệp văn bản . Vì vậy, nếu greet()32 là một đối tượng tệp văn bản được mở để ghi, chúng ta có thể thực hiện việc này. greet()27 Để giải mã lại đối tượng, nếu greet()32 là tệp nhị phân hoặc tệp văn bản object which has been opened for reading: greet()28 Ghi chú Các tệp JSON phải được mã hóa bằng UTF-8. Sử dụng def function(param1=value1, param2=value2, param3=value3, ...):58 khi mở tệp JSON dưới dạng tệp văn bản cho cả đọc và viết. Kỹ thuật tuần tự hóa đơn giản này có thể xử lý các danh sách và từ điển, nhưng việc tuần tự hóa các cá thể lớp tùy ý trong JSON đòi hỏi một chút nỗ lực. Tài liệu tham khảo cho mô-đun Hello friend327 có giải thích về điều này Kiểu đầu vào mặc định trong Python là gì?Theo mặc định, đầu vào trả về một chuỗi . Vì vậy, tên và tuổi sẽ được lưu trữ dưới dạng chuỗi.
Giá trị đầu vào được chấp nhận mặc định trong Python là gì?Nếu không nhập gì thì input / raw_input trả về chuỗi rỗng. Chuỗi rỗng trong Python là Sai, bool("") -> Sai. Toán tử or trả về giá trị trung thực đầu tiên, trong trường hợp này là "42" .
Tham số mặc định trong Python là gì?Trong Python, tham số mặc định được được xác định với giá trị dự phòng làm đối số mặc định . Các tham số như vậy là tùy chọn trong khi gọi hàm. Nếu không có đối số nào được cung cấp, thì giá trị mặc định sẽ được sử dụng và nếu có đối số được cung cấp, nó sẽ ghi đè lên giá trị mặc định.
Đầu vào () trong Python là gì?Hàm input() trong Python được sử dụng để lấy đầu vào từ người dùng. Nó nhắc người dùng nhập và đọc một dòng. Sau khi đọc dữ liệu, nó chuyển đổi nó thành một chuỗi và trả về chuỗi đó. Nó báo lỗi EOFError nếu EOF được đọc |