Cmp trong Python

Trong hướng dẫn này, chúng ta sẽ học cách sử dụng cmp[] i. e hàm so sánh trong Python. Chức năng này có hành vi khác nhau trong các phiên bản khác nhau của Python. Trong Python phiên bản 2. x [x=1,2,3,…] chúng ta có thể trực tiếp sử dụng cmp[]  để so sánh hai thực thể bất kỳ thuộc loại float, integer hoặc string

cmp[]. So sánh nhận hai đối số mà chúng tôi muốn thực hiện thao tác so sánh và nó trả về một giá trị số nguyên theo kết quả.
Nó trả về -1 nếu đối số thứ nhất nhỏ hơn đối số thứ hai, trả về 1 nếu đối số thứ nhất lớn hơn đối số thứ hai và trả về 0 nếu cả hai đối số bằng nhau. Chức năng cmp[] này chỉ hoạt động trên Python phiên bản 2. x, nếu bạn cố gắng sử dụng nó trong phiên bản 3. x nó báo lỗi.

NameError: name 'cmp' is not defined
[Finished in 0.1s with exit code 1]

Ví dụ

Xem mã dưới đây

a=60
b=90
print[cmp[a,b]]
output:
-1

Trong khi so sánh các số nguyên cmp[] chỉ thực hiện phép trừ đối số i của nó. e trong trường hợp này là a-b, nếu phép trừ là -ve thì nó trả về -1 i. e ab
if subtraction is +ve it returns 1 i.e a>b

a=90
b=60
print[cmp[a,b]]
output:
1

a="abc"
b="abc"
print[cmp[a,b]]
output:
0

khi cả hai đối số đều bằng nhau. e a=b, nó trả về 0 làm đầu ra. Ở đây, chúng tôi đã chuyển hai loại giá trị chuỗi. Ở đây, cmp[] so sánh cả chuỗi ký tự theo ký tự và nếu tìm thấy giống nhau thì trả về 0

So sánh các đối tượng trong 3. x phiên bản Python

Hàm cmp[] có một nhược điểm đã bị loại bỏ trong các phiên bản sau của Python i. e3. x[x=1,2,3,…]. Bất cứ khi nào chúng tôi cố gắng chuyển một số nguyên và một chuỗi để so sánh, nó sẽ luôn hiển thị chuỗi lớn hơn một số nguyên

a="abc"
b=90
print[cmp[a,b]]
print[cmp[a,b]]
output:
1
-1

bất cứ khi nào so sánh chuỗi và số nguyên, việc so sánh được thực hiện dựa trên tên của các kiểu dữ liệu. Theo mặc định, một chuỗi luôn được coi là lớn hơn một số nguyên [i. e “str”>”int”]

Mô-đun filecmp xác định các chức năng để so sánh các tệp và thư mục, với nhiều sự đánh đổi thời gian/độ chính xác tùy chọn khác nhau. Để so sánh các tệp, hãy xem thêm mô-đun

a=60
b=90
print[cmp[a,b]]
0

Mô-đun filecmp xác định các chức năng sau

filecmp. cmp[f1 , f2 , nông=Đúng]

So sánh các tệp có tên f1 và f2, trả về

a=60
b=90
print[cmp[a,b]]
2 nếu chúng có vẻ bằng nhau, ngược lại là
a=60
b=90
print[cmp[a,b]]
3

Nếu nông là đúng và chữ ký

a=60
b=90
print[cmp[a,b]]
4 [loại tệp, kích thước và thời gian sửa đổi] của cả hai tệp giống hệt nhau, thì các tệp được coi là bằng nhau

Mặt khác, các tệp được coi là khác nếu kích thước hoặc nội dung của chúng khác nhau

Lưu ý rằng không có chương trình bên ngoài nào được gọi từ chức năng này, mang lại tính di động và hiệu quả

Hàm này sử dụng bộ đệm để so sánh trong quá khứ và kết quả, với các mục nhập bộ đệm bị vô hiệu nếu thông tin

a=60
b=90
print[cmp[a,b]]
4 cho tệp thay đổi. Toàn bộ bộ đệm có thể bị xóa bằng cách sử dụng
a=60
b=90
print[cmp[a,b]]
6

filecmp. tệp cmp[dir1 , dir2 , phổ biến , nông=Đúng]

So sánh các tệp trong hai thư mục dir1 và dir2 có tên được đặt theo tên chung

Trả về ba danh sách tên tệp. phù hợp, không phù hợp, lỗi. match chứa danh sách các tệp khớp, mismatch chứa tên của những tệp không khớp và error liệt kê tên của các tệp không thể so sánh. Các tệp được liệt kê trong lỗi nếu chúng không tồn tại trong một trong các thư mục, người dùng không có quyền đọc chúng hoặc nếu việc so sánh không thể thực hiện được vì một số lý do khác

