Hàm F Python

Trong Trăn 3. 6, chuỗi f, chuỗi ký tự được định dạng, đã được giới thiệu [PEP 498]. Nói tóm lại, đó là một cách để định dạng chuỗi của bạn dễ đọc và nhanh hơn

Thí dụ

agent_name = 'James Bond'
kill_count = 9


# old ways
print["%s has killed %d enemies" % [agent_name,kill_count]]

print['{} has killed {} enemies'.format[agent_name,kill_count]]
print['{name} has killed {kill} enemies'.format[name=agent_name,kill=kill_count]]
    

# f-strings way
print[f'{agent_name} has killed {kill_count} enemies']

f hoặc F phía trước các chuỗi yêu cầu Python xem xét các giá trị, biểu thức hoặc thể hiện bên trong {} và thay thế chúng bằng các giá trị biến hoặc kết quả nếu có. Điều tốt nhất về định dạng f là bạn có thể làm những thứ thú vị trong {}, e. g. {kill_count * 100}

Trong hướng dẫn này, chúng ta sẽ tìm hiểu về cơ chế định dạng chuỗi. Chuỗi f là cách tốt nhất để định dạng chuỗi. Kiểu định dạng của chuỗi làm cho chuỗi dễ đọc hơn, ngắn gọn hơn và ít bị lỗi hơn. Nó cũng nhanh hơn cái kia

Trước khi đi sâu vào chủ đề này, trước tiên chúng ta sẽ thảo luận về các kỹ thuật đã được sử dụng trước chuỗi f

Định dạng chuỗi cũ trong Python

Có hai cách chính để định dạng chuỗi. % - định dạng và str. định dạng[]. Nhưng cả hai phương pháp đều có một số hạn chế. Hãy giới thiệu ngắn gọn về các phương pháp đã cho này

1. % - định dạng

Đây là cách truyền thống để định dạng chuỗi, nhưng các tài liệu đề xuất phương pháp này, phương pháp này chứa câu lệnh sau

"Các hoạt động định dạng được mô tả ở đây thể hiện nhiều điều kỳ quặc dẫn đến một số lỗi phổ biến [chẳng hạn như không hiển thị chính xác các bộ dữ liệu và từ điển]

Sử dụng chuỗi ký tự được định dạng mới hơn hoặc str. format[] giao diện giúp tránh những lỗi này. " - Tài liệu chính thức

Cách sử dụng % - định dạng

Chúng ta có thể thực hiện thao tác tích hợp bằng %-operator. Hãy hiểu ví dụ sau

đầu ra

Chúng ta cũng có thể sử dụng tuple để lưu trữ nhiều biến. Hãy xem ví dụ sau

đầu ra

Tại sao %-formatting không được khuyến nghị

Bởi vì khi biến được tăng lên và chuỗi dài hơn, mã của chúng ta trở nên khó đọc hơn nhiều. Mã có vẻ lộn xộn. Hãy xem ví dụ sau

Thí dụ -

đầu ra

Hello, Steve Rogers. Your age is 70. You are a Superhero. You were a member of Marvel.

Như chúng ta có thể thấy trong đoạn mã trên, mã trở nên khó đọc và dễ bị lỗi hơn. Đó là lý do tại sao cách định dạng chuỗi này không tốt

2. str. phương thức định dạng[]

Đó là một cách phổ biến khác để định dạng chuỗi được giới thiệu trong Python 2. 6. Hãy xem làm thế nào chúng ta có thể sử dụng nó

Cách sử dụng str. định dạng[]

Đó là một cải tiến về định dạng%. Nó giống như một hàm dựng sẵn bình thường được gọi trên đối tượng và đối tượng đó được chuyển đổi thành một chuỗi

Hãy xem ví dụ sau

Thí dụ -

Để truy cập phần tử từ điển bên trong phương thức định dạng, chúng ta có thể truyền khóa trong phương thức format[]

đầu ra

Tại sao str. format[] không được khuyến nghị?

các str. format[] hiệu quả hơn nhiều so với phương thức %-format nhưng nó vẫn có thể khá dài dòng khi chúng ta xử lý nhiều tham số

Phương pháp chuỗi F

Đây là một cơ chế định dạng chuỗi mới được giới thiệu bởi PEP 498. Nó còn được gọi là Nội suy chuỗi ký tự hoặc phổ biến hơn là chuỗi F [ký tự f đứng trước chuỗi ký tự]. Trọng tâm chính của cơ chế này là làm cho nội suy dễ dàng hơn

Khi chúng ta đặt trước chuỗi bằng chữ 'F, chuỗi sẽ trở thành chính chuỗi f. Chuỗi f có thể được định dạng giống như chuỗi str. phương thức định dạng[]. Chuỗi F cung cấp một cách thuận tiện để nhúng biểu thức Python bên trong chuỗi ký tự để định dạng

Thí dụ -

đầu ra

Hello, My name is Tushar and I'm 28 years old.

Trong đoạn mã trên, chúng tôi đã sử dụng chuỗi f để định dạng chuỗi. Nó đánh giá trong thời gian chạy;

