Giám đốc điều hành python 3

và del cho là rasie khẳng định elif từ lambda return break khác toàn cầu không thử lớp trừ khi hoặc trong khi tiếp tục thực thi nhập khẩu năng suất def cuối cùng trong bản in

3. basic data type 3. 1 Kiểu dữ liệu Bạn có thể sử dụng các phép toán học trong python chẳng hạn như +, -, *, /. Ví dụ

>>> 2 + 2
4
>>> 50 - 5*6
20
>>> [50 - 5*6] / 4
5.0
>>> 8 / 5  # Phép chia luôn trả về số thực
1.6
>>> 17 / 3  # phép chia trả về số thực chứ không phải số nguyên như một số ngôn ngữ khác
5.666666666666667
>>>
>>> 17 // 3  # phép chia loại bỏ phần thập phân
5
>>> 17 % 3  # toán tử phần % trả về phần dư của phép chia
2
>>> 5 * 3 + 2 
17

3. 2 Kiểu chuỗi Kiểu chuỗi trong python có thể được biểu diễn dưới dạng các ký tự nằm trong dấu ' ' hoặc " "

>>> 'spam eggs'  # dấu  ' '
'spam eggs'
>>> 'doesn\'t'  #dùng \ để escape dấu '
"doesn't"
>>> "doesn't"  #  hoặc dùng  dấu " thay vào đó
"doesn't"
>>> '"Yes," he said.'
'"Yes," he said.'
>>> "\"Yes,\" he said."
'"Yes," he said.'
>>> '"Isn\'t," she said.'
'"Isn\'t," she said.'

3. 3 Danh sách [Lists] Đây là kiểu tập hợp dữ liệu, dùng để nhóm các giá trị lại với nhau

>>> squares = [1, 4, 9, 16, 25]
>>> squares
[1, 4, 9, 16, 25]
>>> squares + [36, 49, 64, 81, 100]
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

4. Điều kiện câu lệnh trong Python 4. 1 Câu lệnh nếu Một ví dụ cơ bản về câu lệnh nếu khác ở đây, if [biểu thức] và elif[biểu thức] dùng để xác định nhiều lựa chọn

>>> x = int[input["Please enter an integer: "]]
Please enter an integer: 42
>>> if x < 0:
..     x = 0
..     print['Negative changed to zero']
.. elif x == 0:
..     print['Zero']
.. elif x == 1:
..     print['Single']
.. else:
..     print['More']
...
More

4. 2 Vòng lặp cho Vòng lặp cho trong python hơi khác một chút so với C. Vòng lặp cho python sẽ lặp thông qua từng mục của bất kỳ hàng nào [một danh sách hoặc một chuỗi]. Ví dụ

>>> # Measure some strings:
.. words = ['cat', 'window', 'defenestrate']
>>> for w in words:
..     print[w, len[w]]
...
cat 3
window 6
defenestrate 12

4. 3 Hàm Phạm Vi[]

Nếu bạn cần lặp qua một chuỗi số, python cung cấp một hàm build range[] để lặp

>>> for i in range[5]:
..     print[i]
...
0
1
2
3
4

4. 4 Câu lệnh ngắt, tiếp tục và mệnh đề khác trên vòng lặp Câu lệnh ngắt dùng để thoát khỏi khối gần nhất trong vòng lặp for hoặc while. Vòng lặp bên ngoài ra còn có thể có một mệnh đề khác được thực thi khi vòng lặp chạy hết và trở nên sai

________số 8

Lệnh tiếp tục được vay mượn từ C, dùng để nhảy qua vòng lặp tiếp theo

>>> for num in range[2, 10]:
..     if num % 2 == 0:
..         print["Found an even number", num]
..         continue
..     print["Found a number", num]
Found an even number 2
Found a number 3
Found an even number 4
Found a number 5
Found an even number 6
Found a number 7
Found an even number 8
Found a number 9

Trên đây là bài viết cơ bản về lập trình Python, ở phần tiếp theo chúng ta sẽ cùng tìm hiểu về cách tạo Hàm trong Python, cấu trúc danh sách dữ liệu, các khái niệm về hướng đối tượng trong Python. Cảm ơn các bạn đã theo dõi

Kể từ Python 3. 6, chuỗi f là một cách mới tuyệt vời để định dạng chuỗi. Chúng không chỉ dễ đọc hơn, ngắn gọn hơn và ít bị lỗi hơn các cách định dạng khác mà còn nhanh hơn

Đến cuối bài viết này, bạn sẽ tìm hiểu cách thức và lý do bắt đầu sử dụng f-strings ngay hôm nay

Nhưng trước tiên, đây là cuộc sống trước khi có f-string, khi bạn phải đi bộ đến trường lên dốc trên cả hai con đường trong tuyết

Lấy bài kiểm tra. Kiểm tra kiến ​​thức của bạn với bài kiểm tra tương tác “Python f-Strings” của chúng tôi. Sau khi hoàn thành, bạn sẽ nhận được điểm số để có thể theo dõi quá trình học tập của mình theo thời gian

Lấy bài kiểm tra "

Định dạng chuỗi "trường học cũ" trong Python

Trước Python 3. 6, bạn có hai cách chính để nhúng biểu thức Python bên trong chuỗi ký tự để định dạng. %-định dạng và

>>> 17 / 3  # phép chia trả về số thực chứ không phải số nguyên như một số ngôn ngữ khác
5.666666666666667
>>>
>>> 17 // 3  # phép chia loại bỏ phần thập phân
5
>>> 17 % 3  # toán tử phần % trả về phần dư của phép chia
2
>>> 5 * 3 + 2 
17
06. Bạn sắp xem cách sử dụng chúng và những hạn chế của chúng

Loại bỏ các quảng cáo

Lựa chọn 1. %-định dạng

Đây là định dạng OG của Python và đã có trong ngôn ngữ này ngay từ đầu. Bạn có thể đọc thêm trong tài liệu Python. Hãy nhớ rằng %-formatting không được các tài liệu khuyến nghị, trong đó có lưu ý sau

“Các hoạt động định dạng được mô tả ở đây thể hiện nhiều điểm 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 giao diện

