Tùy chọn %-formatting đã có từ đầu Python. Toán tử % được tích hợp vào các đối tượng chuỗi. Bạn có thể sử dụng điều này để định dạng chuỗi. Ví dụ
Bạn có thể sử dụng toán tử % nhiều lần, nhưng bạn sẽ cần sử dụng một bộ [] để cung cấp các giá trị mà bạn muốn sử dụng để định dạng chuỗi của mình
Nếu bạn chỉ muốn định dạng chuỗi của mình bằng một hoặc hai giá trị, toán tử % hoạt động tốt. Tuy nhiên, với nhiều giá trị để thay thế, mã của bạn trở nên khó đọc
Trong đoạn mã trên, bạn có thể thấy vấn đề với toán tử %. Mã của bạn trở nên khó đọc vì bạn thực sự không thể biết giá trị nào thay thế ký hiệu % nào
str. định dạng[]
Python 3 có một cách mới hơn để định dạng chuỗi bằng cách sử dụng. format[] trên một đối tượng chuỗi. Đây là một ví dụ nhanh tương tự như phương pháp định dạng % cũ
Có thể chỉ định các giá trị bạn muốn sử dụng để định dạng chuỗi của mình trong chuỗi
Điều này làm cho mã của bạn dễ đọc hơn so với phương pháp định dạng %. Tuy nhiên, nếu bạn có nhiều thứ trong chuỗi mà bạn muốn định dạng, mã của bạn sẽ trở nên lộn xộn
F-String
F-string rất dễ làm việc và giữ cho mã của bạn có thể đọc được. Đây là một ví dụ nhanh
Trước chuỗi, bạn thêm một chữ “f”. Đây có thể là một chữ cái nhỏ hoặc in hoa. Sau đó, bạn có thể thêm bất kỳ thứ gì bạn muốn định dạng vào giữa
name = 'Andy'
age = 20
print["I am " + name + ". I am " + str[age] + " years old"]
----------------------------------------------------------------
I am Andy. I am 20 years old
8. Một lợi thế rất lớn của cách định dạng này là mã của bạn vẫn dễ đọc, ngay cả khi bạn muốn định dạng nhiều thứ trong chuỗi của mình. Ví dụBiểu thức Python
Tôi đã sử dụng các biến như “nhà cung cấp” hoặc “nền tảng” với các chuỗi được chỉ định trong các ví dụ trên. Python đánh giá các chuỗi f trong thời gian chạy, cho phép bạn chạy bất kỳ biểu thức Python hợp lệ nào trong một chuỗi. Đây là một ví dụ
Trong ví dụ trên, tôi sử dụng một toán tử số học [chia] trong chuỗi f
Đây là một ví dụ nữa mà tôi sử dụng phương pháp
name = 'Andy'
age = 20
print["I am " + name + ". I am " + str[age] + " years old"]
----------------------------------------------------------------
I am Andy. I am 20 years old
9Có thể sử dụng các biểu thức trong mã của bạn có thể giúp giữ cho mã của bạn đẹp và sạch sẽ
Sự kết luận
Trong bài học này, bạn đã học cách f-strings hoạt động và tại sao đây là một lựa chọn tốt hơn phương thức %-operator hoặc
name = 'Andy'
age = 20
print["I am " + name + ". I am " + str[age] + " years old"]
----------------------------------------------------------------
I am Andy. I am 20 years old
0. Còn nhiều điều bạn có thể làm với f-string, nhưng điều này là đủ để bạn bắt đầu. Bạn có thể đọc thêm về nó trong PEP 498 Và theo thời gian, Python đã thường xuyên đưa ra các tiêu chuẩn và công cụ mã hóa mới thậm chí còn tuân thủ nhiều hơn các tiêu chuẩn mã hóa trong Zen of Python
Đẹp thì tốt hơn là xấu
Trong loạt bài đăng có tên Python Shorts này, tôi sẽ giải thích một số cấu trúc đơn giản nhưng rất hữu ích do Python cung cấp, một số mẹo cần thiết và một số trường hợp sử dụng mà tôi thường xuyên gặp phải trong công việc Khoa học dữ liệu của mình
Bài đăng này đặc biệt về việc sử dụng chuỗi f trong Python đã được giới thiệu trong Python 3. 6
3 cách in phổ biến
Hãy để tôi giải thích điều này với một ví dụ đơn giản. Giả sử bạn có một số biến và bạn muốn in chúng trong một câu lệnh
name = 'Andy'
age = 20
print[?]
----------------------------------------------------------------
Output: I am Andy. I am 20 years old
Bạn có thể làm điều này theo nhiều cách khác nhau
a] Nối. Một cách rất đơn giản để làm là chỉ cần sử dụng
name = 'Andy'
age = 20
print["I am " + name + ". I am " + str[age] + " years old"]
----------------------------------------------------------------
I am Andy. I am 20 years old
1 để nối trong hàm in. Nhưng đó là vụng về. Chúng tôi sẽ cần chuyển đổi các biến số của mình thành chuỗi và lưu ý các khoảng trắng trong khi nối. Và nó trông không đẹp vì khả năng đọc mã bị ảnh hưởng một chút khi chúng tôi sử dụng nóname = 'Andy'
age = 20
print["I am " + name + ". I am " + str[age] + " years old"]
----------------------------------------------------------------
I am Andy. I am 20 years old
Nguồn. Pixabay
b] Định dạng %. Tùy chọn thứ hai là sử dụng định dạng
name = 'Andy'
age = 20
print["I am " + name + ". I am " + str[age] + " years old"]
----------------------------------------------------------------
I am Andy. I am 20 years old
2. Nhưng nó cũng có vấn đề của nó. Đối với một, nó không thể đọc được. Bạn sẽ cần nhìn vào name = 'Andy'
age = 20
print["I am " + name + ". I am " + str[age] + " years old"]
----------------------------------------------------------------
I am Andy. I am 20 years old
3 đầu tiên và cố gắng tìm biến tương ứng trong danh sách ở cuối. Và hãy tưởng tượng nếu bạn có một danh sách dài các biến mà bạn có thể muốn inprint["I am %s. I am %s years old" % [name, age]]
c] đường. định dạng[]. Tiếp theo là cách đã được sử dụng trong hầu hết các mã Python 3 và đã trở thành tiêu chuẩn in trong Python. Sử dụng
name = 'Andy'
age = 20
print["I am " + name + ". I am " + str[age] + " years old"]
----------------------------------------------------------------
I am Andy. I am 20 years old
4print["I am {}. I am {} years old".format[name, age]]
Ở đây chúng tôi sử dụng {} để biểu thị trình giữ chỗ của đối tượng trong danh sách. Nó vẫn có cùng một vấn đề về khả năng đọc, nhưng chúng ta cũng có thể sử dụng
name = 'Andy'
age = 20
print["I am " + name + ". I am " + str[age] + " years old"]
----------------------------------------------------------------
I am Andy. I am 20 years old
5print["I am {name}. I am {age} years old".format[name = name, age = age]]
Nếu điều này có vẻ hơi lặp đi lặp lại, chúng ta cũng có thể sử dụng từ điển
name = 'Andy'
age = 20
print["I am " + name + ". I am " + str[age] + " years old"]
----------------------------------------------------------------
I am Andy. I am 20 years old
0Cách thứ tư với f
Kể từ Python 3. 6, chúng tôi có một tùy chọn định dạng mới, làm cho nó thậm chí còn đơn giản hơn. Chúng tôi chỉ đơn giản là có thể sử dụng
name = 'Andy'
age = 20
print["I am " + name + ". I am " + str[age] + " years old"]
----------------------------------------------------------------
I am Andy. I am 20 years old
1Chúng tôi chỉ nối thêm
name = 'Andy'
age = 20
print["I am " + name + ". I am " + str[age] + " years old"]
----------------------------------------------------------------
I am Andy. I am 20 years old
6 vào đầu chuỗi và sử dụng {} để bao gồm tên biến của chúng tôi và chúng tôi nhận được kết quả cần thiếtMột chức năng bổ sung mà chuỗi f cung cấp là chúng ta có thể đặt các biểu thức trong dấu ngoặc {}. Ví dụ
name = 'Andy'
age = 20
print["I am " + name + ". I am " + str[age] + " years old"]
----------------------------------------------------------------
I am Andy. I am 20 years old
3Điều này khá hữu ích vì bạn có thể sử dụng bất kỳ loại biểu thức nào bên trong các dấu ngoặc này. Biểu thức có thể chứa từ điển hoặc hàm. Một ví dụ đơn giản
name = 'Andy'
age = 20
print["I am " + name + ". I am " + str[age] + " years old"]
----------------------------------------------------------------
I am Andy. I am 20 years old
4Ngoài ra, bạn có thể sử dụng
name = 'Andy'
age = 20
print["I am " + name + ". I am " + str[age] + " years old"]
----------------------------------------------------------------
I am Andy. I am 20 years old
7 để sử dụng chuỗi nhiều dòngname = 'Andy'
age = 20
print["I am " + name + ". I am " + str[age] + " years old"]
----------------------------------------------------------------
I am Andy. I am 20 years old
6Trường hợp sử dụng hàng ngày trong khi định dạng chuỗi là định dạng số float. Bạn có thể làm điều đó bằng chuỗi f như sau
name = 'Andy'
age = 20
print["I am " + name + ". I am " + str[age] + " years old"]
----------------------------------------------------------------
I am Andy. I am 20 years old
0Sự kết luận
Cho đến gần đây, tôi đã sử dụng Python 2 cho tất cả công việc của mình và vì vậy không thể kiểm tra tính năng mới này
Nhưng bây giờ, khi tôi đang chuyển sang Python 3, các chuỗi f đã trở thành cú pháp tiếp theo của tôi để định dạng chuỗi. Thật dễ dàng để viết và đọc với khả năng kết hợp các biểu thức tùy ý. Theo một cách nào đó, chức năng mới này tuân thủ ít nhất 3 khái niệm PEP —
Đẹp tốt hơn xấu, Đơn giản tốt hơn phức tạp và Khả năng đọc được tính
Nếu bạn muốn tìm hiểu thêm về Python 3, tôi muốn giới thiệu một khóa học tuyệt vời về Tìm hiểu Python trình độ trung cấp từ Đại học Michigan. Hãy kiểm tra xem nó ra
Tôi cũng sẽ viết nhiều bài như vậy trong tương lai. Hãy cho tôi biết suy nghĩ của bạn về bộ truyện. Theo dõi tôi tại Medium hoặc Đăng ký blog của tôi để được thông báo về chúng. Như mọi khi, tôi hoan nghênh phản hồi và phê bình mang tính xây dựng và có thể liên hệ trên Twitter @mlwhiz
Ngoài ra, một tuyên bố từ chối trách nhiệm nhỏ - Có thể có một số liên kết liên kết trong bài đăng này đến các tài nguyên có liên quan, vì chia sẻ kiến thức không bao giờ là một ý tưởng tồi