Python là một ngôn ngữ khá phổ biến trong số những ngôn ngữ khác vì sự đơn giản và dễ đọc của nó. Đây là một trong những ngôn ngữ đơn giản nhất có thể chọn làm ngôn ngữ đầu tiên của bạn. Nếu bạn là người mới bắt đầu với các khái niệm cơ bản về python thì đây là thời điểm tốt nhất để học cách code tốt hơn.
Có rất nhiều thủ thuật trong Python giúp cải thiện chương trình của bạn tốt hơn trước. Bài viết này sẽ giúp bạn biết nhiều thủ thuật và mẹo có sẵn trong Python. Thực hành chúng liên tục cho đến khi nó trở thành một phần trong thói quen lập trình của bạn.
Trick 1 - Gán giá trị cho nhiều biến
Python cho phép chúng ta gán giá trị cho nhiều biến trong một dòng. Các biến được cách nhau bởi dấu phẩy. Một dòng code gán giá trị cho nhiều biến có rất nhiều lợi ích. Nó có thể được sử dụng để gán nhiều giá trị cho nhiều biến hoặc nhiều giá trị cho một biến duy nhất. Chúng ta hãy thực hiện một câu lệnh bài toán trong đó chúng ta phải gán các giá trị 50 và 60 cho các biến a và b. Đoạn code thông thường sẽ biểu diễn như sau:
a = 50
b = 60
print(a,b)
print(type(a))
print(type(b))
Output
50 60
<class 'int'>
<class 'int'>
Condition I - Giá trị bằng các biến
Khi các biến và giá trị của nhiều phép gán bằng nhau, mỗi giá trị sẽ được lưu trữ trong tất cả các biến.
a , b = 50 , 60
print(a,b)
print(type(a))
print(type(b))
Output
50 60
<class 'int'>
<class 'int'>
Cả 2 chương trình đều cho kết quả như nhau. Đây là lợi ích của việc sử dụng nhiều phép gán trên cùng 1 dòng.
Condition II - Giá trị nhiều hơn biến
Chúng ta tăng số lượng giá trị được gán trong chương trình trước. Nhiều giá trị có thể được gán cho một biến duy nhất. Vậy nên chúng ta phải sử dụng dấu sao * trước tên biến.
a , *b = 50 , 60 , 70
print(a)
print(b)
print(type(a))
print(type(b))
Output
50
[60, 70]
<class 'int'>
<class 'list'>
Giá trị đầu tiên sẽ được gán cho biến đầu tiên. Biến thứ hai sẽ nhận một tập hợp các giá trị từ các giá trị đã cho. Thao tác này sẽ tạo một đối tượng kiểu danh sách.
Condition III - Một giá trị gán cho nhiều biến
Chúng ta có thể gán một giá trị cho nhiều biến. Mỗi biến sẽ được cách nhau bởi dấu bằng =.
a = b = c = 50
print(a,b,c)
print(type(a))
print(type(b))
print(type(c))
Output
50 50 50
<class 'int'>
<class 'int'>
<class 'int'>
Trick 2 - Hoán đổi 2 biến
Hoán đổi là quá trình trao đổi các giá trị của hai biến với nhau. Điều này có thể hữu ích trong nhiều hoạt động trong khoa học máy tính. Ở đây, tôi đã viết hai phương pháp chính được lập trình viên sử dụng để hoán đổi các giá trị cũng như giải pháp tối ưu.
Phương pháp I - Sử dụng một biến tạm thời
Phương pháp này sử dụng một biến tạm thời để lưu trữ một số dữ liệu. Đoạn code sau được viết với tên biến tạm thời:
a , b = 50 , 60
print(a,b)
temp = a+b #a=50 b=60 temp=110
b = a #a=50 b=50 temp=110
a = temp-b #a=60 b=50 temp=110
print("After swapping:",a,b)
Output
50 60
After swapping: 60 50
Phương pháp II - Không sử dụng biến tạm thời
Đoạn code sau hoán đổi biến mà không sử dụng biến tạm thời:
a , b = 50 , 60
print(a,b)
a = a+b #a=110 b=60
b = a-b #a=110 b=50
a = a-b #a=60 b=50
print("After swapping:",a,b)
Output
50 60
After swapping: 60 50
Phương pháp III - Giải pháp tối ưu trong Python
Đây là một cách tiếp cận khác để hoán đổi các biến bằng Python. Trong phần trước, chúng ta đã tìm hiểu về nhiều phép gán. Chúng ta có thể sử dụng khái niệm hoán đổi.
a , b = 50 , 60
print(a,b)
a , b = b , a
print("After swapping",a,b)
Output
50 60
After swapping 60 50
Trick 3 - Đảo ngược một chuỗi
Có một trick thú vị cực cool để đảo ngược một chuỗi trong Python. Khái niệm được sử dụng để đảo ngược một chuỗi được gọi là cắt chuỗi. Bất kỳ chuỗi nào cũng có thể được đảo ngược bằng cách sử dụng ký hiệu [:: - 1] sau tên biến.
my_string = "MY STRING"
rev_string = my_string[::-1]
print(rev_string)
Output
Trick 4 - Tách các từ trong một dòng
Không yêu cầu thuật toán đặc biệt để tách các từ trong một dòng. Chúng ta có thể sử dụng từ khóa split () cho mục đích này. Ở đây tôi đã viết hai phương pháp để tách các từ.
Phương pháp I - Sử dụng lặp lại
my_string = "This is a string in Python"
start = 0
end = 0
my_list = []
for x in my_string:
end=end+1
if(x==' '):
my_list.append(my_string[start:end])
start=end+1
my_list.append(my_string[start:end+1])
print(my_list)
Output
['This ', 'is ', 'a ', 'string ', 'in ', 'Python']
Phương pháp II - Sử dụng hàm tách
my_string = "This is a string in Python"
my_list = my_string.split(' ')
print(my_list)
Output
['This ', 'is ', 'a ', 'string ', 'in ', 'Python']
Trick 5 - Liệt kê các từ trên một dòng
Đây là quá trình ngược lại với quá trình trước đó. Trong phần này, chúng ta sẽ chuyển đổi một danh sách các từ thành một dòng duy nhất bằng cách sử dụng hàm nối. Cú pháp để sử dụng hàm tham gia được đưa ra dưới đây.
Cú pháp: “” .join (chuỗi)
my_list = ['This' , 'is' , 'a' , 'string' , 'in' , 'Python']
my_string = " ".join(my_list)
Output
This is a string in Python
Trick 6 - In một chuỗi nhiều lần
Chúng ta có thể sử dụng toán tử nhân để in một chuỗi nhiều lần. Đây là một cách rất hiệu quả để lặp lại một chuỗi.
n = int(input("How many times you need to repeat:"))
my_string = "Python\n"
print(my_string*n)
Output
How many times you need to repeat:3
Python
Python
Python
Trick 7 - Nối hai chuỗi bằng toán tử cộng
Việc nối các chuỗi khác nhau có thể được thực hiện mà không cần sử dụng hàm nối. Chúng ta chỉ có thể sử dụng toán tử cộng (+ ) để thực hiện việc này.
a = "I Love "
b = "Python"
print(a+b)
Output
Trick 8 - Nhiều hơn một toán tử có điều kiện
Hai kết hợp hai hoặc nhiều toán tử điều kiện trong một chương trình, chúng ta có thể sử dụng các toán tử logic. Nhưng kết quả tương tự có thể đạt được bằng cách xâu chuỗi các toán tử. Ví dụ, nếu chúng ta cần in một cái gì đó khi một biến có giá trị lớn hơn 10 và nhỏ hơn 20, đoạn code sẽ giống như sau.
a = 15
if (a>10 and a<20):
print("Hi")
Chúng ta có thể kết hợp toán tử điều kiện thành một biểu thức duy nhất.
a = 15
if (10 < a < 20):
print("Hi")
Output
Trick 9 - Tìm phần tử thường gặp nhất trong danh sách
Phần tử xuất hiện hầu hết thời gian trong danh sách thì nó sẽ là phần tử thường xuyên nhất trong danh sách. Đoạn code sau sẽ giúp bạn lấy phần tử thường xuyên nhất từ danh sách.
my_list = [1,2,3,1,1,4,2,1]
most_frequent = max(set(my_list),key=my_list.count)
print(most_frequent)
Output
Trick 10 - Tìm sự xuất hiện của tất cả các phần tử trong danh sách
Code trước đó sẽ cho giá trị thường xuyên nhất. Nếu chúng ta cần biết sự xuất hiện của tất cả phần tử duy nhất trong danh sách, thì chúng ta có thể chuyển sang mô-đun thu thập. Các bộ sưu tập là một module tuyệt vời trong Python mang lại các tính năng tuyệt vời. Phương thức
đưa ra một từ điển với cặp phần tử và sự xuất hiện.
from collections import Counter
my_list = [1,2,3,1,4,1,5,5]
print(Counter(my_list))
Output
Counter({1: 3, 5: 2, 2: 1, 3: 1, 4: 1})
Trick 11 - Kiểm tra đảo chữ cái của hai chuỗi
Hai chuỗi là đảo ngữ nếu một chuỗi được tạo thành từ các ký tự trong chuỗi kia. Chúng ta có thể sử dụng giống phương thức
Counter
từ module bộ sưu tập.
from collections import Counter
my_string_1 = "RACECAR"
my_string_2 = "CARRACE"
if(Counter(my_string_1) == Counter(my_string_2)):
print("Anagram")
else:
print("Not Anagram")
Output
Trick 12 - Tạo chuỗi số với range
Hàm range() hữu ích để tạo một chuỗi số. Nó có thể hữu ích trong nhiều đoạn code.
Cú pháp: range (bắt đầu, kết thúc, bước)
Chúng ta hãy thử tạo một danh sách các số chẵn.
my_list = list(range(2,20,2))
print(my_list)
Output
[2, 4, 6, 8, 10, 12, 14, 16, 18]
Trick 13 - Lặp lại phần tử nhiều lần
Tương tự như phép nhân chuỗi, chúng ta có thể tạo một danh sách chứa đầy một phần tử nhiều lần bằng cách sử dụng toán tử nhân.
my_list = [3]
my_list = my_list*5
print(my_list)
Output
Trick 14 - Sử dụng các điều kiện trong toán tử bậc ba
Trong hầu hết thời gian, chúng tôi sử dụng các cấu trúc điều kiện lồng nhau trong Python. Thay vì sử dụng cấu trúc lồng nhau, một dòng đơn có thể được thay thế với sự trợ giúp của toán tử bậc ba.
Cú pháp: Statement1 if True else Statement2
age = 25
print("Eligible") if age>20 else print("Not Eligible")
Output
Trick 15 - Đọc hiểu danh sách với Python
Đọc hiểu danh sách là một cách rất nhỏ gọn để tạo một danh sách từ một danh sách khác. Cái đầu tiên được viết bằng cách lặp lại đơn giản và cái thứ hai được tạo bằng cách sử dụng khả năng hiểu danh sách.
square_list = []
for x in range(1,10):
temp = x**2
square_list.append(temp)
print(square_list)
Output
[1, 4, 9, 16, 25, 36, 49, 64, 81]
Sử dụng tính năng đọc hiểu danh sách
square_list = [x**2 for x in range(1,10)]
print(square_list)
Output
[1, 4, 9, 16, 25, 36, 49, 64, 81]
Trick 16 - Chuyển đổi có thể thay đổi thành bất biến
Hàm frozenset() được sử dụng để chuyển đổi có thể lặp lại có thể thay đổi thành đối tượng bất biến. Sử dụng điều này, chúng ta có thể đóng băng một đối tượng khỏi thay đổi giá trị của nó.
my_list = [1,2,3,4,5]
my_list = frozenset(my_list)
my_list[3]=7
print(my_list)
Output
Traceback (most recent call last):
File "<string>", line 3, in <module>
TypeError: 'frozenset' object does not support item assignment
Thủ thuật 17 - Làm tròn với Floor và Ceil
Floor và Ceil là các hàm toán học có thể được sử dụng trên các số thực. Hàm floor trả về một số nguyên nhỏ hơn giá trị động trong khi hàm ceil trả về số nguyên lớn hơn giá trị động. Để sử dụng các hàm này, chúng ta phải nhập module toán học.
import math
my_number = 18.7
print(math.floor(my_number))
print(math.ceil(my_number))
Output
Trick 18 - Trả lại giá trị Boolean
Đôi khi chúng ta phải trả về giá trị boolean bằng cách kiểm tra điều kiện của một số tham số nhất định. Thay vì viết các câu lệnh if else, chúng ta có thể trực tiếp trả về điều kiện. Các chương trình sau sẽ tạo ra cùng một đầu ra.
Sử dụng If Else
def function(n):
if(n>10):
return True
else:
return False
n = int(input())
if(function(n)):
print("Eligible")
else:
print("Not Eligible")
Không sử dụng If Else
def function(n):
return n>10
n = int(input())
print("Eligible") if function(n) else print("Not Eligible")
Output
Trick 19 - Tạo các hàm trong một dòng
Lambda là một hàm ẩn danh trong python tạo hàm trong một dòng. Cú pháp để sử dụng một hàm lambda được đưa ra ở đây.
Cú pháp: lambda đối số: biểu thức
x = lambda a,b,c : a+b+c
print(x(10,20,30))
Output
Trick 20 - Áp dụng hàm cho tất cả các phần tử trong danh sách
Bản đồ là một hàm bậc cao áp dụng một hàm cụ thể cho tất cả các phần tử trong danh sách.
Cú pháp: map (hàm, có thể lặp)
my_list = ["felix", "antony"]
new_list = map(str.capitalize,my_list)
print(list(new_list))
Output
Trick 21 - Sử dụng Lambda với Map
Hàm có thể được thay thế bằng một hàm lambda trong python. Chương trình sau được tạo để tạo bình phương danh sách các số.
my_list = [1, 2, 3, 4, 5]
new_list = map(lambda x: x*x, my_list)
print(list(new_list))
Output
Trick 22 - Trả về nhiều giá trị từ một hàm
Một hàm python có thể trả về nhiều hơn một giá trị mà không cần thêm bất kỳ giá trị nào. Chúng ta chỉ có thể trả về các giá trị bằng cách viết chúng cách nhau bởi dấu phẩy (,).
def function(n):
return 1,2,3,4
a,b,c,d = function(5)
print(a,b,c,d)
Output
Trick 23 - Lọc các giá trị bằng hàm Filter
Filter được sử dụng để lọc một số giá trị từ một đối tượng có thể lặp lại.
Cú pháp: filter (hàm, có thể lặp lại)
def eligibility(age):
return age>=24
list_of_age = [10, 24, 27, 33, 30, 18, 17, 21, 26, 25]
age = filter(eligibility, list_of_age)print(list(age))
Output
Trick 24 - Hợp nhất hai từ điển bằng Python
Trong python, chúng ta có thể hợp nhất hai từ điển mà không cần bất kỳ phương pháp cụ thể nào. Đoạn code dưới đây là một ví dụ để hợp nhất hai từ điển.
dict_1 = {'One':1, 'Two':2}
dict_2 = {'Two':2, 'Three':3}
dictionary = {**dict_1, **dict_2}
print(dictionary)
Output
{'One': 1, 'Two': 2, 'Three': 3}
Trick 25 - Lấy kích thước của một đối tượng
Kích thước bộ nhớ khác nhau tùy thuộc vào loại đối tượng. Chúng ta có thể lấy bộ nhớ của một đối tượng bằng cách sử dụng hàm getizeof () từ module sys.
import sys
a = 5
print(sys.getsizeof(a))
Output
Trick 26 - Kết hợp hai danh sách vào từ điển
Hàm zip có nhiều ưu điểm trong python. Sử dụng hàm zip, chúng ta có thể tạo từ điển từ hai danh sách.
list_1 = ["One","Two","Three"]
list_2 = [1,2,3]
dictionary = dict(zip(list_1, list_2))
print(dictionary)
Output
{'Two': 2, 'One': 1, 'Three': 3}
Trick 27 - Tính toán thời gian thực hiện cho một chương trình
Thời gian là một module hữu ích khác trong python có thể được sử dụng để tính toán thời gian thực thi.
import time
start = time.clock()
for x in range(1000):
pass
end = time.clock()
total = end - start
print(total)
Output
Trick 28 - Loại bỏ các phần tử trùng lặp trong danh sách
Một phần tử xuất hiện nhiều hơn một lần được gọi là phần tử trùng lặp. Chúng ta có thể loại bỏ các phần tử trùng lặp chỉ bằng cách sử dụng typecasting.
my_list = [1,4,1,8,2,8,4,5]
my_list = list(set(my_list))
print(my_list)
Output
Trick 29 - In lịch hàng tháng bằng Python
Phân hệ lịch có nhiều chức năng liên quan đến hoạt động dựa trên ngày tháng. Chúng tôi có thể in lịch hàng tháng bằng cách sử dụng đoạn code sau.
import calendar
print(calendar.month("2020","06"))
Output
June 2020
Mo Tu We Th Fr Sa Su
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
Trick 30 - Lặp lại với hàm zip
Các hàm zip cho phép quá trình lặp lại nhiều hơn một hàm có thể lặp lại bằng cách sử dụng các vòng lặp. Trong đoạn code dưới đây, hai danh sách đang được lặp lại đồng thời.
list_1 = ['a','b','c']
list_2 = [1,2,3]
for x,y in zip(list_1, list_2):
print(x,y)
Output
Cuối cùng,
Tôi hy vọng bạn thích bài viết này. Lưu ý cuối cùng, bạn phải hiểu rằng học các thủ thuật không phải là điều bắt buộc. Nhưng nếu bạn làm như vậy, bạn có thể trở thành độc nhất trong số các lập trình viên khác. Thực hành liên tục là phải trở nên thông thạo trong việc viết mã. Cảm ơn bạn đã đọc bài viết này.
Happy Coding