>>> 17 / 3  # phép chia trả về số thực chứ không phải số nguyên như một số ngôn ngữ khác
5.666666666666667
>>>
>>> 17 // 3  # phép chia loại bỏ phần thập phân
5
>>> 17 % 3  # toán tử phần % trả về phần dư của phép chia
2
>>> 5 * 3 + 2 
17
06 giúp tránh những lỗi này. Những lựa chọn thay thế này cũng cung cấp các cách tiếp cận mạnh mẽ, linh hoạt và có thể mở rộng hơn để định dạng văn bản. " [Nguồn]

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

Các đối tượng chuỗi có một phép toán tích hợp sử dụng toán tử

>>> 17 / 3  # phép chia trả về số thực chứ không phải số nguyên như một số ngôn ngữ khác
5.666666666666667
>>>
>>> 17 // 3  # phép chia loại bỏ phần thập phân
5
>>> 17 % 3  # toán tử phần % trả về phần dư của phép chia
2
>>> 5 * 3 + 2 
17
08 mà bạn có thể sử dụng để định dạng chuỗi. Đây là những gì trông giống như trong thực tế

>>>

>>> 17 / 3  # phép chia trả về số thực chứ không phải số nguyên như một số ngôn ngữ khác
5.666666666666667
>>>
>>> 17 // 3  # phép chia loại bỏ phần thập phân
5
>>> 17 % 3  # toán tử phần % trả về phần dư của phép chia
2
>>> 5 * 3 + 2 
17
3

Để chèn nhiều biến, bạn phải sử dụng một bộ các biến đó. Đây là cách bạn sẽ làm điều đó

>>>

>>> 17 / 3  # phép chia trả về số thực chứ không phải số nguyên như một số ngôn ngữ khác
5.666666666666667
>>>
>>> 17 // 3  # phép chia loại bỏ phần thập phân
5
>>> 17 % 3  # toán tử phần % trả về phần dư của phép chia
2
>>> 5 * 3 + 2 
17
4

Tại sao định dạng% không tốt

Các ví dụ mã mà bạn vừa thấy ở trên là đủ để đọc. Tuy nhiên, khi bạn bắt đầu sử dụng một số tham số và chuỗi dài hơn, mã của bạn sẽ nhanh chóng trở nên khó đọc hơn nhiều. Mọi thứ bắt đầu có vẻ hơi lộn xộn rồi

>>>

>>> 17 / 3  # phép chia trả về số thực chứ không phải số nguyên như một số ngôn ngữ khác
5.666666666666667
>>>
>>> 17 // 3  # phép chia loại bỏ phần thập phân
5
>>> 17 % 3  # toán tử phần % trả về phần dư của phép chia
2
>>> 5 * 3 + 2 
17
5

Thật không may, kiểu định dạng này không tốt vì nó dài dòng và dẫn đến lỗi, chẳng hạn như không hiển thị chính xác các bộ dữ liệu hoặc từ điển. May mắn thay, có những ngày tươi sáng phía trước

Lựa chọn 2. str. định dạng[]

Cách mới hơn để hoàn thành công việc này đã được giới thiệu trong Python 2. 6. Bạn có thể xem Hướng dẫn về các kỹ thuật định dạng chuỗi Python mới hơn để biết thêm thông tin

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

>>> 17 / 3  # phép chia trả về số thực chứ không phải số nguyên như một số ngôn ngữ khác
5.666666666666667
>>>
>>> 17 // 3  # phép chia loại bỏ phần thập phân
5
>>> 17 % 3  # toán tử phần % trả về phần dư của phép chia
2
>>> 5 * 3 + 2 
17
06  là một cải tiến về định dạng%. Nó sử dụng cú pháp gọi hàm thông thường và có thể mở rộng thông qua phương thức
>>> 17 / 3  # phép chia trả về số thực chứ không phải số nguyên như một số ngôn ngữ khác
5.666666666666667
>>>
>>> 17 // 3  # phép chia loại bỏ phần thập phân
5
>>> 17 % 3  # toán tử phần % trả về phần dư của phép chia
2
>>> 5 * 3 + 2 
17
70 trên đối tượng được chuyển đổi thành chuỗi

Với

>>> 17 / 3  # phép chia trả về số thực chứ không phải số nguyên như một số ngôn ngữ khác
5.666666666666667
>>>
>>> 17 // 3  # phép chia loại bỏ phần thập phân
5
>>> 17 % 3  # toán tử phần % trả về phần dư của phép chia
2
>>> 5 * 3 + 2 
17
06, các trường thay thế được đánh dấu bằng dấu ngoặc nhọn

>>>

>>> 17 / 3  # phép chia trả về số thực chứ không phải số nguyên như một số ngôn ngữ khác
5.666666666666667
>>>
>>> 17 // 3  # phép chia loại bỏ phần thập phân
5
>>> 17 % 3  # toán tử phần % trả về phần dư của phép chia
2
>>> 5 * 3 + 2 
17
0

Bạn có thể tham chiếu các biến theo bất kỳ thứ tự nào bằng cách tham chiếu chỉ mục của chúng

>>>

>>> 17 / 3  # phép chia trả về số thực chứ không phải số nguyên như một số ngôn ngữ khác
5.666666666666667
>>>
>>> 17 // 3  # phép chia loại bỏ phần thập phân
5
>>> 17 % 3  # toán tử phần % trả về phần dư của phép chia
2
>>> 5 * 3 + 2 
17
7

Nhưng nếu bạn chèn tên biến, bạn sẽ có thêm lợi ích là có thể truyền các đối tượng và sau đó tham chiếu các tham số và phương thức ở giữa các dấu ngoặc nhọn

>>>

>>> 'spam eggs'  # dấu  ' '
'spam eggs'
>>> 'doesn\'t'  #dùng \ để escape dấu '
"doesn't"
>>> "doesn't"  #  hoặc dùng  dấu " thay vào đó
"doesn't"
>>> '"Yes," he said.'
'"Yes," he said.'
>>> "\"Yes,\" he said."
'"Yes," he said.'
>>> '"Isn\'t," she said.'
'"Isn\'t," she said.'
1

Bạn cũng có thể sử dụng

