Hướng dẫn swap trong python
Trong bài viết này, mình xin giới thiệu 1 số thủ thuật hay mà mình biết trong Python Show 1. swap 2 biếnvới một vài ngôn ngữ thì việc swap giá trị của 2 biến có thể coi là đơn giản nhưng không về ngắn gọn, với python ta hoàn toàn có thể swap giá trị của 2 biến chỉ bằng một lệnh gán
kết quả sẽ là
2. so sánh kép
3. phép gán 1 biến đi kèm với điều kiện
4. toán tử _toán từ `_1 sẽ trả về kết quả của biểu thức cuối cùng được thực hiện
5. đơn giản hóa điều kiện ifkhi viết một điều kiện if thay vì viết
ta có thể viết thành
đối với 6.ReverseTrong python ta có thể dễ dàng reverse một string hoặc một list
7. enum trong pythonTrong python có 1 cách rất đơn giản để sử dụng enum
8. Tìm giá trị lặp lại nhiều lần nhất trong list
trong trường hợp list có 2 giá trị có số lần lặp lại nhiều nhất thì hàm trên sẽ trả lại giá trị nhỏ hơn
9. đếm số lần xuất hiện trong list
10. BooleanBoolean cũng có thể được truyền như một số int
Với python 2.7 ta thậm chí có thể gán giá trị cho
11. XKCD Comics
khi bạn type cmd này trong terminal, bạn sẽ nhận được 1 comic trong trình duyệt như link này https://xkcd.com/353/ 12. enumerate
13. Kiểm tra 2 từ là anagram (đổi chữ)
14. switchTrong python không có
15. Float
Đây có thể không phải là 1 thủ thuật tuy nhiên đây là một điều cần lưu ý là số hữu tỷ không được biểu diễn chính xác trên máy tính và khi ta thấy một giá trị có kiểu float thì đa phần đây là một giá trị xấp xỉ chứ không phải là một giá trị chính xác, để giải thích rõ thì bạn có thể xem tại https://docs.python.org/3/tutorial/floatingpoint.html#tut-fp-issues Chúng tôi đã thảo luận về các cách tiếp cận khác nhau để trao đổi hai số nguyên mà không cần biến tạm thời. Làm thế nào để trao đổi trong một dòng duy nhất mà không sử dụng hàm thư viện? Python: Trong Python, có một cấu trúc đơn giản và cú pháp gọn gàng để hoán đổi các biến, chúng ta chỉ cần viết ra “x,y=y, x”. C / C ++: Dưới đây là một giải pháp cổ điển thường được cung cấp
Giải pháp trên là sai trong C / C ++ vì nó gây ra hành vi không được định nghĩa (trình biên dịch có thể tự do hoạt động theo bất kỳ cách nào). Lý do là, sửa đổi một biến nhiều lần trong một biểu thức gây ra hành vi không được định nghĩa nếu không có sequence point giữa các thay đổi. Tuy nhiên, chúng ta có thể sử dụng dấu phẩy để giới thiệu các sequence point. Vì vậy, giải pháp sửa đổi là
Java: Trong Java, các quy tắc để đánh giá biểu thức phụ được xác định rõ ràng. Toán hạng tay trái luôn được đánh giá trước toán hạng tay phải (Xem phần này để biết thêm chi tiết). Trong Java, biểu thức “x ^ = y ^ = x ^ = y;” không tạo ra kết quả chính xác theo quy tắc Java. Nó đưa ra kết quả x = 0. Tuy nhiên, chúng ta có thể sử dụng “x = x ^ y ^ (y = x);” Lưu ý các biểu thức được đánh giá từ trái sang phải. Nếu ban đầu x = 5 và y = 10, biểu thức tương đương với “ x = 5 ^ 10 ^ (y = 5);”. Lưu ý rằng chúng ta không thể sử dụng điều này như trong C / C ++, nó không được định nghĩa liệu toán hạng trái hay toán hạng phải được thực thi cho bất kỳ toán tử nào (Xem phần này để biết thêm chi tiết)
Kết quả:
Giải pháp thay thế:
Nguồn và Tài liệu tiếng anh tham khảo:
Tài liệu từ cafedev:
Nếu bạn thấy hay và hữu ích, bạn có thể tham gia các kênh sau của cafedev để nhận được nhiều hơn nữa:
Chào thân ái và quyết thắng! Đăng ký kênh youtube để ủng hộ Cafedev nha các bạn, Thanks you! |