Tôi đã giải quyết các vấn đề trên HackerRank để có cơ hội giải quyết các vấn đề về Python và trong khi tôi rất vui khi giải quyết được một số vấn đề, thì có một vấn đề đang khiến tôi bối rối
Tôi đã thực hiện một số thứ mà bạn có thể tìm thấy bên dưới hoạt động với điều này và hầu hết các ví dụ đều trả về kết quả mong muốn, nhưng tôi vừa phát hiện ra rằng nó không hoạt động cho arr = (5, 5, 5, 5, 5 . Tôi nghi ngờ rằng điều này là do khi giá trị tối đa giống hệt với giá trị khác trong danh sách (e. g. arr = 1, 2, 3, 4, 4) hoặc tương tự với giá trị nhỏ nhất (e. g. arr = 1, 1, 3, 4, 5), mã của tôi đơn giản là không thành công vì nó không phụ thuộc vào giá trị lớn nhất hoặc nhỏ nhất của mảng. Thông báo lỗi HackerRank là "Trả lời sai" nếu điều đó có ích
Vui lòng phê bình và đề xuất các cải tiến để nó hoạt động với bất kỳ mảng 5 số nguyên nào (e. g. (5, 5, 5, 5, 5)). Tôi rất muốn hiểu cách thức hoạt động của nó và sự giúp đỡ của bạn sẽ được đánh giá cao. Cảm ơn trước
4 tích hợp sẵn của Python rất hữu ích khi bạn cần tìm các giá trị nhỏ nhất và lớn nhất trong một hoặc trong một chuỗi các đối số thông thường. Mặc dù đây có vẻ như là những phép tính khá cơ bản, nhưng hóa ra chúng lại có nhiều trường hợp sử dụng thú vị trong lập trình thực tế. Bạn sẽ thử một số trường hợp sử dụng đó tại đây
4 của riêng mình bằng Python thuần túy, điều này có thể giúp bạn hiểu cách các chức năng này hoạt động bên trong
Tiền thưởng miễn phí. 5 Suy nghĩ về Làm chủ Python, một khóa học miễn phí dành cho các nhà phát triển Python cho bạn thấy lộ trình và tư duy mà bạn sẽ cần để đưa các kỹ năng Python của mình lên một tầm cao mới
Để tận dụng tối đa hướng dẫn này, bạn nên có một số kiến thức trước đó về lập trình Python, bao gồm các chủ đề như vòng lặp
Bắt đầu với các hàm min(arg_1, arg_2[, ..., arg_n], *[, key]) -> minimum_value
max(arg_1, arg_2[, ..., arg_n], *[, key]) -> maximum_value
3 và min(arg_1, arg_2[, ..., arg_n], *[, key]) -> minimum_value
max(arg_1, arg_2[, ..., arg_n], *[, key]) -> maximum_value
4 của Python
Python bao gồm một số chức năng tích hợp giúp cuộc sống của bạn dễ chịu và hiệu quả hơn vì chúng có nghĩa là bạn không cần phải phát minh lại bánh xe. Hai ví dụ về các chức năng này là
4 của Python, bạn có thể sử dụng hàm này để đạt được hai hành vi hơi khác nhau. Hành vi tiêu chuẩn cho mỗi loại là trả về giá trị tối thiểu hoặc tối đa thông qua so sánh đơn giản dữ liệu đầu vào khi giá trị đó đứng. Hành vi thay thế là sử dụng hàm một đối số để sửa đổi tiêu chí so sánh trước khi tìm giá trị nhỏ nhất và lớn nhất
4, bạn có thể bắt đầu bằng cách gọi từng hàm bằng một đối số có thể lặp lại duy nhất hoặc bằng hai hoặc nhiều đối số thông thường. Đó là những gì bạn sẽ làm ngay lập tứcLoại bỏ các quảng cáo
Gọi min(arg_1, arg_2[, ..., arg_n], *[, key]) -> minimum_value
max(arg_1, arg_2[, ..., arg_n], *[, key]) -> maximum_value
3 và min(arg_1, arg_2[, ..., arg_n], *[, key]) -> minimum_value
max(arg_1, arg_2[, ..., arg_n], *[, key]) -> maximum_value
4 với một đối số có thể lặp lại duy nhất
4 có hai chữ ký khác nhau cho phép bạn gọi chúng bằng một đối số có thể lặp lại làm đối số đầu tiên hoặc bằng hai hoặc nhiều đối số thông thường. Chữ ký chấp nhận một đối số có thể lặp lại trông giống như thế này
4 và trả về các giá trị tối thiểu và tối đa tương ứng. Họ cũng có hai đối số tùy chọn.
>>> min(3,5,9,1,-5)-5>>> max(3,5,9,1,-5)9
4 và
>>> min(3,5,9,1,-5)-5>>> max(3,5,9,1,-5)9
3
Ghi chú. Trong các chữ ký ở trên, dấu hoa thị (_______32_______7) có nghĩa là các đối số sau đây là các đối số chỉ chứa từ khóa, trong khi dấu ngoặc vuông (
4. Bạn nhận được kết quả như mong đợi trong cả hai trường hợp vì các loại dữ liệu này có thể so sánh được
Tuy nhiên, điều gì sẽ xảy ra nếu bạn trộn lẫn chuỗi và số?
>>>
>>> min([3,"5.0",9,1.0,"-5"])Traceback (most recent call last):...TypeError: '<' not supported between instances of 'str' and 'int'>>> max([3,"5.0",9,1.0,"-5"])Traceback (most recent call last):...TypeError: '>' not supported between instances of 'str' and 'int'
4 với một loại có thể lặp lại không thể so sánh làm đối số. Trong ví dụ này, một hàm cố gắng so sánh một số với một chuỗi, giống như so sánh táo và cam. Kết quả cuối cùng là bạn nhận được một
>>> min([3,5,9,1,-5])-5>>> min([])Traceback (most recent call last):...ValueError: min() arg is an empty sequence>>> max([3,5,9,1,-5])9>>> max([])Traceback (most recent call last):...ValueError: max() arg is an empty sequence
06
Gọi min(arg_1, arg_2[, ..., arg_n], *[, key]) -> minimum_value
max(arg_1, arg_2[, ..., arg_n], *[, key]) -> maximum_value
3 và min(arg_1, arg_2[, ..., arg_n], *[, key]) -> minimum_value
max(arg_1, arg_2[, ..., arg_n], *[, key]) -> maximum_value
4 với nhiều đối số
4 với hai đối số thông thường trở lên. Một lần nữa, bạn sẽ nhận được giá trị tối thiểu hoặc tối đa tương ứng trong dữ liệu đầu vào. Điều kiện duy nhất là các đối số phải được so sánhLoại bỏ các quảng cáo
Sử dụng min(arg_1, arg_2[, ..., arg_n], *[, key]) -> minimum_value
max(arg_1, arg_2[, ..., arg_n], *[, key]) -> maximum_value
3 và min(arg_1, arg_2[, ..., arg_n], *[, key]) -> minimum_value
max(arg_1, arg_2[, ..., arg_n], *[, key]) -> maximum_value
4 Với Strings và Iterables of Strings
4 có thể xử lý các giá trị có thể so sánh được. Mặt khác, bạn nhận được một
>>> min([3,5,9,1,-5])-5>>> min([])Traceback (most recent call last):...ValueError: min() arg is an empty sequence>>> max([3,5,9,1,-5])9>>> max([])Traceback (most recent call last):...ValueError: max() arg is an empty sequence
06, như bạn đã học. Cho đến thời điểm này, bạn đã thấy các ví dụ sử dụng các giá trị số trong một đối số có thể lặp lại hoặc dưới dạng nhiều đối số thông thường
4 với các giá trị số được cho là trường hợp sử dụng hữu ích và phổ biến nhất của các hàm này. Tuy nhiên, bạn cũng có thể sử dụng các hàm với chuỗi và các lần lặp của chuỗi. Trong những trường hợp này, thứ tự chữ cái của các ký tự sẽ quyết định kết quả cuối cùng
4 để tìm các chữ cái nhỏ nhất và lớn nhất trong một số văn bản. Trong ngữ cảnh này, nhỏ nhất có nghĩa là gần đầu bảng chữ cái nhất và lớn nhất có nghĩa là gần cuối bảng chữ cái nhất
4 với một chuỗi làm đối số không chỉ giới hạn ở các chữ cái. Bạn có thể sử dụng các chuỗi chứa bất kỳ ký tự nào có thể có trong bộ ký tự hiện tại của mình. Ví dụ: nếu bạn chỉ làm việc với tập hợp các ký tự ASCII, thì ký tự nhỏ nhất là ký tự gần đầu của ký tự nhất. Ngược lại, ký tự lớn nhất là ký tự gần cuối bảng nhất
4 sử dụng giá trị số của ký tự để tìm các ký tự tối thiểu và tối đa trong chuỗi đầu vào. Ví dụ, trong bảng ký tự Unicode, chữ hoa
>>> min([3,5,9,1,-5])-5>>> min([])Traceback (most recent call last):...ValueError: min() arg is an empty sequence>>> max([3,5,9,1,-5])9>>> max([])Traceback (most recent call last):...ValueError: max() arg is an empty sequence
44 có giá trị số nhỏ hơn chữ thường
>>> min([3,5,9,1,-5])-5>>> min([])Traceback (most recent call last):...ValueError: min() arg is an empty sequence>>> max([3,5,9,1,-5])9>>> max([])Traceback (most recent call last):...ValueError: max() arg is an empty sequence
45
>>>
>>> ord("A")65>>> ord("a")97
Hàm tích hợp sẵn của Python nhận một ký tự Unicode và trả về một số nguyên biểu thị điểm mã Unicode của ký tự đó. Trong các ví dụ này, điểm mã cho chữ hoa
>>> min([3,5,9,1,-5])-5>>> min([])Traceback (most recent call last):...ValueError: min() arg is an empty sequence>>> max([3,5,9,1,-5])9>>> max([])Traceback (most recent call last):...ValueError: max() arg is an empty sequence
47 thấp hơn điểm mã cho chữ thường
>>> min([3,5,9,1,-5])-5>>> min([])Traceback (most recent call last):...ValueError: min() arg is an empty sequence>>> max([3,5,9,1,-5])9>>> max([])Traceback (most recent call last):...ValueError: max() arg is an empty sequence
4 bằng cả hai chữ cái, bạn sẽ nhận được kết quả khớp với thứ tự của các điểm mã Unicode cơ bản của những chữ cái này
>>>
>>> min("aA")'A'>>> max("aA")'a'
Điều gì làm cho
>>> min([3,5,9,1,-5])-5>>> min([])Traceback (most recent call last):...ValueError: min() arg is an empty sequence>>> max([3,5,9,1,-5])9>>> max([])Traceback (most recent call last):...ValueError: max() arg is an empty sequence
47 nhỏ hơn
>>> min([3,5,9,1,-5])-5>>> min([])Traceback (most recent call last):...ValueError: min() arg is an empty sequence>>> max([3,5,9,1,-5])9>>> max([])Traceback (most recent call last):...ValueError: max() arg is an empty sequence
48? . Tất cả các ký tự mà bạn có thể gõ trên bàn phím và nhiều ký tự khác đều có điểm mã riêng trong bảng Unicode. Python sử dụng các điểm mã này để xác định ký tự tối thiểu và tối đa khi sử dụng
4 với các chuỗi có thể lặp lại hoặc với nhiều đối số chuỗi. Một lần nữa, cả hai hàm sẽ xác định giá trị trả về của chúng bằng cách so sánh các chuỗi theo thứ tự bảng chữ cái
>>>
>>> min([3,5,9,1,-5])-5>>> min([])Traceback (most recent call last):...ValueError: min() arg is an empty sequence>>> max([3,5,9,1,-5])9>>> max([])Traceback (most recent call last):...ValueError: max() arg is an empty sequence
0
Để tìm chuỗi nhỏ nhất hoặc lớn nhất trong một chuỗi có thể lặp lại,
4 trả về khóa lớn nhất. Bạn có thể nhận được kết quả tương tự bằng cách sử dụng phương pháp trên từ điển đầu vào của mình
>>>
>>> min([3,5,9,1,-5])-5>>> min([])Traceback (most recent call last):...ValueError: min() arg is an empty sequence>>> max([3,5,9,1,-5])9>>> max([])Traceback (most recent call last):...ValueError: max() arg is an empty sequence
2
Sự khác biệt duy nhất giữa ví dụ sau này và ví dụ trước là ở đây, mã rõ ràng hơn về những gì bạn đang làm. Bất kỳ ai đọc mã của bạn sẽ nhanh chóng nhận ra rằng bạn muốn tìm các khóa nhỏ nhất và lớn nhất trong từ điển nhập liệu
Một yêu cầu phổ biến khác là tìm các giá trị nhỏ nhất và lớn nhất trong từ điển. Để tiếp tục với ví dụ về
>>> min([3,5,9,1,-5])-5>>> min([])Traceback (most recent call last):...ValueError: min() arg is an empty sequence>>> max([3,5,9,1,-5])9>>> max([])Traceback (most recent call last):...ValueError: max() arg is an empty sequence
78, giả sử bạn muốn biết giá nhỏ nhất và lớn nhất. Trong tình huống này, bạn có thể sử dụng phương pháp
4 sử dụng các quy tắc nội bộ của Python để so sánh các bộ dữ liệu và tìm các mục nhỏ nhất và lớn nhất trong từ điển đầu vào
Python so sánh các bộ dữ liệu theo từng mục. Ví dụ: để xác định xem
>>> min([3,5,9,1,-5])-5>>> min([])Traceback (most recent call last):...ValueError: min() arg is an empty sequence>>> max([3,5,9,1,-5])9>>> max([])Traceback (most recent call last):...ValueError: max() arg is an empty sequence
90 có lớn hơn
>>> min([3,5,9,1,-5])-5>>> min([])Traceback (most recent call last):...ValueError: min() arg is an empty sequence>>> max([3,5,9,1,-5])9>>> max([])Traceback (most recent call last):...ValueError: max() arg is an empty sequence
91 hay không), Python kiểm tra
>>> min([3,5,9,1,-5])-5>>> min([])Traceback (most recent call last):...ValueError: min() arg is an empty sequence>>> max([3,5,9,1,-5])9>>> max([])Traceback (most recent call last):...ValueError: max() arg is an empty sequence
92. Nếu điều kiện này là
>>> min([3,5,9,1,-5])-5>>> min([])Traceback (most recent call last):...ValueError: min() arg is an empty sequence>>> max([3,5,9,1,-5])9>>> max([])Traceback (most recent call last):...ValueError: max() arg is an empty sequence
93, thì Python kết luận rằng bộ thứ nhất lớn hơn bộ thứ hai mà không cần kiểm tra các mục còn lại. Ngược lại, nếu
>>> min([3,5,9,1,-5])-5>>> min([])Traceback (most recent call last):...ValueError: min() arg is an empty sequence>>> max([3,5,9,1,-5])9>>> max([])Traceback (most recent call last):...ValueError: max() arg is an empty sequence
94, thì Python kết luận rằng bộ thứ nhất nhỏ hơn bộ thứ hai
Cuối cùng, nếu
>>> min([3,5,9,1,-5])-5>>> min([])Traceback (most recent call last):...ValueError: min() arg is an empty sequence>>> max([3,5,9,1,-5])9>>> max([])Traceback (most recent call last):...ValueError: max() arg is an empty sequence
95, thì Python sẽ so sánh cặp mục thứ hai bằng cách sử dụng cùng một quy tắc. Lưu ý rằng trong ngữ cảnh này, mục đầu tiên của mỗi bộ đến từ các khóa từ điển và vì các khóa từ điển là duy nhất nên các mục không thể bằng nhau. Vì vậy, Python sẽ không bao giờ phải so sánh các giá trị thứ hai
4 cho phép bạn cung cấp hàm một đối số sẽ được áp dụng cho mọi giá trị trong dữ liệu đầu vào. Mục tiêu là sửa đổi các tiêu chí so sánh để sử dụng trong việc tìm giá trị tối thiểu hoặc tối đa
Ví dụ về cách tính năng này có thể hữu ích, giả sử bạn có một danh sách các số dưới dạng chuỗi và muốn tìm số nhỏ nhất và số lớn nhất. Nếu bạn xử lý danh sách trực tiếp với
>>> min([3,5,9,1,-5])-5>>> min([])Traceback (most recent call last):...ValueError: min() arg is an empty sequence>>> max([3,5,9,1,-5])9>>> max([])Traceback (most recent call last):...ValueError: max() arg is an empty sequence
5
Đây có thể không phải là kết quả mà bạn cần hoặc mong đợi. Bạn đang nhận được các chuỗi nhỏ nhất và lớn nhất dựa trên quy tắc so sánh chuỗi của Python thay vì dựa trên giá trị số thực của mỗi chuỗi
Trong trường hợp đó, giải pháp là chuyển hàm tích hợp dưới dạng đối số
4 với cách hiểu danh sách hoặc dưới dạng đối số. Tính năng này rất hữu ích khi bạn cần chuyển đổi dữ liệu đầu vào ngay trước khi tìm giá trị được chuyển đổi tối thiểu hoặc tối đa
37 để sửa đổi tiêu chí so sánh bằng cách nào đó. Sự khác biệt là khả năng hiểu thực sự biến đổi dữ liệu đầu vào trước khi thực hiện tính toán, vì vậy giá trị kết quả đến từ dữ liệu đã chuyển đổi chứ không phải từ dữ liệu gốc
Khả năng hiểu danh sách tạo ra một danh sách đầy đủ trong bộ nhớ, đây thường là một thao tác lãng phí. Thực tế này đặc biệt đúng nếu bạn không cần danh sách kết quả trong mã của mình nữa, đó có thể là trường hợp của
8). Bởi vì lệnh gọi hàm đã yêu cầu dấu ngoặc đơn, bạn chỉ cần xóa dấu ngoặc vuông khỏi các ví dụ dựa trên khả năng hiểu của mình và bạn đã sẵn sàng. Không giống như khả năng hiểu danh sách, các biểu thức trình tạo tạo ra các mục theo yêu cầu, điều này làm cho chúng trở nên hiệu quả về bộ nhớ
Đưa min(arg_1, arg_2[, ..., arg_n], *[, key]) -> minimum_value
max(arg_1, arg_2[, ..., arg_n], *[, key]) -> maximum_value
3 và min(arg_1, arg_2[, ..., arg_n], *[, key]) -> minimum_value
max(arg_1, arg_2[, ..., arg_n], *[, key]) -> maximum_value
4 của Python vào hoạt động
Cho đến giờ, bạn đã học được những kiến thức cơ bản về cách sử dụng
4 hoạt động với các kiểu dữ liệu Python tích hợp khác nhau, chẳng hạn như số, chuỗi và từ điển. Bạn cũng đã khám phá cách điều chỉnh hành vi tiêu chuẩn của các hàm này và cách sử dụng chúng với khả năng hiểu danh sách và biểu thức trình tạo
Bây giờ bạn đã sẵn sàng để bắt đầu viết mã một vài ví dụ thực tế sẽ chỉ cho bạn cách sử dụng
Xây dựng danh sách các giá trị tối thiểu và tối đa
Bây giờ, giả sử rằng bạn có một danh sách gồm các danh sách biểu thị một ma trận các giá trị số và bạn cần xây dựng các danh sách chứa các giá trị nhỏ nhất và lớn nhất từ mỗi hàng trong ma trận đầu vào. Để làm điều này, bạn có thể sử dụng
4 cung cấp một cách nhanh chóng để xử lý các ví dụ trong phần này, thư viện NumPy rất được khuyến khích khi xử lý ma trận trong Python vì NumPy có các công cụ cụ thể và được tối ưu hóa cho công việcLoại bỏ các quảng cáo
Cắt các giá trị thành các cạnh của một khoảng thời gian
Đôi khi bạn có một danh sách các giá trị số và muốn cắt chúng vào các cạnh hoặc giới hạn của một khoảng nhất định. Ví dụ: nếu một giá trị nhất định lớn hơn giới hạn trên của khoảng thời gian, thì bạn cần chuyển đổi giá trị đó xuống giới hạn đó. Để thực hiện thao tác này, bạn có thể sử dụng
89 từ NumPy, lấy một mảng và các giới hạn của khoảng mục tiêu, sau đó nó cắt tất cả các giá trị bên ngoài khoảng vào các cạnh của khoảng
Tìm điểm gần nhất
Bây giờ giả sử rằng bạn có một danh sách các bộ chứa các cặp giá trị đại diện cho các điểm Descartes. Bạn muốn xử lý tất cả các cặp điểm này và tìm ra cặp nào có khoảng cách nhỏ nhất giữa các điểm. Trong tình huống này, bạn có thể làm điều gì đó như sau
90 để có quyền truy cập vào. Hàm này trả về khoảng cách Euclide giữa hai điểm p và q, mỗi điểm được cho dưới dạng một chuỗi tọa độ. Hai điểm phải có cùng số chiều
>>> min([3,"5.0",9,1.0,"-5"])Traceback (most recent call last):...TypeError: '<' not supported between instances of 'str' and 'int'>>> max([3,"5.0",9,1.0,"-5"])Traceback (most recent call last):...TypeError: '>' not supported between instances of 'str' and 'int'
01, sau đó giải nén nó thành hai đối số để đưa vào
Bây giờ, giả sử bạn có một từ điển với tên và giá của một số sản phẩm và bạn muốn xác định sản phẩm rẻ nhất và đắt nhất. Trong tình huống này, bạn có thể sử dụng hàm
>>> min([3,5,9,1,-5])-5>>> min([])Traceback (most recent call last):...ValueError: min() arg is an empty sequence>>> max([3,5,9,1,-5])9>>> max([])Traceback (most recent call last):...ValueError: max() arg is an empty sequence
3 để giải một bài toán trong thế giới thực là khi bạn cần tìm hiểu xem hai số có nguyên tố cùng nhau hay không. Nói cách khác, bạn cần biết liệu ước số chung duy nhất của các số của bạn có phải là
>>> min([3,"5.0",9,1.0,"-5"])Traceback (most recent call last):...TypeError: '<' not supported between instances of 'str' and 'int'>>> max([3,"5.0",9,1.0,"-5"])Traceback (most recent call last):...TypeError: '>' not supported between instances of 'str' and 'int'
10 hay không
Trong tình huống đó, bạn có thể viết mã một hàm có giá trị Boolean hoặc hàm vị ngữ như sau
>>> min([3,"5.0",9,1.0,"-5"])Traceback (most recent call last):...TypeError: '<' not supported between instances of 'str' and 'int'>>> max([3,"5.0",9,1.0,"-5"])Traceback (most recent call last):...TypeError: '>' not supported between instances of 'str' and 'int'
11 là một hàm vị ngữ trả về
>>> min([3,5,9,1,-5])-5>>> min([])Traceback (most recent call last):...ValueError: min() arg is an empty sequence>>> max([3,5,9,1,-5])9>>> max([])Traceback (most recent call last):...ValueError: max() arg is an empty sequence
93 nếu các số đầu vào là nguyên tố cùng nhau. Nếu các số không nguyên tố cùng nhau, thì hàm trả về
>>> min([3,"5.0",9,1.0,"-5"])Traceback (most recent call last):...TypeError: '<' not supported between instances of 'str' and 'int'>>> max([3,"5.0",9,1.0,"-5"])Traceback (most recent call last):...TypeError: '>' not supported between instances of 'str' and 'int'
>>> min([3,"5.0",9,1.0,"-5"])Traceback (most recent call last):...TypeError: '<' not supported between instances of 'str' and 'int'>>> max([3,"5.0",9,1.0,"-5"])Traceback (most recent call last):...TypeError: '>' not supported between instances of 'str' and 'int'
15 giá trị. Để đặt giới hạn trên cho đối tượng
>>> min([3,"5.0",9,1.0,"-5"])Traceback (most recent call last):...TypeError: '<' not supported between instances of 'str' and 'int'>>> max([3,"5.0",9,1.0,"-5"])Traceback (most recent call last):...TypeError: '>' not supported between instances of 'str' and 'int'
3 để so sánh một số thuật toán của mình, đánh giá thời gian thực hiện của chúng và xác định thuật toán nào hiệu quả nhất. Ví dụ dưới đây sử dụng để đo thời gian thực hiện cho hai cách khác nhau để tạo danh sách chứa các giá trị bình phương của các số từ
>>> min([3,"5.0",9,1.0,"-5"])Traceback (most recent call last):...TypeError: '<' not supported between instances of 'str' and 'int'>>> max([3,"5.0",9,1.0,"-5"])Traceback (most recent call last):...TypeError: '>' not supported between instances of 'str' and 'int'
21 đến
>>> min([3,"5.0",9,1.0,"-5"])Traceback (most recent call last):...TypeError: '<' not supported between instances of 'str' and 'int'>>> max([3,"5.0",9,1.0,"-5"])Traceback (most recent call last):...TypeError: '>' not supported between instances of 'str' and 'int'
>>> min([3,"5.0",9,1.0,"-5"])Traceback (most recent call last):...TypeError: '<' not supported between instances of 'str' and 'int'>>> max([3,"5.0",9,1.0,"-5"])Traceback (most recent call last):...TypeError: '>' not supported between instances of 'str' and 'int'
26 và các hàm hẹn giờ khác của Python, bạn có thể biết được thuật toán nào hiệu quả nhất về mặt thời gian thực hiện. Ví dụ trên cho thấy rằng khả năng hiểu danh sách có thể nhanh hơn một chút so với hàm
>>> min([3,"5.0",9,1.0,"-5"])Traceback (most recent call last):...TypeError: '<' not supported between instances of 'str' and 'int'>>> max([3,"5.0",9,1.0,"-5"])Traceback (most recent call last):...TypeError: '>' not supported between instances of 'str' and 'int'
27 tích hợp khi xây dựng danh sách mới
Khám phá vai trò của >>> min([3, "5.0", 9, 1.0, "-5"])
Traceback (most recent call last):
...
TypeError: '<' not supported between instances of 'str' and 'int'
>>> max([3, "5.0", 9, 1.0, "-5"])
Traceback (most recent call last):
...
TypeError: '>' not supported between instances of 'str' and 'int'
28 và >>> min([3, "5.0", 9, 1.0, "-5"])
Traceback (most recent call last):
...
TypeError: '<' not supported between instances of 'str' and 'int'
>>> max([3, "5.0", 9, 1.0, "-5"])
Traceback (most recent call last):
...
TypeError: '>' not supported between instances of 'str' and 'int'
29 trong min(arg_1, arg_2[, ..., arg_n], *[, key]) -> minimum_value
max(arg_1, arg_2[, ..., arg_n], *[, key]) -> maximum_value
3 và min(arg_1, arg_2[, ..., arg_n], *[, key]) -> minimum_value
max(arg_1, arg_2[, ..., arg_n], *[, key]) -> maximum_value
4
4 tích hợp đủ linh hoạt để hoạt động với các giá trị thuộc nhiều loại dữ liệu khác nhau, chẳng hạn như số và chuỗi. Bí mật đằng sau sự linh hoạt này là
4 áp dụng triết lý gõ vịt của Python bằng cách dựa vào các phương thức đặc biệt và
Các phương thức này là một phần của cái mà Python gọi là các phương thức so sánh phong phú. Cụ thể,
>>> min([3,"5.0",9,1.0,"-5"])Traceback (most recent call last):...TypeError: '<' not supported between instances of 'str' and 'int'>>> max([3,"5.0",9,1.0,"-5"])Traceback (most recent call last):...TypeError: '>' not supported between instances of 'str' and 'int'
28 và
>>> min([3,"5.0",9,1.0,"-5"])Traceback (most recent call last):...TypeError: '<' not supported between instances of 'str' and 'int'>>> max([3,"5.0",9,1.0,"-5"])Traceback (most recent call last):...TypeError: '>' not supported between instances of 'str' and 'int'
29 tương ứng hỗ trợ các toán tử nhỏ hơn (
>>> min([3,"5.0",9,1.0,"-5"])Traceback (most recent call last):...TypeError: '<' not supported between instances of 'str' and 'int'>>> max([3,"5.0",9,1.0,"-5"])Traceback (most recent call last):...TypeError: '>' not supported between instances of 'str' and 'int'
40) và lớn hơn (
>>> min([3,"5.0",9,1.0,"-5"])Traceback (most recent call last):...TypeError: '<' not supported between instances of 'str' and 'int'>>> max([3,"5.0",9,1.0,"-5"])Traceback (most recent call last):...TypeError: '>' not supported between instances of 'str' and 'int'
4 với các giá trị của bất kỳ loại dữ liệu nào thực hiện
>>> min([3,"5.0",9,1.0,"-5"])Traceback (most recent call last):...TypeError: '<' not supported between instances of 'str' and 'int'>>> max([3,"5.0",9,1.0,"-5"])Traceback (most recent call last):...TypeError: '>' not supported between instances of 'str' and 'int'
28 và
>>> min([3,"5.0",9,1.0,"-5"])Traceback (most recent call last):...TypeError: '<' not supported between instances of 'str' and 'int'>>> max([3,"5.0",9,1.0,"-5"])Traceback (most recent call last):...TypeError: '>' not supported between instances of 'str' and 'int'
29. Đó là lý do tại sao các hàm này hoạt động với các giá trị của tất cả các kiểu dữ liệu tích hợp sẵn của Python
>>>
>>> min([3,"5.0",9,1.0,"-5"])Traceback (most recent call last):...TypeError: '<' not supported between instances of 'str' and 'int'>>> max([3,"5.0",9,1.0,"-5"])Traceback (most recent call last):...TypeError: '>' not supported between instances of 'str' and 'int'
0
Các kiểu dữ liệu có sẵn của Python triển khai các phương thức đặc biệt
>>> min([3,"5.0",9,1.0,"-5"])Traceback (most recent call last):...TypeError: '<' not supported between instances of 'str' and 'int'>>> max([3,"5.0",9,1.0,"-5"])Traceback (most recent call last):...TypeError: '>' not supported between instances of 'str' and 'int'
28 và
>>> min([3,"5.0",9,1.0,"-5"])Traceback (most recent call last):...TypeError: '<' not supported between instances of 'str' and 'int'>>> max([3,"5.0",9,1.0,"-5"])Traceback (most recent call last):...TypeError: '>' not supported between instances of 'str' and 'int'
29. Vì vậy, bạn có thể cung cấp bất kỳ loại dữ liệu nào trong số này vào
4. Để đạt được điều này, bạn cần cung cấp các triển khai của riêng mình về
>>> min([3,"5.0",9,1.0,"-5"])Traceback (most recent call last):...TypeError: '<' not supported between instances of 'str' and 'int'>>> max([3,"5.0",9,1.0,"-5"])Traceback (most recent call last):...TypeError: '>' not supported between instances of 'str' and 'int'
28 và
>>> min([3,"5.0",9,1.0,"-5"])Traceback (most recent call last):...TypeError: '<' not supported between instances of 'str' and 'int'>>> max([3,"5.0",9,1.0,"-5"])Traceback (most recent call last):...TypeError: '>' not supported between instances of 'str' and 'int'
29. Hãy xem xét lớp
>>> min([3,"5.0",9,1.0,"-5"])Traceback (most recent call last):...TypeError: '<' not supported between instances of 'str' and 'int'>>> max([3,"5.0",9,1.0,"-5"])Traceback (most recent call last):...TypeError: '>' not supported between instances of 'str' and 'int'
56 sau đây làm ví dụ về khả năng tương thích này
>>> min([3,"5.0",9,1.0,"-5"])Traceback (most recent call last):...TypeError: '<' not supported between instances of 'str' and 'int'>>> max([3,"5.0",9,1.0,"-5"])Traceback (most recent call last):...TypeError: '>' not supported between instances of 'str' and 'int'
1
Lưu ý rằng việc triển khai
>>> min([3,"5.0",9,1.0,"-5"])Traceback (most recent call last):...TypeError: '<' not supported between instances of 'str' and 'int'>>> max([3,"5.0",9,1.0,"-5"])Traceback (most recent call last):...TypeError: '>' not supported between instances of 'str' and 'int'
28 và
>>> min([3,"5.0",9,1.0,"-5"])Traceback (most recent call last):...TypeError: '<' not supported between instances of 'str' and 'int'>>> max([3,"5.0",9,1.0,"-5"])Traceback (most recent call last):...TypeError: '>' not supported between instances of 'str' and 'int'
29 yêu cầu một đối số thường có tên là
>>> min([3,"5.0",9,1.0,"-5"])Traceback (most recent call last):...TypeError: '<' not supported between instances of 'str' and 'int'>>> max([3,"5.0",9,1.0,"-5"])Traceback (most recent call last):...TypeError: '>' not supported between instances of 'str' and 'int'
59. Đối số này đại diện cho toán hạng thứ hai trong các hoạt động so sánh cơ bản. Ví dụ: trong một biểu thức như
>>> min([3,"5.0",9,1.0,"-5"])Traceback (most recent call last):...TypeError: '<' not supported between instances of 'str' and 'int'>>> max([3,"5.0",9,1.0,"-5"])Traceback (most recent call last):...TypeError: '>' not supported between instances of 'str' and 'int'
42, bạn sẽ có rằng
>>> min([3,"5.0",9,1.0,"-5"])Traceback (most recent call last):...TypeError: '<' not supported between instances of 'str' and 'int'>>> max([3,"5.0",9,1.0,"-5"])Traceback (most recent call last):...TypeError: '>' not supported between instances of 'str' and 'int'
61 sẽ là
>>> min([3,"5.0",9,1.0,"-5"])Traceback (most recent call last):...TypeError: '<' not supported between instances of 'str' and 'int'>>> max([3,"5.0",9,1.0,"-5"])Traceback (most recent call last):...TypeError: '>' not supported between instances of 'str' and 'int'
62 và
>>> min([3,"5.0",9,1.0,"-5"])Traceback (most recent call last):...TypeError: '<' not supported between instances of 'str' and 'int'>>> max([3,"5.0",9,1.0,"-5"])Traceback (most recent call last):...TypeError: '>' not supported between instances of 'str' and 'int'
63 sẽ là
>>> min([3,"5.0",9,1.0,"-5"])Traceback (most recent call last):...TypeError: '<' not supported between instances of 'str' and 'int'>>> max([3,"5.0",9,1.0,"-5"])Traceback (most recent call last):...TypeError: '>' not supported between instances of 'str' and 'int'
59
Ghi chú. Để các hoạt động so sánh nhỏ hơn và lớn hơn hoạt động bình thường, bạn chỉ cần thực hiện một trong hai cách là
>>> min([3,"5.0",9,1.0,"-5"])Traceback (most recent call last):...TypeError: '<' not supported between instances of 'str' and 'int'>>> max([3,"5.0",9,1.0,"-5"])Traceback (most recent call last):...TypeError: '>' not supported between instances of 'str' and 'int'
28 hoặc
>>> min([3,"5.0",9,1.0,"-5"])Traceback (most recent call last):...TypeError: '<' not supported between instances of 'str' and 'int'>>> max([3,"5.0",9,1.0,"-5"])Traceback (most recent call last):...TypeError: '>' not supported between instances of 'str' and 'int'
29
Trong ví dụ này,
>>> min([3,"5.0",9,1.0,"-5"])Traceback (most recent call last):...TypeError: '<' not supported between instances of 'str' and 'int'>>> max([3,"5.0",9,1.0,"-5"])Traceback (most recent call last):...TypeError: '>' not supported between instances of 'str' and 'int'
28 và
>>> min([3,"5.0",9,1.0,"-5"])Traceback (most recent call last):...TypeError: '<' not supported between instances of 'str' and 'int'>>> max([3,"5.0",9,1.0,"-5"])Traceback (most recent call last):...TypeError: '>' not supported between instances of 'str' and 'int'
29 trả về kết quả so sánh các thuộc tính
>>> min([3,"5.0",9,1.0,"-5"])Traceback (most recent call last):...TypeError: '<' not supported between instances of 'str' and 'int'>>> max([3,"5.0",9,1.0,"-5"])Traceback (most recent call last):...TypeError: '>' not supported between instances of 'str' and 'int'
69 của hai người. Đây là cách nó hoạt động trong thực tế
>>>
>>> min([3,"5.0",9,1.0,"-5"])Traceback (most recent call last):...TypeError: '<' not supported between instances of 'str' and 'int'>>> max([3,"5.0",9,1.0,"-5"])Traceback (most recent call last):...TypeError: '>' not supported between instances of 'str' and 'int'
2
Mát lạnh. Bạn có thể xử lý các đối tượng
>>> min([3,"5.0",9,1.0,"-5"])Traceback (most recent call last):...TypeError: '<' not supported between instances of 'str' and 'int'>>> max([3,"5.0",9,1.0,"-5"])Traceback (most recent call last):...TypeError: '>' not supported between instances of 'str' and 'int'
>>> min([3,"5.0",9,1.0,"-5"])Traceback (most recent call last):...TypeError: '<' not supported between instances of 'str' and 'int'>>> max([3,"5.0",9,1.0,"-5"])Traceback (most recent call last):...TypeError: '>' not supported between instances of 'str' and 'int'
28 và
>>> min([3,"5.0",9,1.0,"-5"])Traceback (most recent call last):...TypeError: '<' not supported between instances of 'str' and 'int'>>> max([3,"5.0",9,1.0,"-5"])Traceback (most recent call last):...TypeError: '>' not supported between instances of 'str' and 'int'
>>> min([3,"5.0",9,1.0,"-5"])Traceback (most recent call last):...TypeError: '<' not supported between instances of 'str' and 'int'>>> max([3,"5.0",9,1.0,"-5"])Traceback (most recent call last):...TypeError: '>' not supported between instances of 'str' and 'int'
28 và
>>> min([3,"5.0",9,1.0,"-5"])Traceback (most recent call last):...TypeError: '<' not supported between instances of 'str' and 'int'>>> max([3,"5.0",9,1.0,"-5"])Traceback (most recent call last):...TypeError: '>' not supported between instances of 'str' and 'int'
29 chỉ cung cấp hỗ trợ cho hai toán tử so sánh,
>>> min([3,"5.0",9,1.0,"-5"])Traceback (most recent call last):...TypeError: '<' not supported between instances of 'str' and 'int'>>> max([3,"5.0",9,1.0,"-5"])Traceback (most recent call last):...TypeError: '>' not supported between instances of 'str' and 'int'
40 và
>>> min([3,"5.0",9,1.0,"-5"])Traceback (most recent call last):...TypeError: '<' not supported between instances of 'str' and 'int'>>> max([3,"5.0",9,1.0,"-5"])Traceback (most recent call last):...TypeError: '>' not supported between instances of 'str' and 'int'
41. Nếu bạn muốn một lớp cung cấp tất cả các thao tác so sánh, nhưng bạn chỉ muốn viết một vài phương thức đặc biệt, thì bạn có thể sử dụng. Nếu bạn có một lớp định nghĩa
>>> min([3,"5.0",9,1.0,"-5"])Traceback (most recent call last):...TypeError: '<' not supported between instances of 'str' and 'int'>>> max([3,"5.0",9,1.0,"-5"])Traceback (most recent call last):...TypeError: '>' not supported between instances of 'str' and 'int'
82 và các phương thức so sánh phong phú khác, thì trình trang trí này sẽ tự động cung cấp các phương thức so sánh còn lại
Lưu ý rằng nếu một lớp tùy chỉnh nhất định không cung cấp các phương thức này, thì các thể hiện của nó sẽ không hỗ trợ các hoạt động
>>> min([3,"5.0",9,1.0,"-5"])Traceback (most recent call last):...TypeError: '<' not supported between instances of 'str' and 'int'>>> max([3,"5.0",9,1.0,"-5"])Traceback (most recent call last):...TypeError: '>' not supported between instances of 'str' and 'int'
3
Bởi vì lớp
>>> min([3,"5.0",9,1.0,"-5"])Traceback (most recent call last):...TypeError: '<' not supported between instances of 'str' and 'int'>>> max([3,"5.0",9,1.0,"-5"])Traceback (most recent call last):...TypeError: '>' not supported between instances of 'str' and 'int'
85 này không cung cấp các triển khai phù hợp của
>>> min([3,"5.0",9,1.0,"-5"])Traceback (most recent call last):...TypeError: '<' not supported between instances of 'str' and 'int'>>> max([3,"5.0",9,1.0,"-5"])Traceback (most recent call last):...TypeError: '>' not supported between instances of 'str' and 'int'
28 và
>>> min([3,"5.0",9,1.0,"-5"])Traceback (most recent call last):...TypeError: '<' not supported between instances of 'str' and 'int'>>> max([3,"5.0",9,1.0,"-5"])Traceback (most recent call last):...TypeError: '>' not supported between instances of 'str' and 'int'
4 của Python. Bạn đã sử dụng chúng để tìm các giá trị nhỏ nhất và lớn nhất trong số một số, chuỗi, v.v. Bạn biết cách gọi các hàm này bằng một lần lặp duy nhất làm đối số hoặc với số lượng đối số thông thường không xác định. Cuối cùng, bạn đã mã hóa một loạt các ví dụ thực tế để tiếp cận các vấn đề trong thế giới thực bằng cách sử dụng
4 để tìm các giá trị nhỏ nhất và lớn nhất trong dữ liệu của bạn, học cách thực hiện tính toán này từ đầu là một bài tập hữu ích có thể cải thiện tư duy logic và kỹ năng lập trình của bạn
Trong phần này, bạn sẽ tìm hiểu cách tìm giá trị tối thiểu và tối đa trong dữ liệu của mình. Bạn cũng sẽ học cách triển khai các phiên bản
Để tìm giá trị nhỏ nhất trong một danh sách nhỏ các số với tư cách là con người, thông thường bạn sẽ kiểm tra các số và ngầm so sánh tất cả chúng trong đầu. Vâng, bộ não của bạn thật tuyệt vời. Tuy nhiên, máy tính không thông minh như vậy. Họ cần hướng dẫn chi tiết để hoàn thành bất kỳ nhiệm vụ nào
Bạn sẽ phải yêu cầu máy tính của mình lặp lại tất cả các giá trị trong khi so sánh chúng theo từng cặp. Trong quá trình này, máy tính phải lưu ý giá trị tối thiểu hiện tại trong mỗi cặp cho đến khi danh sách các giá trị được xử lý hoàn toàn
Lời giải thích này có thể khó hình dung, vì vậy đây là một hàm Python thực hiện công việc
>>>
>>> min([3,"5.0",9,1.0,"-5"])Traceback (most recent call last):...TypeError: '<' not supported between instances of 'str' and 'int'>>> max([3,"5.0",9,1.0,"-5"])Traceback (most recent call last):...TypeError: '>' not supported between instances of 'str' and 'int'
03 và nghĩ xem bạn sẽ viết mã một hàm như thế nào để tìm giá trị lớn nhất. Vâng, đó là nó. Bạn chỉ cần thay đổi từ nhỏ hơn (
>>> min([3,"5.0",9,1.0,"-5"])Traceback (most recent call last):...TypeError: '<' not supported between instances of 'str' and 'int'>>> max([3,"5.0",9,1.0,"-5"])Traceback (most recent call last):...TypeError: '>' not supported between instances of 'str' and 'int'
40) thành lớn hơn (
>>> min([3,"5.0",9,1.0,"-5"])Traceback (most recent call last):...TypeError: '<' not supported between instances of 'str' and 'int'>>> max([3,"5.0",9,1.0,"-5"])Traceback (most recent call last):...TypeError: '>' not supported between instances of 'str' and 'int'
41), và có thể đổi tên hàm và một số để tránh nhầm lẫn
Chức năng mới của bạn có thể trông giống như thế này
>>>
>>> min([3,"5.0",9,1.0,"-5"])Traceback (most recent call last):...TypeError: '<' not supported between instances of 'str' and 'int'>>> max([3,"5.0",9,1.0,"-5"])Traceback (most recent call last):...TypeError: '>' not supported between instances of 'str' and 'int'
>>> min([3,"5.0",9,1.0,"-5"])Traceback (most recent call last):...TypeError: '<' not supported between instances of 'str' and 'int'>>> max([3,"5.0",9,1.0,"-5"])Traceback (most recent call last):...TypeError: '>' not supported between instances of 'str' and 'int'
41) thay vì toán tử nhỏ hơn (
>>> min([3,"5.0",9,1.0,"-5"])Traceback (most recent call last):...TypeError: '<' not supported between instances of 'str' and 'int'>>> max([3,"5.0",9,1.0,"-5"])Traceback (most recent call last):...TypeError: '>' not supported between instances of 'str' and 'int'
40)
Như một bài tập, bạn có thể nghĩ về cách tránh viết mã lặp lại trong
4 bằng các kỹ năng Python của mình, bạn sẽ giải quyết vấn đề này chỉ trong giây lát
Trước khi đi sâu vào, bạn cần lưu ý các yêu cầu về kiến thức. Bạn sẽ kết hợp các chủ đề như câu lệnh có điều kiện, xử lý ngoại lệ, hiểu danh sách, phép lặp xác định với vòng lặp
Nếu bạn cảm thấy rằng bạn không biết mọi thứ về những chủ đề này, thì đừng lo lắng. Bạn sẽ học bằng cách làm. Nếu bạn gặp khó khăn, thì bạn có thể quay lại và xem lại các tài nguyên được liên kết
Loại bỏ các quảng cáo
Lập kế hoạch cho các phiên bản min(arg_1, arg_2[, ..., arg_n], *[, key]) -> minimum_value
max(arg_1, arg_2[, ..., arg_n], *[, key]) -> maximum_value
3 và min(arg_1, arg_2[, ..., arg_n], *[, key]) -> minimum_value
max(arg_1, arg_2[, ..., arg_n], *[, key]) -> maximum_value
4 tùy chỉnh của bạn
4, bạn sẽ bắt đầu bằng cách viết mã một hàm trợ giúp có thể tìm thấy giá trị nhỏ nhất hoặc lớn nhất trong dữ liệu đầu vào, tùy thuộc vào các đối số bạn sử dụng trong lệnh gọi. Tất nhiên, hàm trợ giúp sẽ đặc biệt phụ thuộc vào toán tử được sử dụng để so sánh các giá trị đầu vào
Hàm trợ giúp của bạn sẽ có chữ ký sau
>>> min([3,"5.0",9,1.0,"-5"])Traceback (most recent call last):...TypeError: '<' not supported between instances of 'str' and 'int'>>> max([3,"5.0",9,1.0,"-5"])Traceback (most recent call last):...TypeError: '>' not supported between instances of 'str' and 'int'
6
Đây là những gì mỗi đối số làm
Đối sốMô tảBắt buộc_______0_______29Cho phép bạn gọi hàm với một đối số có thể lặp lại hoặc bất kỳ số lượng đối số thông thường nào Có
29 để tạo danh sách các giá trị. Có một danh sách các giá trị được tiêu chuẩn hóa sẽ cho phép bạn viết thuật toán cần thiết để tìm các giá trị tối thiểu và tối đa trong dữ liệu đầu vào
Sau đó, hàm cần xử lý các đối số
>>> min(3,5,9,1,-5)-5>>> max(3,5,9,1,-5)9
3 và
>>> min(3,5,9,1,-5)-5>>> max(3,5,9,1,-5)9
4 trước khi tính giá trị tối thiểu và tối đa, đây là bước cuối cùng bên trong
38 tại chỗ, bước cuối cùng là xác định hai chức năng độc lập trên nó. Các hàm này sẽ sử dụng các hàm toán tử so sánh thích hợp để tìm các giá trị nhỏ nhất và lớn nhất tương ứng. Bạn sẽ tìm hiểu thêm về các hàm toán tử trong giây lát
Chuẩn hóa dữ liệu đầu vào từ min(arg_1, arg_2[, ..., arg_n], *[, key]) -> minimum_value
max(arg_1, arg_2[, ..., arg_n], *[, key]) -> maximum_value
29
Để chuẩn hóa dữ liệu đầu vào, bạn cần kiểm tra xem người dùng đang cung cấp một đối số có thể lặp lại hay bất kỳ đối số thông thường nào. Kích hoạt trình soạn thảo mã hoặc IDE yêu thích của bạn và tạo một tệp Python mới có tên là
>>> min([3,"5.0",9,1.0,"-5"])Traceback (most recent call last):...TypeError: '<' not supported between instances of 'str' and 'int'>>> max([3,"5.0",9,1.0,"-5"])Traceback (most recent call last):...TypeError: '>' not supported between instances of 'str' and 'int'
48 chỉ giữ một giá trị, thì bạn cần kiểm tra xem đối số đó có phải là một đối tượng có thể lặp lại không. Bạn sử dụng , điều này hoàn toàn thực hiện kiểm tra và cũng biến đầu vào có thể lặp lại thành một danh sách
62 sẽ giữ một danh sách các giá trị có thể trống. Ngay cả khi danh sách kết quả trống, nó hiện đã sạch và sẵn sàng để tiếp tục quá trình tìm giá trị tối thiểu hoặc tối đa của nó
Xử lý Đối số >>> min(3, 5, 9, 1, -5)
-5
>>> max(3, 5, 9, 1, -5)
9
4
>>> min([3,"5.0",9,1.0,"-5"])Traceback (most recent call last):...TypeError: '<' not supported between instances of 'str' and 'int'>>> max([3,"5.0",9,1.0,"-5"])Traceback (most recent call last):...TypeError: '>' not supported between instances of 'str' and 'int'
8
Trong đoạn mã này, bạn xác định một điều kiện để kiểm tra xem
62 có chứa danh sách trống không. Nếu đúng như vậy, thì bạn kiểm tra đối số
>>> min(3,5,9,1,-5)-5>>> max(3,5,9,1,-5)9
4 để xem liệu người dùng có cung cấp giá trị cho đối số đó không. Nếu _______10_______4 vẫn là _______0_______69, thì _______51_______7 được nâng lên. Mặt khác,
>>> min(3,5,9,1,-5)-5>>> max(3,5,9,1,-5)9
4 được trả lại. Hành vi này mô phỏng hành vi tiêu chuẩn của
>>> min([3,"5.0",9,1.0,"-5"])Traceback (most recent call last):...TypeError: '<' not supported between instances of 'str' and 'int'>>> max([3,"5.0",9,1.0,"-5"])Traceback (most recent call last):...TypeError: '>' not supported between instances of 'str' and 'int'
9
Bạn bắt đầu đoạn mã này với một điều kiện kiểm tra xem người dùng chưa cung cấp hàm
>>> min(3,5,9,1,-5)-5>>> max(3,5,9,1,-5)9
3. Nếu họ chưa có, thì bạn tạo một danh sách các khóa trực tiếp từ bản gốc
62 của mình. Bạn sẽ sử dụng các khóa này làm khóa so sánh trong tính toán tối thiểu và tối đa
Mặt khác, nếu người dùng đã cung cấp một đối số
>>> min(3,5,9,1,-5)-5>>> max(3,5,9,1,-5)9
3, thì bạn cần đảm bảo rằng đối số đó thực sự là một hàm hoặc đối tượng có thể gọi được. Để thực hiện việc này, bạn sử dụng hàm tích hợp, trả về
>>> min([3,5,9,1,-5])-5>>> min([])Traceback (most recent call last):...ValueError: min() arg is an empty sequence>>> max([3,5,9,1,-5])9>>> max([])Traceback (most recent call last):...ValueError: max() arg is an empty sequence
93 nếu đối số của nó là có thể gọi được và
>>> min([3,"5.0",9,1.0,"-5"])Traceback (most recent call last):...TypeError: '<' not supported between instances of 'str' and 'int'>>> max([3,"5.0",9,1.0,"-5"])Traceback (most recent call last):...TypeError: '>' not supported between instances of 'str' and 'int'
13 nếu không
Khi bạn chắc chắn rằng
>>> min(3,5,9,1,-5)-5>>> max(3,5,9,1,-5)9
3 là một đối tượng có thể gọi được, thì bạn xây dựng danh sách các khóa so sánh bằng cách áp dụng
>>> min(3,5,9,1,-5)-5>>> max(3,5,9,1,-5)9
3 cho từng giá trị trong dữ liệu đầu vào
Cuối cùng, nếu
>>> min(3,5,9,1,-5)-5>>> max(3,5,9,1,-5)9
3 không phải là một đối tượng có thể gọi được, thì mệnh đề
35. Các hàm này tương đương với chức năng của các toán tử lớn hơn (
>>> min([3,"5.0",9,1.0,"-5"])Traceback (most recent call last):...TypeError: '<' not supported between instances of 'str' and 'int'>>> max([3,"5.0",9,1.0,"-5"])Traceback (most recent call last):...TypeError: '>' not supported between instances of 'str' and 'int'
41) và nhỏ hơn (
>>> min([3,"5.0",9,1.0,"-5"])Traceback (most recent call last):...TypeError: '<' not supported between instances of 'str' and 'int'>>> max([3,"5.0",9,1.0,"-5"])Traceback (most recent call last):...TypeError: '>' not supported between instances of 'str' and 'int'
40), tương ứng. Ví dụ, biểu thức Boolean
>>> min([3,"5.0",9,1.0,"-5"])Traceback (most recent call last):...TypeError: '<' not supported between instances of 'str' and 'int'>>> max([3,"5.0",9,1.0,"-5"])Traceback (most recent call last):...TypeError: '>' not supported between instances of 'str' and 'int'
4 tích hợp sẵn của Python để tìm các giá trị nhỏ nhất và lớn nhất trong một lần lặp hoặc trong một chuỗi gồm hai đối số thông thường trở lên. Bạn cũng đã học về một số đặc điểm khác của
4 bằng Python thuần túy, một bài tập học tập hay giúp bạn hiểu logic đằng sau các hàm tích hợp này
Tiền thưởng miễn phí. 5 Suy nghĩ về Làm chủ Python, một khóa học miễn phí dành cho các nhà phát triển Python cho bạn thấy lộ trình và tư duy mà bạn sẽ cần để đưa các kỹ năng Python của mình lên một tầm cao mới
Đánh dấu là đã hoàn thành
🐍 Thủ thuật Python 💌
Nhận một Thủ thuật Python ngắn và hấp dẫn được gửi đến hộp thư đến của bạn vài ngày một lần. Không có thư rác bao giờ. Hủy đăng ký bất cứ lúc nào. Được quản lý bởi nhóm Real Python
Gửi cho tôi thủ thuật Python »
Giới thiệu về Leodanis Pozo Ramos
Leodanis là một kỹ sư công nghiệp yêu thích Python và phát triển phần mềm. Anh ấy là một nhà phát triển Python tự học với hơn 6 năm kinh nghiệm. Anh ấy là một nhà văn đam mê kỹ thuật với số lượng bài báo được xuất bản ngày càng tăng trên Real Python và các trang web khác
» Tìm hiểu thêm về Leodanis
Mỗi hướng dẫn tại Real Python được tạo bởi một nhóm các nhà phát triển để nó đáp ứng các tiêu chuẩn chất lượng cao của chúng tôi. Các thành viên trong nhóm đã làm việc trong hướng dẫn này là
Aldren
Geir Arne
kate
Bậc thầy Kỹ năng Python trong thế giới thực Với quyền truy cập không giới hạn vào Python thực
Tham gia với chúng tôi và có quyền truy cập vào hàng nghìn hướng dẫn, khóa học video thực hành và cộng đồng các Pythonistas chuyên gia
Nâng cao kỹ năng Python của bạn »
Chuyên gia Kỹ năng Python trong thế giới thực Với quyền truy cập không giới hạn vào Python thực
Tham gia với chúng tôi và có quyền truy cập vào hàng ngàn hướng dẫn, khóa học video thực hành và cộng đồng Pythonistas chuyên gia
Nâng cao kỹ năng Python của bạn »
Bạn nghĩ sao?
Đánh giá bài viết này
Tweet Chia sẻ Chia sẻ Email
Bài học số 1 hoặc điều yêu thích mà bạn đã học được là gì?
Mẹo bình luận. Những nhận xét hữu ích nhất là những nhận xét được viết với mục đích học hỏi hoặc giúp đỡ các sinh viên khác. và nhận câu trả lời cho các câu hỏi phổ biến trong cổng thông tin hỗ trợ của chúng tôi
Làm cách nào để tìm số nhỏ nhất và lớn nhất trong một mảng trong Python?
Sử dụng hàm min() và max() của Python để tìm giá trị nhỏ nhất và lớn nhất trong dữ liệu của bạn . Gọi min() và max() với một lần lặp duy nhất hoặc với bất kỳ số lượng đối số thông thường nào. Sử dụng min() và max() với chuỗi và từ điển.
Bạn có thể tính tổng một mảng bằng Python không?
Hàm numpy sum() của Python dùng để lấy tổng các phần tử mảng trên một trục cho trước .