>>> 17 / 3  # phép chia trả về số thực chứ không phải số nguyên như một số ngôn ngữ khác
5.666666666666667
>>>
>>> 17 // 3  # phép chia loại bỏ phần thập phân
5
>>> 17 % 3  # toán tử phần % trả về phần dư của phép chia
2
>>> 5 * 3 + 2 
17
72 để thực hiện thủ thuật gọn gàng này với từ điển

>>>

>>> 'spam eggs'  # dấu  ' '
'spam eggs'
>>> 'doesn\'t'  #dùng \ để escape dấu '
"doesn't"
>>> "doesn't"  #  hoặc dùng  dấu " thay vào đó
"doesn't"
>>> '"Yes," he said.'
'"Yes," he said.'
>>> "\"Yes,\" he said."
'"Yes," he said.'
>>> '"Isn\'t," she said.'
'"Isn\'t," she said.'
3

>>> 17 / 3  # phép chia trả về số thực chứ không phải số nguyên như một số ngôn ngữ khác
5.666666666666667
>>>
>>> 17 // 3  # phép chia loại bỏ phần thập phân
5
>>> 17 % 3  # toán tử phần % trả về phần dư của phép chia
2
>>> 5 * 3 + 2 
17
06 chắc chắn là một bản nâng cấp khi so sánh với định dạng%, nhưng không phải toàn là hoa hồng và ánh nắng

Tại sao str. format[] không tốt

Mã sử ​​dụng

>>> 17 / 3  # phép chia trả về số thực chứ không phải số nguyên như một số ngôn ngữ khác
5.666666666666667
>>>
>>> 17 // 3  # phép chia loại bỏ phần thập phân
5
>>> 17 % 3  # toán tử phần % trả về phần dư của phép chia
2
>>> 5 * 3 + 2 
17
06 dễ đọc hơn nhiều so với mã sử dụng định dạng %, nhưng
>>> 17 / 3  # phép chia trả về số thực chứ không phải số nguyên như một số ngôn ngữ khác
5.666666666666667
>>>
>>> 17 // 3  # phép chia loại bỏ phần thập phân
5
>>> 17 % 3  # toán tử phần % trả về phần dư của phép chia
2
>>> 5 * 3 + 2 
17
06 vẫn có thể khá dài dòng khi bạn đang xử lý nhiều tham số và chuỗi dài hơn. Hãy xem này

>>>

>>> 'spam eggs'  # dấu  ' '
'spam eggs'
>>> 'doesn\'t'  #dùng \ để escape dấu '
"doesn't"
>>> "doesn't"  #  hoặc dùng  dấu " thay vào đó
"doesn't"
>>> '"Yes," he said.'
'"Yes," he said.'
>>> "\"Yes,\" he said."
'"Yes," he said.'
>>> '"Isn\'t," she said.'
'"Isn\'t," she said.'
7

Nếu bạn có các biến mà bạn muốn chuyển đến

>>> 17 / 3  # phép chia trả về số thực chứ không phải số nguyên như một số ngôn ngữ khác
5.666666666666667
>>>
>>> 17 // 3  # phép chia loại bỏ phần thập phân
5
>>> 17 % 3  # toán tử phần % trả về phần dư của phép chia
2
>>> 5 * 3 + 2 
17
76 trong từ điển, thì bạn chỉ cần giải nén nó bằng
>>> 17 / 3  # phép chia trả về số thực chứ không phải số nguyên như một số ngôn ngữ khác
5.666666666666667
>>>
>>> 17 // 3  # phép chia loại bỏ phần thập phân
5
>>> 17 % 3  # toán tử phần % trả về phần dư của phép chia
2
>>> 5 * 3 + 2 
17
77 và tham chiếu các giá trị theo khóa trong chuỗi, nhưng phải có cách tốt hơn để làm điều này

Loại bỏ các quảng cáo

chuỗi f. Một cách mới và cải tiến để định dạng chuỗi trong Python

Tin tốt là f-strings ở đây để tiết kiệm thời gian. Họ cắt lát. họ xúc xắc. Họ làm khoai tây chiên. Được rồi, họ không làm những việc đó, nhưng họ làm cho việc định dạng dễ dàng hơn. Họ đã tham gia bữa tiệc trong Python 3. 6. Bạn có thể đọc tất cả về nó trong PEP 498, được viết bởi Eric V. Smith vào tháng 8 năm 2015

Còn được gọi là “các chuỗi ký tự được định dạng”, chuỗi f là các ký tự chuỗi có ký tự

>>> 17 / 3  # phép chia trả về số thực chứ không phải số nguyên như một số ngôn ngữ khác
5.666666666666667
>>>
>>> 17 // 3  # phép chia loại bỏ phần thập phân
5
>>> 17 % 3  # toán tử phần % trả về phần dư của phép chia
2
>>> 5 * 3 + 2 
17
78 ở đầu và các dấu ngoặc nhọn chứa các biểu thức sẽ được thay thế bằng các giá trị của chúng. Các biểu thức được đánh giá trong thời gian chạy và sau đó được định dạng bằng giao thức
>>> 17 / 3  # phép chia trả về số thực chứ không phải số nguyên như một số ngôn ngữ khác
5.666666666666667
>>>
>>> 17 // 3  # phép chia loại bỏ phần thập phân
5
>>> 17 % 3  # toán tử phần % trả về phần dư của phép chia
2
>>> 5 * 3 + 2 
17
79. Như mọi khi, tài liệu Python là bạn của bạn khi bạn muốn tìm hiểu thêm

Dưới đây là một số cách f-strings có thể làm cho cuộc sống của bạn dễ dàng hơn

Cú pháp đơn giản

Cú pháp tương tự như cú pháp bạn đã sử dụng với

>>> 17 / 3  # phép chia trả về số thực chứ không phải số nguyên như một số ngôn ngữ khác
5.666666666666667
>>>
>>> 17 // 3  # phép chia loại bỏ phần thập phân
5
>>> 17 % 3  # toán tử phần % trả về phần dư của phép chia
2
>>> 5 * 3 + 2 
17
06 nhưng ít dài dòng hơn. Hãy nhìn xem điều này dễ đọc như thế nào

>>>

>>> squares = [1, 4, 9, 16, 25]
>>> squares
[1, 4, 9, 16, 25]
3