Tham số nông có cùng ý nghĩa và giá trị mặc định như đối với filecmp0

Ví dụ: filecmp1 sẽ so sánh filecmp2 với filecmp3 và filecmp4 với filecmp5. filecmp6 và filecmp7 mỗi cái sẽ nằm trong một trong ba danh sách được trả về

filecmp. clear_cache[]

Xóa bộ đệm filecmp. Điều này có thể hữu ích nếu một tệp được so sánh quá nhanh sau khi nó được sửa đổi để nó nằm trong độ phân giải mtime của hệ thống tệp cơ bản

Mới trong phiên bản 3. 4

Lớp filecmp

lớp filecmp. dircmp[a , b, ignore=None, hide=None]

Xây dựng một đối tượng so sánh thư mục mới, để so sánh các thư mục a và b. bỏ qua là danh sách các tên cần bỏ qua và mặc định là filecmp9. hide là danh sách các tên cần ẩn và mặc định là filecmp0

Lớp filecmp8 so sánh các tệp bằng cách thực hiện so sánh nông như được mô tả cho filecmp0

Lớp filecmp8 cung cấp các phương thức sau

báo cáo[]

In [đến filecmp4] so ​​sánh giữa a và b

report_partial_closure[]

In so sánh giữa a và b và các thư mục con trực tiếp phổ biến

report_full_closure[]

In so sánh giữa a và b và các thư mục con chung [đệ quy]

Lớp filecmp8 cung cấp một số thuộc tính thú vị có thể được sử dụng để lấy nhiều thông tin khác nhau về các cây thư mục được so sánh

Lưu ý rằng thông qua móc nối filecmp6, tất cả các thuộc tính đều được tính toán một cách lười biếng, vì vậy sẽ không bị phạt về tốc độ nếu chỉ sử dụng những thuộc tính nhẹ để tính toán

trái

Thư mục một

đúng

thư mục b

left_list

Các tệp và thư mục con trong a, được lọc bằng cách ẩn và bỏ qua

right_list

Các tệp và thư mục con trong b, được lọc bằng cách ẩn và bỏ qua

chung

Tệp và thư mục con trong cả a và b

left_only

Các tệp và thư mục con chỉ trong một

right_only

Tệp và thư mục con chỉ trong b

common_dirs

Thư mục con trong cả a và b

common_files

Các tệp trong cả a và b

common_funny

Tên trong cả a và b, sao cho loại khác nhau giữa các thư mục hoặc tên mà

a=60
b=90
print[cmp[a,b]]
4 báo cáo lỗi

same_files

Các tệp giống hệt nhau ở cả a và b, sử dụng toán tử so sánh tệp của lớp

diff_files

Các tệp nằm trong cả a và b, có nội dung khác nhau tùy theo toán tử so sánh tệp của lớp

funny_files

Các tệp ở cả a và b, nhưng không thể so sánh được

thư mục con

Từ điển ánh xạ tên trong các phiên bản filecmp8 đến filecmp8 [hoặc phiên bản MyDirCmp nếu phiên bản này thuộc loại MyDirCmp, một lớp con của filecmp8]

Đã thay đổi trong phiên bản 3. 10. Các mục nhập trước đây luôn là phiên bản filecmp8. Bây giờ các mục có cùng loại với self, nếu self là một lớp con của filecmp8.

filecmp. DEFAULT_IGNORES

Mới trong phiên bản 3. 4

Danh sách các thư mục bị bỏ qua bởi filecmp8 theo mặc định

Dưới đây là một ví dụ đơn giản về việc sử dụng thuộc tính

a=60
b=90
print[cmp[a,b]]
04 để tìm kiếm đệ quy qua hai thư mục để hiển thị các tệp phổ biến khác nhau

CMP trong Python là gì?

Cmp[] là một phần của thư viện chuẩn python dùng để so sánh hai số nguyên . Kết quả so sánh là -1 nếu số thứ nhất nhỏ hơn số thứ hai và 1 nếu số thứ nhất lớn hơn số thứ hai. Nếu cả hai đều bằng nhau thì kết quả của cmp[] bằng không.

CMP có sẵn trong Python 3 không?

Trăn. chức năng cmp[] . cmp[] không hoạt động trong python 3 .

CMP trong lập trình là gì?

Thực hiện so sánh từ điển trên hai phạm vi đầu vào . Lặp lại r1 và r2 theo từng bước, cmp so sánh từng phần tử e1 của r1 với phần tử tương ứng e2 trong r2.

Tại sao nên sử dụng Danh sách CMP 1 và 2 trong Python?

Hàm cmp[] được sử dụng để so sánh hai phần tử hoặc danh sách và trả về một giá trị dựa trên các đối số được truyền vào

Chủ Đề