Chúng tôi đã thảo luận về các cách tiếp cận nhau để thay đổ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 thư viện hàm?
Nội dung chính Hiển thị
- 1. hoán đổi 2 biến
- 2. so sánh kép
- 3. cho phép gán 1 biến đi kèm với điều kiện
- 4. toán tử _
- 5. đơn giản hóa điều kiện if
- 7. enum trong python
- 8. Find the repeat value many times most in list
- 9. đếm số lần xuất hiện trong danh sách
- 10. Boolean
- 11. Truyện tranh XKCD
- 12. liệt kê
- 13. Check tra 2 from is anagram [đổi chữ]
con trăn. Trong Python, có một cấu trúc đơn giản và cú pháp gọn gàng để thay đổ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
// Swap using bitwise XOR [Wrong Solution in C/C++]
x ^= y ^= x ^= y;
Giải pháp trên là sai trong C / C++ vì nó gây ra hành động không được định nghĩa [trình biên dịch có thể tự động 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 xác định nghĩa là nếu không có điểm thứ tự 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 điểm thứ tự. Vì vậy, giải pháp sửa đổi là
// Swap using bitwise XOR [Correct Solution in C/C++]
// sequence point introduced using comma.
[x ^= y], [y ^= x], [x ^= y];
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 khi 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;” . Nó đưa ra kết quả x = 0. Tuy nhiên, chúng ta có thể sử dụng “x = x ^ y ^ [y = x];” . If 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 là 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
# -----------------------------------------------------------
#Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam
#@author cafedevn
#Contact:
#Fanpage: //www.facebook.com/cafedevn
#Group: //www.facebook.com/groups/cafedev.vn/
#Instagram: //instagram.com/cafedevn
#Twitter: //twitter.com/CafedeVn
#Linkedin: //www.linkedin.com/in/cafe-dev-407054199/
#Pinterest: //www.pinterest.com/cafedevvn/
#YouTube: //www.youtube.com/channel/UCE7zpY_SlHGEgo67pHxqIoA/
# -----------------------------------------------------------
# Python program to swap two variables in single line
x = 5
y = 10
x, y = y, x
print "After Swapping values of x and y are", x, y
Kết quả
After Swapping values of x and y are 10 5
Giải pháp thay thế
- C++ cũng cung cấp hàm thư viện swap[]
- b = [a + b] – [a = b];
- a + = b – [b = a];
- a = a * b / [b = a]
Nguồn và Tài liệu tiếng anh tham khảo
- w3school
- con trăn. tổ chức
- chuyên viên máy tính
Tài liệu từ cafedev
- Trọn bộ tự học Python từ cơ bản tăng cao tại đây nha
- Ebook về python tại đây
- Các chuỗi tự học lập trình khác nhau
Nếu 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
- Nhóm Facebook
- trang chủ
- YouTube
- liên kết
- Trang chủ
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
- Đăng nhập
- Đăng ký
với mạng xã hội của bạn
HOẶC
Gửi lại email kich hoạt
Không phải là một thành viên?
Tôi không thể nhớ mật khẩu của mình
Trang web này được bảo vệ bởi reCAPTCHA và Điều khoản sử dụng được áp dụng
Tôi đồng ý với Điều khoản và Điều kiện của CodeLearn
Đã đăng ký?
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
1. hoán đổi 2 biến
with a few language thì việc hoán đổi giá trị của 2 biến có thể coi là đơn giản nhưng không rút gọn được, với python ta hoàn toàn có thể hoán đổi giá trị của 2 biến chỉ bằng một lệnh gán
>>> x, y = 10, 20
>>> print[x, y]
>>> x, y = y, x
>>> print[x, y]
kết quả sẽ là ________ 24 và [20,10]` dựa vào đây sẽ có 1 cách rất tuyệt để tìm ra giá trị ở vị trí thứ n trong dãy Fibonaci
a, b = 0, 1
for i in range[n]:
a, b = b, a + b
2. so sánh kép
>>> n = 10
>>> result = 1 < n < 20
>>> print[result]
True
>>> result = 1 > n >> print[result]
False
3. cho phép gán 1 biến đi kèm với điều kiện
________số 84. toán tử _
thanh 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
>>> 2 + 1
3
>>> _
3
>>> print _
3
5. đơn giản hóa điều kiện if
khi viết một điều kiện nếu thay vì viết
// Swap using bitwise XOR [Correct Solution in C/C++]
// sequence point introduced using comma.
[x ^= y], [y ^= x], [x ^= y];
0ta could write to
// Swap using bitwise XOR [Correct Solution in C/C++]
// sequence point introduced using comma.
[x ^= y], [y ^= x], [x ^= y];
0đối với
# -----------------------------------------------------------
#Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam
#@author cafedevn
#Contact:
#Fanpage: //www.facebook.com/cafedevn
#Group: //www.facebook.com/groups/cafedev.vn/
#Instagram: //instagram.com/cafedevn
#Twitter: //twitter.com/CafedeVn
#Linkedin: //www.linkedin.com/in/cafe-dev-407054199/
#Pinterest: //www.pinterest.com/cafedevvn/
#YouTube: //www.youtube.com/channel/UCE7zpY_SlHGEgo67pHxqIoA/
# -----------------------------------------------------------
# Python program to swap two variables in single line
x = 5
y = 10
x, y = y, x
print "After Swapping values of x and y are", x, y
5 ta cũng có thể dùng # -----------------------------------------------------------
#Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam
#@author cafedevn
#Contact:
#Fanpage: //www.facebook.com/cafedevn
#Group: //www.facebook.com/groups/cafedev.vn/
#Instagram: //instagram.com/cafedevn
#Twitter: //twitter.com/CafedeVn
#Linkedin: //www.linkedin.com/in/cafe-dev-407054199/
#Pinterest: //www.pinterest.com/cafedevvn/
#YouTube: //www.youtube.com/channel/UCE7zpY_SlHGEgo67pHxqIoA/
# -----------------------------------------------------------
# Python program to swap two variables in single line
x = 5
y = 10
x, y = y, x
print "After Swapping values of x and y are", x, y
6 thay vì # -----------------------------------------------------------
#Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam
#@author cafedevn
#Contact:
#Fanpage: //www.facebook.com/cafedevn
#Group: //www.facebook.com/groups/cafedev.vn/
#Instagram: //instagram.com/cafedevn
#Twitter: //twitter.com/CafedeVn
#Linkedin: //www.linkedin.com/in/cafe-dev-407054199/
#Pinterest: //www.pinterest.com/cafedevvn/
#YouTube: //www.youtube.com/channel/UCE7zpY_SlHGEgo67pHxqIoA/
# -----------------------------------------------------------
# Python program to swap two variables in single line
x = 5
y = 10
x, y = y, x
print "After Swapping values of x and y are", x, y
76. Đảo ngược
Trong python ta có thể dễ dàng đảo ngược một chuỗi hoặc một danh sách
// Swap using bitwise XOR [Correct Solution in C/C++]
// sequence point introduced using comma.
[x ^= y], [y ^= x], [x ^= y];
17. enum trong python
Trong python có 1 cách rất đơn giản để sử dụng enum
// Swap using bitwise XOR [Correct Solution in C/C++]
// sequence point introduced using comma.
[x ^= y], [y ^= x], [x ^= y];
28. Find the repeat value many times most in list
// Swap using bitwise XOR [Correct Solution in C/C++]
// sequence point introduced using comma.
[x ^= y], [y ^= x], [x ^= y];
3trong danh sách hợp trường có 2 giá trị có số lần lặp lại nhiều nhất thì hàm trên sẽ trả về giá trị nhỏ hơn
// Swap using bitwise XOR [Correct Solution in C/C++]
// sequence point introduced using comma.
[x ^= y], [y ^= x], [x ^= y];
49. đếm số lần xuất hiện trong danh sách
// Swap using bitwise XOR [Correct Solution in C/C++]
// sequence point introduced using comma.
[x ^= y], [y ^= x], [x ^= y];
510. Boolean
Boolean cũng có thể được truyền dưới dạng một số int
// Swap using bitwise XOR [Correct Solution in C/C++]
// sequence point introduced using comma.
[x ^= y], [y ^= x], [x ^= y];
6Với trăn 2. 7 thậm chí có thể gán giá trị cho
# -----------------------------------------------------------
#Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam
#@author cafedevn
#Contact:
#Fanpage: //www.facebook.com/cafedevn
#Group: //www.facebook.com/groups/cafedev.vn/
#Instagram: //instagram.com/cafedevn
#Twitter: //twitter.com/CafedeVn
#Linkedin: //www.linkedin.com/in/cafe-dev-407054199/
#Pinterest: //www.pinterest.com/cafedevvn/
#YouTube: //www.youtube.com/channel/UCE7zpY_SlHGEgo67pHxqIoA/
# -----------------------------------------------------------
# Python program to swap two variables in single line
x = 5
y = 10
x, y = y, x
print "After Swapping values of x and y are", x, y
8// Swap using bitwise XOR [Correct Solution in C/C++]
// sequence point introduced using comma.
[x ^= y], [y ^= x], [x ^= y];
711. Truyện tranh XKCD
// Swap using bitwise XOR [Correct Solution in C/C++]
// sequence point introduced using comma.
[x ^= y], [y ^= x], [x ^= y];
8khi bạn gõ cmd này trong terminal, bạn sẽ nhận được 1 truyện tranh trong trình duyệt như liên kết này https. //xkcd. com/353/
12. liệt kê
// Swap using bitwise XOR [Correct Solution in C/C++]
// sequence point introduced using comma.
[x ^= y], [y ^= x], [x ^= y];
9# -----------------------------------------------------------
#Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam
#@author cafedevn
#Contact:
#Fanpage: //www.facebook.com/cafedevn
#Group: //www.facebook.com/groups/cafedev.vn/
#Instagram: //instagram.com/cafedevn
#Twitter: //twitter.com/CafedeVn
#Linkedin: //www.linkedin.com/in/cafe-dev-407054199/
#Pinterest: //www.pinterest.com/cafedevvn/
#YouTube: //www.youtube.com/channel/UCE7zpY_SlHGEgo67pHxqIoA/
# -----------------------------------------------------------
# Python program to swap two variables in single line
x = 5
y = 10
x, y = y, x
print "After Swapping values of x and y are", x, y
013. Check tra 2 from is anagram [đổi chữ]
# -----------------------------------------------------------
#Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam
#@author cafedevn
#Contact:
#Fanpage: //www.facebook.com/cafedevn
#Group: //www.facebook.com/groups/cafedev.vn/
#Instagram: //instagram.com/cafedevn
#Twitter: //twitter.com/CafedeVn
#Linkedin: //www.linkedin.com/in/cafe-dev-407054199/
#Pinterest: //www.pinterest.com/cafedevvn/
#YouTube: //www.youtube.com/channel/UCE7zpY_SlHGEgo67pHxqIoA/
# -----------------------------------------------------------
# Python program to swap two variables in single line
x = 5
y = 10
x, y = y, x
print "After Swapping values of x and y are", x, y
114. công tắc
Trong python không có
# -----------------------------------------------------------
#Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam
#@author cafedevn
#Contact:
#Fanpage: //www.facebook.com/cafedevn
#Group: //www.facebook.com/groups/cafedev.vn/
#Instagram: //instagram.com/cafedevn
#Twitter: //twitter.com/CafedeVn
#Linkedin: //www.linkedin.com/in/cafe-dev-407054199/
#Pinterest: //www.pinterest.com/cafedevvn/
#YouTube: //www.youtube.com/channel/UCE7zpY_SlHGEgo67pHxqIoA/
# -----------------------------------------------------------
# Python program to swap two variables in single line
x = 5
y = 10
x, y = y, x
print "After Swapping values of x and y are", x, y
9 nhưng ta có thể sử dụng từ điển để giải quyết vấn đề này# -----------------------------------------------------------
#Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam
#@author cafedevn
#Contact:
#Fanpage: //www.facebook.com/cafedevn
#Group: //www.facebook.com/groups/cafedev.vn/
#Instagram: //instagram.com/cafedevn
#Twitter: //twitter.com/CafedeVn
#Linkedin: //www.linkedin.com/in/cafe-dev-407054199/
#Pinterest: //www.pinterest.com/cafedevvn/
#YouTube: //www.youtube.com/channel/UCE7zpY_SlHGEgo67pHxqIoA/
# -----------------------------------------------------------
# Python program to swap two variables in single line
x = 5
y = 10
x, y = y, x
print "After Swapping values of x and y are", x, y
215. Trôi nổi
# -----------------------------------------------------------
#Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam
#@author cafedevn
#Contact:
#Fanpage: //www.facebook.com/cafedevn
#Group: //www.facebook.com/groups/cafedev.vn/
#Instagram: //instagram.com/cafedevn
#Twitter: //twitter.com/CafedeVn
#Linkedin: //www.linkedin.com/in/cafe-dev-407054199/
#Pinterest: //www.pinterest.com/cafedevvn/
#YouTube: //www.youtube.com/channel/UCE7zpY_SlHGEgo67pHxqIoA/
# -----------------------------------------------------------
# Python program to swap two variables in single line
x = 5
y = 10
x, y = y, x
print "After Swapping values of x and y are", x, y
3Điều này không thể là 1 thủ thuật tuy nhiên đây là một điều cần lưu ý là số hữu tỷ lệ 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 nổi thì phần lớn đây là một giá trị sáp . // tài liệu. con trăn. org/3/hướng dẫn/dấu phẩy động. html#tut-fp-issues