Cũng có thể sử dụng chữ in hoa

>>> 'spam eggs'  # dấu  ' '
'spam eggs'
>>> 'doesn\'t'  #dùng \ để escape dấu '
"doesn't"
>>> "doesn't"  #  hoặc dùng  dấu " thay vào đó
"doesn't"
>>> '"Yes," he said.'
'"Yes," he said.'
>>> "\"Yes,\" he said."
'"Yes," he said.'
>>> '"Isn\'t," she said.'
'"Isn\'t," she said.'
11

>>>

>>> squares = [1, 4, 9, 16, 25]
>>> squares
[1, 4, 9, 16, 25]
5

Bạn có thích f-strings chưa?

Biểu thức tùy ý

Vì chuỗi f được đánh giá trong thời gian chạy, nên bạn có thể đặt bất kỳ và tất cả các biểu thức Python hợp lệ vào đó. Điều này cho phép bạn làm một số điều tiện lợi

Bạn có thể làm điều gì đó khá đơn giản, như thế này

>>>

>>> 17 / 3  # phép chia trả về số thực chứ không phải số nguyên như một số ngôn ngữ khác
5.666666666666667
>>>
>>> 17 // 3  # phép chia loại bỏ phần thập phân
5
>>> 17 % 3  # toán tử phần % trả về phần dư của phép chia
2
>>> 5 * 3 + 2 
17
40

Nhưng bạn cũng có thể gọi các chức năng. Đây là một ví dụ

>>>

>>> 17 / 3  # phép chia trả về số thực chứ không phải số nguyên như một số ngôn ngữ khác
5.666666666666667
>>>
>>> 17 // 3  # phép chia loại bỏ phần thập phân
5
>>> 17 % 3  # toán tử phần % trả về phần dư của phép chia
2
>>> 5 * 3 + 2 
17
41

Bạn cũng có tùy chọn gọi một phương thức trực tiếp

>>>

>>> 17 / 3  # phép chia trả về số thực chứ không phải số nguyên như một số ngôn ngữ khác
5.666666666666667
>>>
>>> 17 // 3  # phép chia loại bỏ phần thập phân
5
>>> 17 % 3  # toán tử phần % trả về phần dư của phép chia
2
>>> 5 * 3 + 2 
17
42

Bạn thậm chí có thể sử dụng các đối tượng được tạo từ các lớp có chuỗi f. Hãy tưởng tượng bạn có lớp sau

>>> 17 / 3  # phép chia trả về số thực chứ không phải số nguyên như một số ngôn ngữ khác
5.666666666666667
>>>
>>> 17 // 3  # phép chia loại bỏ phần thập phân
5
>>> 17 % 3  # toán tử phần % trả về phần dư của phép chia
2
>>> 5 * 3 + 2 
17
43

Bạn có thể làm điều này

>>>

>>> 17 / 3  # phép chia trả về số thực chứ không phải số nguyên như một số ngôn ngữ khác
5.666666666666667
>>>
>>> 17 // 3  # phép chia loại bỏ phần thập phân
5
>>> 17 % 3  # toán tử phần % trả về phần dư của phép chia
2
>>> 5 * 3 + 2 
17
44

Các phương thức

>>> 'spam eggs'  # dấu  ' '
'spam eggs'
>>> 'doesn\'t'  #dùng \ để escape dấu '
"doesn't"
>>> "doesn't"  #  hoặc dùng  dấu " thay vào đó
"doesn't"
>>> '"Yes," he said.'
'"Yes," he said.'
>>> "\"Yes,\" he said."
'"Yes," he said.'
>>> '"Isn\'t," she said.'
'"Isn\'t," she said.'
13 và
>>> 'spam eggs'  # dấu  ' '
'spam eggs'
>>> 'doesn\'t'  #dùng \ để escape dấu '
"doesn't"
>>> "doesn't"  #  hoặc dùng  dấu " thay vào đó
"doesn't"
>>> '"Yes," he said.'
'"Yes," he said.'
>>> "\"Yes,\" he said."
'"Yes," he said.'
>>> '"Isn\'t," she said.'
'"Isn\'t," she said.'
14 xử lý cách các đối tượng được trình bày dưới dạng chuỗi, vì vậy bạn sẽ cần đảm bảo rằng bạn bao gồm ít nhất một trong các phương thức đó trong định nghĩa lớp của mình. Nếu bạn phải chọn một, hãy chọn
>>> 'spam eggs'  # dấu  ' '
'spam eggs'
>>> 'doesn\'t'  #dùng \ để escape dấu '
"doesn't"
>>> "doesn't"  #  hoặc dùng  dấu " thay vào đó
"doesn't"
>>> '"Yes," he said.'
'"Yes," he said.'
>>> "\"Yes,\" he said."
'"Yes," he said.'
>>> '"Isn\'t," she said.'
'"Isn\'t," she said.'
14 vì nó có thể được sử dụng thay cho
>>> 'spam eggs'  # dấu  ' '
'spam eggs'
>>> 'doesn\'t'  #dùng \ để escape dấu '
"doesn't"
>>> "doesn't"  #  hoặc dùng  dấu " thay vào đó
"doesn't"
>>> '"Yes," he said.'
'"Yes," he said.'
>>> "\"Yes,\" he said."
'"Yes," he said.'
>>> '"Isn\'t," she said.'
'"Isn\'t," she said.'
13

Chuỗi được trả về bởi