Chúng ta có thể sử dụng nó trong một tuyên bố duy nhất

đầu ra

Tuy nhiên, chúng ta có thể sử dụng trong chức năng

đầu ra

Sachin Tendulkar is great

Chuỗi f cũng có thể được sử dụng với đối tượng lớp. Hãy hiểu ví dụ sau

Thí dụ -

đầu ra

Keenu Reevs's superhit movie is Matrix.

Giải trình -

Trong đoạn mã trên, chúng ta đã sử dụng __str__[] và __repr__[], biểu diễn một đối tượng dưới dạng một chuỗi. Vì vậy, chúng ta cần đưa ít nhất một trong các phương thức đó vào định nghĩa lớp. Chuỗi f sẽ sử dụng phương thức __str__[]; . r

đầu ra

Keenu Reevs's superhit movie is Matrix.
Keenu Reevs Matrix Superhit

Chuỗi F trong từ điển

Chúng ta phải cẩn thận khi làm việc với các khóa từ điển bên trong chuỗi f. Có một trích dẫn khác để sử dụng khóa từ điển và chuỗi f. Hãy hiểu ví dụ sau

Thí dụ -

đầu ra

Phương pháp dưới đây không được phép trong trường hợp từ điển

Thí dụ -

đầu ra

File "", line 2
    print[f'{detail['name']} is {detail['age']} years old.']
                     ^
SyntaxError: invalid syntax

Như chúng ta có thể thấy trong đoạn mã trên, chúng ta thay đổi dấu ngoặc kép thành dấu ngoặc đơn và nó đã gây ra lỗi

Tốc độ

Lý do thích ứng kiểu định dạng này là tốc độ của nó. Chuỗi f đánh giá trong thời gian chạy thay vì các giá trị không đổi. Nó nhúng biểu thức bên trong chuỗi ký tự, sử dụng cú pháp tối thiểu. Nó nhanh vì nó đánh giá trong thời gian chạy, không phải là một giá trị không đổi

Hãy xem so sánh chuỗi sau đây

Ví dụ 1

đầu ra

Ví dụ - 2

đầu ra

Ví dụ - 3

đầu ra

Như chúng ta có thể quan sát, chuỗi f nằm trên đầu danh sách

Niềng răng

Để làm xuất hiện dấu ngoặc nhọn trong mã, bạn nên sử dụng dấu ngoặc kép như sau. Hãy hiểu ví dụ sau

Thí dụ -

đầu ra

Nếu chúng ta sử dụng dấu ngoặc ba, nó sẽ hiển thị dấu ngoặc đơn trong chuỗi của chúng ta. Hãy hiểu ví dụ sau

Thí dụ -

đầu ra

Chúng tôi có thể hiển thị nhiều dấu ngoặc nhọn hơn nếu chúng tôi sử dụng nhiều hơn ba dấu ngoặc nhọn

Thí dụ -

đầu ra

dấu gạch chéo ngược

Chúng ta có thể sử dụng dấu gạch chéo ngược thoát trong phần chuỗi của chuỗi f. Tuy nhiên, chúng tôi không thể sử dụng dấu gạch chéo ngược để thoát trong phần biểu thức của chuỗi f. Hãy hiểu ví dụ sau

Thí dụ -

đầu ra

SyntaxError: f-string expression part cannot include a backslash

Nhận xét nội tuyến

Chúng ta không thể bao gồm ký hiệu # trong biểu thức. Nó sẽ đưa ra một lỗi cú pháp. Hãy hiểu ví dụ sau

Thí dụ -

đầu ra

________số 8_______

Phần kết luận

Chúng ta có thể sử dụng bất kỳ một phương thức nào trong số ba phương thức, nhưng phương thức f-string cung cấp một cách ngắn gọn, dễ đọc và thuận tiện hơn. Nó nhanh hơn và ít bị lỗi hơn. Chúng tôi đã giải thích hầu hết mọi tình huống ngoại tuyến có thể xảy ra và tại sao người ta nên xem xét phương pháp này trong lập trình

Hàm F trong Python là gì?

“Chuỗi F cung cấp một cách để nhúng biểu thức bên trong chuỗi ký tự bằng cách sử dụng cú pháp tối thiểu . Cần lưu ý rằng chuỗi f thực sự là một biểu thức được đánh giá trong thời gian chạy, không phải là một giá trị không đổi. Trong mã nguồn Python, chuỗi f là một chuỗi ký tự, có tiền tố là f , chứa các biểu thức bên trong dấu ngoặc nhọn.

Tại sao chúng tôi sử dụng F trong bản in bằng Python?

f có nghĩa là chuỗi ký tự được định dạng và nó mới trong Python 3. 6. Một chuỗi ký tự được định dạng hoặc chuỗi f là một chuỗi ký tự có tiền tố là f hoặc F. Các chuỗi này có thể chứa các trường thay thế, là các biểu thức được phân tách bằng dấu ngoặc nhọn {}

Tôi có thể gọi chức năng trong F

Không, bạn không thể .

Chủ Đề