, October 02, 2022

0 kết quả được tìm thấy

Python Cheat Sheet dành cho người mới Phần 3

  • Đăng bởi  Pum
  •  Jul 29, 2022

  •   14 min reads
Python Cheat Sheet dành cho người mới Phần 3

21. Comprehensions trong Python

List Comprehensions

Là một cú pháp cho phép lập trình viên nhanh chóng tạo ra một biến dữ liệu list mới từ một list cũ hoặc vòng lặp dạng in-line, kết hợp với các điều kiện cho trước.

a = [0, 1, 2, 3]
# b will store values which are 1 greater than the values stored in a
b = [i + 1 for i in a]
print(b)
Output:
[1, 2, 3, 4]

Set Comprehension

Nó là một cú pháp ngắn hơn để tạo một tập hợp mới bằng cách sử dụng các giá trị của một tập hợp hiện có.

a = {0, 1, 2, 3}
 # b will store squares of the elements of a
 b = {i ** 2 for i in a}
 print(b)
 Output:
 {0, 1, 4, 9}

Dict Comprehension

Đây là một cú pháp ngắn hơn để tạo một dictionary mới bằng cách sử dụng các giá trị của một dictionary hiện có.

a = {'Hello':'World', 'First': 1}
 # b stores elements of a in value-key pair format
 b = {val: k for k , val in a.items()}
 print(b)
 Output:
 {'World': 'Hello', 1: 'First'}

22. Thao tác chuỗi (String) trong Python

Escape Sequences

Escape Sequences là các chuỗi ký tự bắt đầu bởi dấu gạch chéo ngược như \n hay \t , nhằm biểu diễn các ký tự vốn không thể biểu diễn theo cách thông thường trong Python.

Ví dụ:

Ký tự đặc biệt (Escape Sequence) Ý nghĩa
\t Ký tự Tab
\n Ký tự xuống dòng
\\ Dấu gạch chéo ngược
\’ Dấu nháy đơn

Multiline Strings