>>> 'spam eggs'  # dấu  ' '
'spam eggs'
>>> 'doesn\'t'  #dùng \ để escape dấu '
"doesn't"
>>> "doesn't"  #  hoặc dùng  dấu " thay vào đó
"doesn't"
>>> '"Yes," he said.'
'"Yes," he said.'
>>> "\"Yes,\" he said."
'"Yes," he said.'
>>> '"Isn\'t," she said.'
'"Isn\'t," she said.'
13 là biểu diễn chuỗi không chính thức của một đối tượng và có thể đọc được. Chuỗi được trả về bởi
>>> 'spam eggs'  # dấu  ' '
'spam eggs'
>>> 'doesn\'t'  #dùng \ để escape dấu '
"doesn't"
>>> "doesn't"  #  hoặc dùng  dấu " thay vào đó
"doesn't"
>>> '"Yes," he said.'
'"Yes," he said.'
>>> "\"Yes,\" he said."
'"Yes," he said.'
>>> '"Isn\'t," she said.'
'"Isn\'t," she said.'
14 là đại diện chính thức và phải rõ ràng. Gọi
>>> 'spam eggs'  # dấu  ' '
'spam eggs'
>>> 'doesn\'t'  #dùng \ để escape dấu '
"doesn't"
>>> "doesn't"  #  hoặc dùng  dấu " thay vào đó
"doesn't"
>>> '"Yes," he said.'
'"Yes," he said.'
>>> "\"Yes,\" he said."
'"Yes," he said.'
>>> '"Isn\'t," she said.'
'"Isn\'t," she said.'
19 và
>>> 'spam eggs'  # dấu  ' '
'spam eggs'
>>> 'doesn\'t'  #dùng \ để escape dấu '
"doesn't"
>>> "doesn't"  #  hoặc dùng  dấu " thay vào đó
"doesn't"
>>> '"Yes," he said.'
'"Yes," he said.'
>>> "\"Yes,\" he said."
'"Yes," he said.'
>>> '"Isn\'t," she said.'
'"Isn\'t," she said.'
30 tốt hơn là sử dụng trực tiếp
>>> 'spam eggs'  # dấu  ' '
'spam eggs'
>>> 'doesn\'t'  #dùng \ để escape dấu '
"doesn't"
>>> "doesn't"  #  hoặc dùng  dấu " thay vào đó
"doesn't"
>>> '"Yes," he said.'
'"Yes," he said.'
>>> "\"Yes,\" he said."
'"Yes," he said.'
>>> '"Isn\'t," she said.'
'"Isn\'t," she said.'
13 và
>>> 'spam eggs'  # dấu  ' '
'spam eggs'
>>> 'doesn\'t'  #dùng \ để escape dấu '
"doesn't"
>>> "doesn't"  #  hoặc dùng  dấu " thay vào đó
"doesn't"
>>> '"Yes," he said.'
'"Yes," he said.'
>>> "\"Yes,\" he said."
'"Yes," he said.'
>>> '"Isn\'t," she said.'
'"Isn\'t," she said.'
14

Theo mặc định, f-string sẽ sử dụng

>>> 'spam eggs'  # dấu  ' '
'spam eggs'
>>> 'doesn\'t'  #dùng \ để escape dấu '
"doesn't"
>>> "doesn't"  #  hoặc dùng  dấu " thay vào đó
"doesn't"
>>> '"Yes," he said.'
'"Yes," he said.'
>>> "\"Yes,\" he said."
'"Yes," he said.'
>>> '"Isn\'t," she said.'
'"Isn\'t," she said.'
13, nhưng bạn có thể đảm bảo rằng chúng sử dụng
>>> 'spam eggs'  # dấu  ' '
'spam eggs'
>>> 'doesn\'t'  #dùng \ để escape dấu '
"doesn't"
>>> "doesn't"  #  hoặc dùng  dấu " thay vào đó
"doesn't"
>>> '"Yes," he said.'
'"Yes," he said.'
>>> "\"Yes,\" he said."
'"Yes," he said.'
>>> '"Isn\'t," she said.'
'"Isn\'t," she said.'
14 nếu bạn bao gồm cờ chuyển đổi
>>> 'spam eggs'  # dấu  ' '
'spam eggs'
>>> 'doesn\'t'  #dùng \ để escape dấu '
"doesn't"
>>> "doesn't"  #  hoặc dùng  dấu " thay vào đó
"doesn't"
>>> '"Yes," he said.'
'"Yes," he said.'
>>> "\"Yes,\" he said."
'"Yes," he said.'
>>> '"Isn\'t," she said.'
'"Isn\'t," she said.'
35

>>>

>>> 17 / 3  # phép chia trả về số thực chứ không phải số nguyên như một số ngôn ngữ khác
5.666666666666667
>>>
>>> 17 // 3  # phép chia loại bỏ phần thập phân
5
>>> 17 % 3  # toán tử phần % trả về phần dư của phép chia
2
>>> 5 * 3 + 2 
17
45

Nếu bạn muốn đọc một số cuộc trò chuyện dẫn đến chuỗi f hỗ trợ các biểu thức Python đầy đủ, bạn có thể làm như vậy tại đây

Loại bỏ các quảng cáo

Chuỗi f nhiều dòng

Bạn có thể có nhiều chuỗi

>>>

>>> 17 / 3  # phép chia trả về số thực chứ không phải số nguyên như một số ngôn ngữ khác
5.666666666666667
>>>
>>> 17 // 3  # phép chia loại bỏ phần thập phân
5
>>> 17 % 3  # toán tử phần % trả về phần dư của phép chia
2
>>> 5 * 3 + 2 
17
46

Nhưng hãy nhớ rằng bạn cần đặt một _____178 trước mỗi dòng của một chuỗi nhiều dòng. Đoạn mã sau sẽ không hoạt động

>>>

>>> 17 / 3  # phép chia trả về số thực chứ không phải số nguyên như một số ngôn ngữ khác
5.666666666666667
>>>
>>> 17 // 3  # phép chia loại bỏ phần thập phân
5
>>> 17 % 3  # toán tử phần % trả về phần dư của phép chia
2
>>> 5 * 3 + 2 
17
47

Nếu bạn không đặt một

>>> 17 / 3  # phép chia trả về số thực chứ không phải số nguyên như một số ngôn ngữ khác
5.666666666666667
>>>
>>> 17 // 3  # phép chia loại bỏ phần thập phân
5
>>> 17 % 3  # toán tử phần % trả về phần dư của phép chia
2
>>> 5 * 3 + 2 
17
78 trước mỗi dòng riêng lẻ, thì bạn sẽ chỉ có những dây đàn thông thường, cũ kỹ, đa dạng trong vườn chứ không phải những dây đàn f lạ mắt, mới mẻ, sáng bóng

Nếu bạn muốn trải các chuỗi trên nhiều dòng, bạn cũng có tùy chọn thoát khỏi trả về bằng một

>>> 'spam eggs'  # dấu  ' '
'spam eggs'
>>> 'doesn\'t'  #dùng \ để escape dấu '
"doesn't"
>>> "doesn't"  #  hoặc dùng  dấu " thay vào đó
"doesn't"
>>> '"Yes," he said.'
'"Yes," he said.'
>>> "\"Yes,\" he said."
'"Yes," he said.'
>>> '"Isn\'t," she said.'
'"Isn\'t," she said.'
38

>>>

>>> 17 / 3  # phép chia trả về số thực chứ không phải số nguyên như một số ngôn ngữ khác
5.666666666666667
>>>
>>> 17 // 3  # phép chia loại bỏ phần thập phân
5
>>> 17 % 3  # toán tử phần % trả về phần dư của phép chia
2
>>> 5 * 3 + 2 
17
48

Nhưng đây là điều sẽ xảy ra nếu bạn sử dụng

>>> 'spam eggs'  # dấu  ' '
'spam eggs'
>>> 'doesn\'t'  #dùng \ để escape dấu '
"doesn't"
>>> "doesn't"  #  hoặc dùng  dấu " thay vào đó
"doesn't"
>>> '"Yes," he said.'
'"Yes," he said.'
>>> "\"Yes,\" he said."
'"Yes," he said.'
>>> '"Isn\'t," she said.'
'"Isn\'t," she said.'
39

>>>

>>> 17 / 3  # phép chia trả về số thực chứ không phải số nguyên như một số ngôn ngữ khác
5.666666666666667
>>>
>>> 17 // 3  # phép chia loại bỏ phần thập phân
5
>>> 17 % 3  # toán tử phần % trả về phần dư của phép chia
2
>>> 5 * 3 + 2 
17
49

Đọc hướng dẫn thụt đầu dòng trong PEP 8

Tốc độ

>>> 17 / 3  # phép chia trả về số thực chứ không phải số nguyên như một số ngôn ngữ khác
5.666666666666667
>>>
>>> 17 // 3  # phép chia loại bỏ phần thập phân
5
>>> 17 % 3  # toán tử phần % trả về phần dư của phép chia
2
>>> 5 * 3 + 2 
17
78 trong f-string cũng có thể là viết tắt của “fast. ”

f-strings nhanh hơn cả %-formatting và

>>> 17 / 3  # phép chia trả về số thực chứ không phải số nguyên như một số ngôn ngữ khác
5.666666666666667
>>>
>>> 17 // 3  # phép chia loại bỏ phần thập phân
5
>>> 17 % 3  # toán tử phần % trả về phần dư của phép chia
2
>>> 5 * 3 + 2 
17
06. Như bạn đã thấy, chuỗi f là các biểu thức được đánh giá trong thời gian chạy thay vì các giá trị không đổi. Đây là một đoạn trích từ các tài liệu

“Chuỗi F cung cấp một cách để nhúng các biểu thức bên trong các ký tự chuỗi, sử dụng một 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à

>>> 17 / 3  # phép chia trả về số thực chứ không phải số nguyên như một số ngôn ngữ khác
5.666666666666667
>>>
>>> 17 // 3  # phép chia loại bỏ phần thập phân
5
>>> 17 % 3  # toán tử phần % trả về phần dư của phép chia
2
>>> 5 * 3 + 2 
17
78, chứa các biểu thức bên trong dấu ngoặc nhọn. Các biểu thức được thay thế bằng các giá trị của chúng. " [Nguồn]

Khi chạy, biểu thức bên trong dấu ngoặc nhọn được đánh giá trong phạm vi riêng của nó và sau đó được đặt cùng với phần ký tự chuỗi của chuỗi f. Chuỗi kết quả sau đó được trả về. Đó là tất cả những gì nó cần

Đây là một so sánh tốc độ

>>>

>>> 17 / 3  # phép chia trả về số thực chứ không phải số nguyên như một số ngôn ngữ khác
5.666666666666667
>>>
>>> 17 // 3  # phép chia loại bỏ phần thập phân
5
>>> 17 % 3  # toán tử phần % trả về phần dư của phép chia
2
>>> 5 * 3 + 2 
17
50

>>>

>>> 17 / 3  # phép chia trả về số thực chứ không phải số nguyên như một số ngôn ngữ khác
5.666666666666667
>>>
>>> 17 // 3  # phép chia loại bỏ phần thập phân
5
>>> 17 % 3  # toán tử phần % trả về phần dư của phép chia
2
>>> 5 * 3 + 2 
17
51

>>>

>>> 17 / 3  # phép chia trả về số thực chứ không phải số nguyên như một số ngôn ngữ khác
5.666666666666667
>>>
>>> 17 // 3  # phép chia loại bỏ phần thập phân
5
>>> 17 % 3  # toán tử phần % trả về phần dư của phép chia
2
>>> 5 * 3 + 2 
17
52

Như bạn có thể thấy, f-string xuất hiện trên cùng

Tuy nhiên, không phải lúc nào cũng vậy. Khi chúng được triển khai lần đầu tiên, chúng có một số vấn đề về tốc độ và cần được thực hiện nhanh hơn

>>> 17 / 3  # phép chia trả về số thực chứ không phải số nguyên như một số ngôn ngữ khác
5.666666666666667
>>>
>>> 17 // 3  # phép chia loại bỏ phần thập phân
5
>>> 17 % 3  # toán tử phần % trả về phần dư của phép chia
2
>>> 5 * 3 + 2 
17
06. Một opcode
>>> 'spam eggs'  # dấu  ' '
'spam eggs'
>>> 'doesn\'t'  #dùng \ để escape dấu '
"doesn't"
>>> "doesn't"  #  hoặc dùng  dấu " thay vào đó
"doesn't"
>>> '"Yes," he said.'
'"Yes," he said.'
>>> "\"Yes,\" he said."
'"Yes," he said.'
>>> '"Isn\'t," she said.'
'"Isn\'t," she said.'
74 đặc biệt đã được giới thiệu

Loại bỏ các quảng cáo

Chuỗi f Python. Các chi tiết phiền phức