Multiline Strings được sử dụng trong python thông qua dấu ngoặc kép '''

Ví dụ:

a = ''' Hello
       World!
       This is a
       Multiline String.'''
       
print(a)
Output:
Hello
World!
This is a
Multiline String.

Strings Indexing

Các chuỗi trong Python được lập index giống như một list các ký tự, dựa trên việc lập index 0. Bạn có thể truy cập các phần tử (elements) của một chuỗi tại một số index bằng cách sử dụng [] các toán tử (operators).

Chúng ta cùng xem xét một ví dụ về chuỗi giá trị trong Python.

a = "Python"
print(a[0], a[2], a[4])
print(a[-1], a[-3], a[-5])
Output:
P t o
n h y

Strings Slicing

Slicing cũng được thực hiện theo cách tương tự như trong lists.

a = "Hello"
# Slices the string from 0 to 3 indexes
print(a[0:3])
# Slices the string from 3 to -1(same as 4) indexes
print(a[3:-1])
Output:
Hel
l

Chức năng Case Conversion

Các hàm upper ()under () được sử dụng để chuyển đổi một chuỗi ký tự thành chữ hoa hoặc chữ thường tương ứng.

Hàm isupper ()islower () được sử dụng để kiểm tra xem một chuỗi có tất cả chữ hoa hay chữ thường tương ứng hay không.

a = "Hello"
print(a)
# Converts string to uppercase
print(a.upper())
# Converts string to lowercase
print(a.lower())
# Checks if string is uppercase
print(a.isupper())
# Checks if string is lowercase
print(a.islower())
Output:
Hello
HELLO
hello
False
False

Các chức năng tương tự khác:

Hàm số (Function) Ý nghĩa
isspace() Trả về true nếu chuỗi chỉ chứa các ký tự khoảng trắng whitespace
isalnum() Kiểm tra xem tất cả ký tự trong chuỗi có phải là ký tự chữ hoặc số (Alphanumeric) hay không
isalpha() Trả về true nếu chuỗi có ít nhất 1 ký tự và tất cả ký tự là chữ cái
isTitle() Trả về True nếu chuỗi bắt đầu bằng chữ hoa và sau đó phần còn lại của các ký tự là chữ thường

Chức năng join() và split()

Hàm join () hợp nhất các phần tử (elements) của list với một số delimiter string và trả về kết quả dưới dạng một chuỗi (string).

list = ["One", "Two", "Three"]
# join function
s = ','.join(list)
print(s)
Output:
One,Two,Three

Hàm split () chia thành các tokens, dựa trên một số dấu phân cách và trả về kết quả dưới dạng list.

# split function
newList = s.split(',')
print(newList)
Output:
['One', 'Two', 'Three']

Nói chung, một chuỗi (string) có thể được chia (split) thành list bằng phương thức split () và một list có thể được nối (join) với chuỗi (string) bằng phương thức join () như trong hình dưới đây:

String Formatting

Thực hiện hàm str.format () để định dạng chuỗi.

first = "first"
second = "second"
s = "Sunday is the {} day of the week, whereas Monday is the {} day of the week".format(first, second)
print(s)
Output:
Sunday is the first day of the week, whereas Monday is the second day of the week

Template Strings

Template Strings làm cho code trở nên dễ hiểu hơn, vì vậy chúng được khuyến khích sử dụng. Chúng có thể được sử dụng bằng cách Template class từ string module.

Ví dụ:

>>> from string import Template
>>> name = 'Scaler'
>>> t = Template('Hey $name!')
>>> t.substitute(name = name)
'Hey Scaler!'

23. Định dạng ngày (Dates) trong Python

Để xử lý các hoạt động ngày và giờ trong Python, bạn hãy sử dụng mô-đun datetime.

  • time class: bạn có thể biểu diễn các giá trị thời gian.

Ví dụ:

import datetime
   tm = datetime.time(1, 30, 11, 22)
   print(tm)
   Output:
   01:30:11.000022
  • date class: bạn có thể biểu diễn các giá trị ngày.

Ví dụ:

 import datetime
   date = datetime.date(2000, 11, 16)
   print('Date date is ', date.day, ' day of ', date.month, ' month of the year ', date.year)
   Output:
   Date date is  16  day of  11  month of the year  2000
  • Chuyển đổi từ ngày sang giờ: bạn có thể dùng hàm strptime () để chuyển đổi ngày sang thời gian tương ứng.

Ví dụ:

from datetime import datetime
   print(datetime.strptime('15/11/2000', '%d/%m/%Y'))
   Output:
   2000-11-15 00:00:00
  • time.strftime() trong Python: Nó sẽ chuyển đổi một tuple hoặc struct_time đại diện cho thời gian thành một string object.

Ví dụ:

from time import gmtime, strftime
   s = strftime("%a, %d %b %Y %H:%M:%S + 1010", gmtime())
   print(s)
   Output:
   Sun, 28 Nov 2021 18:51:24 + 1010

24. Python RegEx

Regex Matching

re module trong Python cho phép bạn thực hiện hệ thống regex matching.

import re
landline = re.compile(r'\d\d\d\d-\d\d\d\d')
num = landline.search('LandLine Number is 2435-4153')
print('Landline Number is: {}'.format(num.group()))
Output:
Landline Number is: 2435-4153

Parenthesis Grouping

Group là một phần của mẫu regex được đặt trong dấu ngoặc đơn (). Bạn có thể đặt kết quả phù hợp vào các group khác nhau bằng cách sử dụng dấu ngoặc đơn (). Ngoài ra, bạn còn có thể truy cập các group bằng cách sử dụng hàm group ().

import re
landline = re.compile(r'(\d\d\d\d)-(\d\d\d\d)')
num = landline.search('LandLine Number is 2435-4153')
# This will print the first group, which is the entire regex enclosed in the brackets
print(num.group(0))
# This will print the second group, which is the nested regex enclosed in the 1st set of nested brackets
print(num.group(1))
# This will print the third group, which is the nested regex enclosed in the 2nd set of nested brackets
print(num.group(2))
Output:
2435-4153
2435
4153

Regex Symbols trong Python

Các ký hiệu regex có các chức năng khác nhau được đề cập trong bảng dưới đây:

Ký hiệu (Symbol) Matches
+ One or More of the preceding group
* Zero or More of preceding group
? Zero or One of preceding group
^name String must begin with the name
name$ String must end with the name
. Any character except \n
{n} Exactly n of preceding group
{n, } >= n of preceding group
{,n} [0, m] of preceding group
{n, m} [n, m] of preceding group
*? Non Greedy matching of the preceding group
[abc] Any character enclosed in the brackets
[^abc] Any character not enclosed in the brackets
\d, \w, \s Digit, word, or space respectively
\D, \W, \S Anything except digit, word, or space respectively

Ví dụ:

Chúng ta sẽ xác định mẫu regex ở đây.

address = "(\\d*)\\s?(.+),\\s(.+)\\s([A-Z]{2,3})\\s(\\d{4})"

Chúng ta sẽ giải thích một số ký hiệu trong bảng trên:

  • \ s ?: 0 hoặc 1 khoảng trắng.
  • (\ d *): 0 hoặc nhiều ký tự chữ số.
  • (. +): Lớn hơn hoặc bằng 1 ký tự.
  • \ s: Một khoảng trắng
  • ([A-Z] {2, 3}): 2 hoặc 3 bảng chữ cái viết hoa
  • (\ d {4}): ký tự 4 chữ số

25. Debugging trong Python

Raising Exceptions with raise statement

Câu lệnh raise được sử dụng để nêu ra các ngoại lệ (exceptions) bao gồm 3 thành phần:

  • Nâng cao keyword
  • Lệnh gọi hàm Exception ()
  • Tham số của hàm Exception (), thường chứa thông báo lỗi.
raise Exception("Error Occurred!!")
Traceback (most recent call last):
 File "./prog.py", line 1, in <module>
Exception: Error Occurred!!

Traceback dưới dạng chuỗi (String)

Có một hàm trong python được gọi là traceback.format_exc () returns truy xuất được hiển thị bởi Python khi raised Exception không được xử lý dưới String type. Traceback Module được yêu cầu phải được nhập cho mục đích này.

Ví dụ:

import traceback
try:
    raise Exception('Error Message.')
except:
    with open('error.txt', 'w') as error_file:
        error_file.write(traceback.format_exc())
    print('The traceback info was written to error.txt.')
    
Output:
The traceback info was written to error.txt.

Assert Statements trong Python

Câu lệnh Assert / Assertions được sử dụng để gỡ lỗi chương trình và kiểm tra xem code có đang thực hiện hoạt động rõ ràng theo logic của chương trình hay không.

Vì khi có xác nhận không thành công, chương trình sẽ ngay lập tức bị treo, điều đó dẫn đến chúng ta sẽ bị thu hẹp space tìm kiếm lỗi.

  • assert keyword
  • Điều kiện dẫn đến một giá trị boolean
  • Thông báo hiển thị khi xác nhận không thành công
  • Dấu phẩy ngăn cách điều kiện và thông báo hiển thị.
>>> sum = 4
>>> assert sum == 5, 'Addition Error'
Traceback (most recent call last):
 File "<stdin>", line 1, in <module>
AssertionError: Addition Error

Các xác nhận có thể bị vô hiệu hóa bằng cách chuyển tùy chọn -O khi chạy Python như được hiển thị trong các lệnh bên dưới.

$ python -Oc "assert False"
$ python -c "assert False"
Traceback (most recent call last):
 File "<string>", line 1, in <module>
AssertionError

26. Đăng nhập (Log) bằng Python

Log cho phép bạn theo dõi một số sự kiện xảy ra khi có một số phần mềm chạy. Nó sẽ trở nên rất quan trọng trong Software Development, Debugging và Running Softwares.

import logging  
# Create and configues the logger
logging.basicConfig(filename="newfile.log", format='%(asctime)s %(message)s', filemode='w')
# Creates logging object
logg = logging.getLogger()
# Sets the level of logging to DEBUG
logg.setLevel(logging.DEBUG)
# Messages
logg.debug("Debug Message")
logger.warning("Its a Warning")
logger.info("Just an information")

Levels của Logging:

Level Function What it does
DEBUG logging.debug() Used for tracking any events that occur during program execution
INFO logging.info() Confirms the working of things at the end of the module in the program
WARNING logging.warning() Used to flag some issues that might hinder the program from working in the future, but allows it to work for now
ERROR logging.error() Records errors that might have made the program fail at some point
CRITICAL logging.critical() Indicates or flags fatal errors in the program

27. Hàm Lambda trong Python

Hàm Lambda là một hàm được định nghĩa mà không có tên. Trong khi các hàm bình thường sẽ được định nghĩa bằng các từ khóa def trong Python, thì các hàm ẩn danh sẽ được định nghĩa bằng từ khóa lambda .

Chúng ta sẽ cùng tìm hiểu nó với một ví dụ sau,

Xét hàm nhân 2 số:

def mul(a, b):
   return a * b
print(mul(3, 5))
Output:
15

Hàm Lambda tương đương sẽ là:

Hàm Lambda tương đương cho hàm này sẽ là:

Cú pháp này sẽ được hiển thị bên dưới:

Các hàm khác cũng có thể được viết dưới dạng của hàm Lambda, dẫn đến các code sẽ ngắn hơn dù chạy cùng một logic chương trình.

28. Toán tử ba ngôi (Ternary Operator) trong Python

Toán tử ba ngôi được sử dụng như sự thay thế cho các câu lệnh điều kiện if-else và cách để viết short crisp one-liner.

Cú pháp như sau:

<expression 1> if <condition> else <expression 2>
f = 2
s = 2
# if the sum of f and s is greater than 0 the sum
# is printed, else 0 is printed
print(f + s if (f + s > 0) else 0)
Output:
4

29. *args và **kwargs trong Python

*args là viết tắt của (arguments) đối số, **kwargs là viết tắt của (keyword arguments) đối số từ khóa. Nó được sử dụng để giải nén ra loại đối số tương ứng, cho phép gọi function có list đối số có số lượng giá trị thay đổi

Cách sử dụng như sau:

* args: đối với các đối số không phải từ khóa.

Ví dụ:

 # the function will take in a variable number of arguments
   # and print all of their values
   def tester(*argv):
       for arg in argv:
           print(arg)
   tester('Sunday', 'Monday', 'Tuesday', 'Wednesday')
   Output:
   Sunday
   Monday
   Tuesday
   Wednesday

** kwargs: đối với các đối số từ khóa.

Ví dụ:

# The function will take variable number of arguments
   # and print them as key value pairs
   def tester(**kwargs):
       for key, value in kwargs.items():
           print(key, value)
   tester(Sunday = 1, Monday = 2, Tuesday = 3, Wednesday = 4)
   Output:
   Sunday 1
   Monday 2
   Tuesday 3
   Wednesday 4

30. if __name__ == "__main__" trong Python

Khi Python chạy "tệp chứa mã nguồn" dưới vai trò là chương trình chính, nó sẽ gán giá trị (“__main__”) cho biến (__name__).

>>> if __name__ == "__main__":
...     main()

31. Dataclass trong Python

Dataclass được sử dụng để lưu trữ dữ liệu, chúng có một số tính năng như:

  • Có thể so sánh với các đối tượng khác cùng loại.
  • Lưu trữ dữ liệu, đại diện cho một kiểu dữ liệu cụ thể.

Python 2.7

Nếu bạn đang sử dụng Python phiên bản cũ thì ví dụ dưới đây sẽ cho bạn thấy chức năng hoạt động của Dataclass theo hệ điều hành cũ.

class Self:
   def __init__(self, x):
       self.x = x
   
ob = Self("One")
print(ob.x)
Output:
One

Python 3.7

Còn nếu bạn sử dụng phiên bản Python mới hơn thì ví dụ này sẽ hướng dẫn bạn cách sử dụng.

@dataclass #annotation indicates that it is a dataclass module
class Self:
   x: string
ob = Self("One")
print(ob.x)
Output:
One
from dataclasses import dataclass
from typing import Any
@dataclass
class WithoutExplicitTypes:
  name: Any
  age: Any = 16

32. Virtual Environment trong Python

Virtual Environment thiết lập một môi trường ảo, cho phép bạn nghịch lung tung với các packages của Python mà không làm ảnh hưởng đến những packages đã được cài đặt sẵn trên Python.

Các bước cài đặt:

pip install virtualenv
pip install virtualenvwrapper-win

Các bước sử dụng:

mkvirtualenv Test # Make virtual environment called Test
#setprojectdir .

deactivate # To move to something else in the command #line.

workon Test # Activate environment

33. Lệnh trong Python

Magic Commands là tính năng mới, được thêm vào python shell. Chúng có những cải tiến hơn so với python thông thường, được thực hiện bởi IPython Kernel.

Ký tự chính: %

Các loại lệnh chính:

  • %prefix: command sẽ chỉ hoạt động trên một code đã cho.
  • %%prefix: command sẽ hoạt động trên code block.

Một số ví dụ về  command trong Python là:

  • % run: được sử dụng để chạy một tệp bên ngoài bằng Python.
  • %% time: Cho phép bạn theo dõi thời gian mà code cần để thực thi.
  • %% writefile: command này sẽ sao chép nội dung từ code cell hiện tại sang một tệp bên ngoài.
  • $ pycat: command này được sử dụng để hiển thị nội dung của tệp bên ngoài.
  • %who: command  này liệt kê tất cả các biến trong Python notebook.
  • %% html: command này sẽ cho phép bạn viết và thực thi code html trong ô hiện tại.
def runner():
   print("Hello World")
   
runner()
%run runner.py
Output:
Hello World
%%time
for i in range(10000):
   a = a + i**2
Output:
CPU Times: user: 3.72 ms, sys: 9us, , total: 3.73ms, Wall time: 3.75ms
%%writefile code.py
def func():
   print("Hello")
func()
Output:
Overwriting code.py
%pycat code.py
def func():
   print("Hello")
func()
a = "hello"
b = 5
c = 1
%who
Output:
a b c
%%html
<html>
<body>
<table>
       <tr> 
           <th>Name</th> 
           <th>Country</th> 
           <th>Age</th> 
       </tr> 
       <tr> 
           <td>Sid</td> 
           <td>India</td> 
           <td>22</td> 
       </tr>
       <tr> 
           <td>Dave</td> 
           <td>UK</td> 
           <td>28</td> 
       </tr>
</table>
</body>
</html>

Output:

  • % env: command này cho phép bạn liệt kê tất cả các biến môi trường (environment variables).
  • % pinfo: command này cung cấp thông tin chi tiết về đối tượng được truyền cùng với nó.

Bài viết được dịch từ đây.

Python Cheat Sheet có thể đóng vai trò như một người hướng dẫn giúp bạn tìm hiểu và sử dụng Python một cách dễ dàng hơn.

Nếu bạn có định hướng trở thành Data Analyst chuyên nghiệp thì bạn có thể tham khảo bộ khóa học toàn diện chuyên nghiệp với combo 4 khóa học trong 1 bootcamp của 200Lab tại đây.

Ngoài ra, bạn có thể nhấn vào link này để tham gia vào nhóm và nhận thêm nhiều tài liệu hữu ích khác về Data nhé!

Bài viết liên quan

Master data là gì? Sự khác nhau giữa Master data và Transaction data

Master data là tập hợp các định danh thống nhất và các thuộc tính mở rộng. Nó mô tả các thực thể cốt lõi của doanh nghiệp bao gồm khách hàng,.......

Master data là gì? Sự khác nhau giữa Master data và Transaction data
Danh mục các loại biểu đồ trong Data Visualization

Bạn có thể tìm thấy danh sách các loại biểu đồ, nó sẽ hoạt động như một hướng dẫn đầy hữu ích giúp bạn lựa chọn được biểu đồ phù hợp với nhu cầu của bản thân....

Danh mục các loại biểu đồ trong Data Visualization
Data Analysis with Excel: Analysis ToolPak

Bộ công cụ Analysis ToolPak trên Excel sẽ giúp bạn tiết kiệm thời gian và đơn giản hóa các bước phân tích dữ liệu tài chính, thống kê ....

Data Analysis with Excel: Analysis ToolPak
Data Analysis with Excel: Solver

Excel có một công cụ được gọi là solver cung cấp các lệnh và các tính năng tùy chỉnh để giải quyết các vấn đề quyết định....

Data Analysis with Excel: Solver
Data Analysis with Excel: What-If Analysis

What-If Analysis trong Excel cho phép bạn thử các giá trị (scenarios) khác nhau cho các công thức....

Data Analysis with Excel: What-If Analysis
You've successfully subscribed to 200Lab Blog
OK! Tài khoản của bạn đã kích hoạt thành công.
Success! Your billing info is updated.
Billing info update failed.
Your link has expired.