Bây giờ bạn đã tìm hiểu tất cả về lý do tại sao f-string lại tuyệt vời, tôi chắc rằng bạn muốn ra khỏi đó và bắt đầu sử dụng chúng. Dưới đây là một số chi tiết cần ghi nhớ khi bạn dấn thân vào thế giới mới dũng cảm này

Dấu ngoặc kép

Bạn có thể sử dụng nhiều loại dấu ngoặc kép bên trong các biểu thức. Chỉ cần đảm bảo rằng bạn không sử dụng cùng một loại dấu ngoặc kép ở bên ngoài chuỗi f mà bạn đang sử dụng trong biểu thức

Mã này sẽ hoạt động

>>>

>>> 17 / 3  # phép chia trả về số thực chứ không phải số nguyên như một số ngôn ngữ khác
5.666666666666667
>>>
>>> 17 // 3  # phép chia loại bỏ phần thập phân
5
>>> 17 % 3  # toán tử phần % trả về phần dư của phép chia
2
>>> 5 * 3 + 2 
17
53

Mã này cũng sẽ hoạt động

>>>

>>> 17 / 3  # phép chia trả về số thực chứ không phải số nguyên như một số ngôn ngữ khác
5.666666666666667
>>>
>>> 17 // 3  # phép chia loại bỏ phần thập phân
5
>>> 17 % 3  # toán tử phần % trả về phần dư của phép chia
2
>>> 5 * 3 + 2 
17
54

Bạn cũng có thể sử dụng dấu ngoặc kép

>>>

>>> 17 / 3  # phép chia trả về số thực chứ không phải số nguyên như một số ngôn ngữ khác
5.666666666666667
>>>
>>> 17 // 3  # phép chia loại bỏ phần thập phân
5
>>> 17 % 3  # toán tử phần % trả về phần dư của phép chia
2
>>> 5 * 3 + 2 
17
55

>>>

>>> 17 / 3  # phép chia trả về số thực chứ không phải số nguyên như một số ngôn ngữ khác
5.666666666666667
>>>
>>> 17 // 3  # phép chia loại bỏ phần thập phân
5
>>> 17 % 3  # toán tử phần % trả về phần dư của phép chia
2
>>> 5 * 3 + 2 
17
56

Nếu bạn thấy cần sử dụng cùng một loại dấu ngoặc kép ở cả bên trong và bên ngoài chuỗi, thì bạn có thể thoát bằng

>>> 'spam eggs'  # dấu  ' '
'spam eggs'
>>> 'doesn\'t'  #dùng \ để escape dấu '
"doesn't"
>>> "doesn't"  #  hoặc dùng  dấu " thay vào đó
"doesn't"
>>> '"Yes," he said.'
'"Yes," he said.'
>>> "\"Yes,\" he said."
'"Yes," he said.'
>>> '"Isn\'t," she said.'
'"Isn\'t," she said.'
38

>>>

>>> 17 / 3  # phép chia trả về số thực chứ không phải số nguyên như một số ngôn ngữ khác
5.666666666666667
>>>
>>> 17 // 3  # phép chia loại bỏ phần thập phân
5
>>> 17 % 3  # toán tử phần % trả về phần dư của phép chia
2
>>> 5 * 3 + 2 
17
57

từ điển

Nói về dấu ngoặc kép, hãy coi chừng khi bạn đang làm việc với từ điển. Nếu bạn định sử dụng dấu ngoặc đơn cho các khóa của từ điển, hãy nhớ đảm bảo rằng bạn đang sử dụng dấu ngoặc kép cho chuỗi f chứa khóa

Điều này sẽ làm việc

>>>

>>> 17 / 3  # phép chia trả về số thực chứ không phải số nguyên như một số ngôn ngữ khác
5.666666666666667
>>>
>>> 17 // 3  # phép chia loại bỏ phần thập phân
5
>>> 17 % 3  # toán tử phần % trả về phần dư của phép chia
2
>>> 5 * 3 + 2 
17
58

Nhưng đây sẽ là một mớ hỗn độn với lỗi cú pháp

>>>

>>> 17 / 3  # phép chia trả về số thực chứ không phải số nguyên như một số ngôn ngữ khác
5.666666666666667
>>>
>>> 17 // 3  # phép chia loại bỏ phần thập phân
5
>>> 17 % 3  # toán tử phần % trả về phần dư của phép chia
2
>>> 5 * 3 + 2 
17
59

Nếu bạn sử dụng cùng loại dấu ngoặc kép xung quanh các khóa từ điển như bạn làm ở bên ngoài chuỗi f, thì dấu ngoặc kép ở đầu khóa từ điển đầu tiên sẽ được hiểu là kết thúc chuỗi

Loại bỏ các quảng cáo

Niềng răng

Để tạo dấu ngoặc xuất hiện trong chuỗi của bạn, bạn phải sử dụng dấu ngoặc kép

>>>

>>> 17 / 3  # phép chia trả về số thực chứ không phải số nguyên như một số ngôn ngữ khác
5.666666666666667
>>>
>>> 17 // 3  # phép chia loại bỏ phần thập phân
5
>>> 17 % 3  # toán tử phần % trả về phần dư của phép chia
2
>>> 5 * 3 + 2 
17
00

Lưu ý rằng việc sử dụng dấu ngoặc ba sẽ dẫn đến chỉ có dấu ngoặc đơn trong chuỗi của bạn

>>>

>>> 17 / 3  # phép chia trả về số thực chứ không phải số nguyên như một số ngôn ngữ khác
5.666666666666667
>>>
>>> 17 // 3  # phép chia loại bỏ phần thập phân
5
>>> 17 % 3  # toán tử phần % trả về phần dư của phép chia
2
>>> 5 * 3 + 2 
17
01

Tuy nhiên, bạn có thể nhận được nhiều niềng răng hơn nếu bạn sử dụng nhiều hơn ba niềng răng

>>>

>>> 17 / 3  # phép chia trả về số thực chứ không phải số nguyên như một số ngôn ngữ khác
5.666666666666667
>>>
>>> 17 // 3  # phép chia loại bỏ phần thập phân
5
>>> 17 % 3  # toán tử phần % trả về phần dư của phép chia
2
>>> 5 * 3 + 2 
17
02

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

Như bạn đã thấy trước đó, bạn 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, bạn 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

>>>

>>> 17 / 3  # phép chia trả về số thực chứ không phải số nguyên như một số ngôn ngữ khác
5.666666666666667
>>>
>>> 17 // 3  # phép chia loại bỏ phần thập phân
5
>>> 17 % 3  # toán tử phần % trả về phần dư của phép chia
2
>>> 5 * 3 + 2 
17
03

Bạn có thể giải quyết vấn đề này bằng cách đánh giá trước biểu thức và sử dụng kết quả trong chuỗi f

>>>

>>> 17 / 3  # phép chia trả về số thực chứ không phải số nguyên như một số ngôn ngữ khác
5.666666666666667
>>>
>>> 17 // 3  # phép chia loại bỏ phần thập phân
5
>>> 17 % 3  # toán tử phần % trả về phần dư của phép chia
2
>>> 5 * 3 + 2 
17
04

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

Các biểu thức không nên bao gồm các nhận xét sử dụng ký hiệu

>>> 'spam eggs'  # dấu  ' '
'spam eggs'
>>> 'doesn\'t'  #dùng \ để escape dấu '
"doesn't"
>>> "doesn't"  #  hoặc dùng  dấu " thay vào đó
"doesn't"
>>> '"Yes," he said.'
'"Yes," he said.'
>>> "\"Yes,\" he said."
'"Yes," he said.'
>>> '"Isn\'t," she said.'
'"Isn\'t," she said.'
76. Bạn sẽ gặp lỗi cú pháp

>>>

>>> 17 / 3  # phép chia trả về số thực chứ không phải số nguyên như một số ngôn ngữ khác
5.666666666666667
>>>
>>> 17 // 3  # phép chia loại bỏ phần thập phân
5
>>> 17 % 3  # toán tử phần % trả về phần dư của phép chia
2
>>> 5 * 3 + 2 
17
05

Đi tiếp và định dạng

Bạn vẫn có thể sử dụng các cách định dạng chuỗi cũ hơn, nhưng với chuỗi f, giờ đây bạn có một cách ngắn gọn, dễ đọc và thuận tiện hơn, nhanh hơn và ít bị lỗi hơn. Đơn giản hóa cuộc sống của bạn bằng cách sử dụng chuỗi f là một lý do tuyệt vời để bắt đầu sử dụng Python 3. 6 nếu bạn chưa thực hiện chuyển đổi. [Nếu bạn vẫn đang sử dụng Python 2, đừng quên rằng 2020 sẽ đến sớm thôi. ]

Theo Zen of Python, khi bạn cần quyết định cách làm một việc gì đó, thì “[t]đây phải là một– và tốt nhất là chỉ có một – cách rõ ràng để làm việc đó. ” Mặc dù chuỗi f không phải là cách duy nhất khả thi để bạn định dạng chuỗi, nhưng chúng có vị trí tuyệt vời để trở thành một cách rõ ràng để hoàn thành công việc

Đọc thêm

Nếu bạn muốn đọc phần thảo luận mở rộng về phép nội suy chuỗi, hãy xem PEP 502. Ngoài ra, dự thảo PEP 536 có thêm một số suy nghĩ về tương lai của f-string

Tải xuống PDF miễn phí. Bảng cheat Python 3

Để thú vị hơn với các chuỗi, hãy xem các bài viết sau

  • Các phương pháp hay nhất về định dạng chuỗi Python của Dan Bader
  • Giới thiệu thực tế về Quét web bằng Python của Colin OKeefe

Python hạnh phúc

Lấy bài kiểm tra. Kiểm tra kiến ​​thức của bạn với bài kiểm tra tương tác “Python f-Strings” của chúng tôi. Sau khi hoàn thành, bạn sẽ nhận được điểm số để có thể theo dõi quá trình học tập của mình theo thời gian

Lấy bài kiểm tra "

Đánh dấu là đã hoàn thành

Xem ngay Hướng dẫn này có một khóa học video liên quan do nhóm Real Python tạo. Xem nó cùng với hướng dẫn bằng văn bản để hiểu sâu hơn. Chuỗi f của Python 3. Cú pháp định dạng chuỗi được cải tiến

🐍 Thủ thuật Python 💌

Nhận một Thủ thuật Python ngắn và hấp dẫn được gửi đến hộp thư đến của bạn vài ngày một lần. Không có thư rác bao giờ. Hủy đăng ký bất cứ lúc nào. Được quản lý bởi nhóm Real Python

Gửi cho tôi thủ thuật Python »

Giới thiệu về Joanna Jablonski

Joanna là Biên tập viên điều hành của Real Python. Cô ấy yêu ngôn ngữ tự nhiên nhiều như cô ấy yêu ngôn ngữ lập trình

» Thông tin thêm về Joanna

Mỗi hướng dẫn tại Real Python được tạo bởi một nhóm các nhà phát triển để nó đáp ứng các tiêu chuẩn chất lượng cao của chúng tôi. Các thành viên trong nhóm đã làm việc trong hướng dẫn này là

Adriana

David

Đan

Jim

Pavel

Bậc thầy Kỹ năng Python trong thế giới thực Với quyền truy cập không giới hạn vào Python thực

Tham gia với chúng tôi và có quyền truy cập vào hàng nghìn hướng dẫn, khóa học video thực hành và cộng đồng các Pythonistas chuyên gia

Nâng cao kỹ năng Python của bạn »

Bậc thầy Kỹ năng Python trong thế giới thực
Với quyền truy cập không giới hạn vào Python thực

Tham gia với chúng tôi và có quyền truy cập vào hàng ngàn hướng dẫn, khóa học video thực hành và cộng đồng Pythonistas chuyên gia

Nâng cao kỹ năng Python của bạn »

Bạn nghĩ sao?

Đánh giá bài viết này

Tweet Chia sẻ Chia sẻ Email

Bài học số 1 hoặc điều yêu thích mà bạn đã học được là gì?

Mẹo bình luận. Những nhận xét hữu ích nhất là những nhận xét được viết với mục đích học hỏi hoặc giúp đỡ các sinh viên khác. Nhận các mẹo để đặt câu hỏi hay và nhận câu trả lời cho các câu hỏi phổ biến trong cổng thông tin hỗ trợ của chúng tôi

Chủ Đề