Trên mỗi lần lặp, chúng tôi kiểm tra xem người dùng có nhấn Enter
mà không nhập giá trị để thoát khỏi vòng lặp while True
hay không
Đây có thể là bất kỳ điều kiện nào khác, e. g. bạn có thể có một từ dừng chẳng hạn như
a = 1 + 2 + 3 + 4 - 5 * 2 b = 1 \ + 2 + \ 3 + 4\ - 5 *\ 2 print[a] # 0 print[b] # 00 hoặc
a = 1 + 2 + 3 + 4 - 5 * 2 b = 1 \ + 2 + \ 3 + 4\ - 5 *\ 2 print[a] # 0 print[b] # 01
Câu lệnh thoát ra khỏi vòng lặp
a = 1 + 2 + 3 + 4 - 5 * 2 b = 1 \ + 2 + \ 3 + 4\ - 5 *\ 2 print[a] # 0 print[b] # 02 hoặc
a = 1 + 2 + 3 + 4 - 5 * 2 b = 1 \ + 2 + \ 3 + 4\ - 5 *\ 2 print[a] # 0 print[b] # 03 trong cùng
Nếu người dùng nhập một giá trị, chúng tôi sử dụng phương thức
a = 1 + 2 + 3 + 4 - 5 * 2 b = 1 \ + 2 + \ 3 + 4\ - 5 *\ 2 print[a] # 0 print[b] # 04 để nối giá trị và ký tự xuống dòng vào danh sách
Phương thức thêm một mục vào cuối danh sách
Ngoài ra, bạn có thể sử dụng phương pháp Enter
0
Enter
1 được sử dụng cho đầu vào tương tác của người dùng
Lưu ý rằng người dùng phải nhấn Enter
2 [trên Unix] hoặc Enter
3 trên Windows để thoát
Nếu ban đầu bạn không muốn thêm một ký tự xuống dòng vào mỗi mục trong danh sách, hãy sử dụng phương thức Enter
4 để nối các mục trong danh sách thành một chuỗi
Thay vì thêm một ký tự xuống dòng [Enter
5] vào mỗi đầu vào, chúng tôi đã sử dụng phương thức Enter
4 để nối danh sách với dấu tách ký tự xuống dòng
Phương thức lấy một iterable làm đối số và trả về một chuỗi là chuỗi nối của các chuỗi trong iterable
Để ngắt một dòng thành nhiều dòng trong Python, hãy sử dụng dấu ngoặc đơn mở trong dòng bạn muốn ngắt. Bây giờ, Python mong đợi dấu ngoặc đơn đóng ở một trong các dòng tiếp theo và biểu thức được đánh giá qua các ranh giới dòng. Ngoài ra, bạn cũng có thể sử dụng dấu gạch chéo ngược
# Wrong: results = [variable1 + variable2 + [variable3 - variable4] - variable5 - variable6]2 ngay trước dấu ngắt dòng để thoát ký tự xuống dòng
Làm cách nào để ngắt một dòng thành nhiều dòng trong Python?
Xem video này trên YouTube
Sau khi xuất bản một bài viết về cách cô đọng nhiều dòng thành một dòng mã Python, nhiều Finxter đã hỏi. Làm cách nào để ngắt một dòng dài thành nhiều dòng trong Python?
Vấn đề. Đưa ra một dòng mã Python dài. Làm thế nào để chia nó thành nhiều dòng?
Có nhiều cách để chia nó thành nhiều dòng. Trước tiên hãy có một cái nhìn tổng quan
Tập thể dục. Chạy mã. Đầu ra là gì?
Bây giờ chúng ta đi sâu vào từng phương pháp đó
Phương pháp 1. Tiếp tục dòng ẩn — Sử dụng dấu ngoặc đơn để tránh dấu gạch chéo ngược ngắt dòng
PEP 8 – Style Guide lập luận rằng cách tốt nhất để ngắt các dòng dài thành nhiều dòng mã là sử dụng tiếp tục dòng ẩn bằng cách sử dụng dấu ngoặc đơn. Một dấu ngoặc đơn mở báo hiệu cho Python biết rằng biểu thức vẫn chưa kết thúc. Vì vậy, trình thông dịch Python tiếp tục tìm trong dòng sau để đóng biểu thức hiện đang mở. Bằng cách này, bạn có thể viết lại bất kỳ lớp lót nào của Python thành nhiều lớp chỉ bằng cách sử dụng một hoặc nhiều cặp dấu ngoặc đơn
Đây là tuyên bố ban đầu từ hướng dẫn phong cách PEP 8 [nhấn mạnh bởi tôi]
Cách ưu tiên để gói các dòng dài là sử dụng phần tiếp theo dòng ngụ ý của Python bên trong dấu ngoặc đơn, dấu ngoặc và dấu ngoặc nhọn. Nếu cần, bạn có thể thêm một cặp dấu ngoặc đơn xung quanh một biểu thức, nhưng đôi khi sử dụng dấu gạch chéo ngược sẽ tốt hơn. Đảm bảo thụt lề dòng tiếp theo một cách thích hợp
Bạn có cần một ví dụ để tiếp tục dòng ẩn không?
# Long Line a = list[zip[['Alice', 'Bob', 'Liz', 'Ann'], [18, 24, 19, 16]]] # Implicit Line Continuation b = list[zip[['Alice', 'Bob', 'Liz', 'Ann'], [18, 24, 19, 16]]] print[a] # [['Alice', 18], ['Bob', 24], ['Liz', 19], ['Ann', 16]] print[b] # [['Alice', 18], ['Bob', 24], ['Liz', 19], ['Ann', 16]]
Dòng dài
# Wrong: results = [variable1 + variable2 + [variable3 - variable4] - variable5 - variable6]3 nối hai danh sách lại với nhau để thu được kết quả
# Wrong: results = [variable1 + variable2 + [variable3 - variable4] - variable5 - variable6]4. Bạn có thể viết lại phần này thành nhiều dòng bằng cách sử dụng dấu ngoặc đơn hiện có. Lưu ý rằng cách tốt nhất là sắp xếp các dòng theo thứ bậc trong Python. Trong ví dụ của chúng tôi, hai danh sách được căn chỉnh khi tạo câu lệnh nhiều dòng để gán biến
# Wrong: results = [variable1 + variable2 + [variable3 - variable4] - variable5 - variable6]5
Nhớ lại. bạn luôn có thể ngắt dòng nếu dấu ngoặc mở, dấu ngoặc đơn hoặc vòng tay chưa được đóng
Phương pháp 2. Nối tiếp dòng rõ ràng — Sử dụng dấu gạch chéo ngược ngắt dòng \
Tuy nhiên, nếu bạn không muốn thêm dấu ngoặc đơn mới vào biểu thức của mình thì sao?
Câu trả lời là. Vâng. Chỉ cần sử dụng dấu gạch chéo ngược ngắt dòng
# Wrong: results = [variable1 + variable2 + [variable3 - variable4] - variable5 - variable6]2 mà bạn có thể gọi là tiếp tục dòng rõ ràng. Với dấu gạch chéo ngược, bạn có thể ngắt ở bất kỳ vị trí nào trong biểu thức của mình. Về mặt kỹ thuật, ký tự gạch chéo ngược “thoát” ký tự xuống dòng theo sau ngay sau đó. Bằng cách thoát khỏi ký tự xuống dòng, nó sẽ mất ý nghĩa và Python chỉ cần bỏ qua nó. Bằng cách này, bạn không phải giới thiệu bất kỳ dấu ngoặc đơn mới nào
Đây là một ví dụ tối thiểu cho thấy tính linh hoạt mà bạn có thể ngắt các dòng mới theo cách này
a = 1 + 2 + 3 + 4 - 5 * 2 b = 1 \ + 2 + \ 3 + 4\ - 5 *\ 2 print[a] # 0 print[b] # 0
Nhìn thấy đoạn mã lộn xộn trong ví dụ trước có thể khiến bạn đặt câu hỏi
Tôi sẽ đưa ra câu trả lời sau dựa trên PEP 8 Style Guide [do tôi tô sáng]
Trong nhiều thập kỷ, phong cách được đề xuất là phá vỡ sau các toán tử nhị phân. Nhưng điều này có thể ảnh hưởng đến khả năng đọc theo hai cách
- các toán tử có xu hướng nằm rải rác trên các cột khác nhau trên màn hình và
- mỗi toán tử được di chuyển ra khỏi toán hạng của nó và lên dòng trước đó
Ở đây, mắt phải làm việc nhiều hơn để biết mục nào được thêm và mục nào bị trừ
# Wrong: results = [variable1 + variable2 + [variable3 - variable4] - variable5 - variable6]
Để giải quyết vấn đề dễ đọc này, các nhà toán học và nhà xuất bản của họ tuân theo quy ước ngược lại
Donald Knuth giải thích quy tắc truyền thống trong sê-ri Máy tính và Sắp chữ của mình. “Mặc dù các công thức trong một đoạn văn luôn ngắt sau các phép toán và quan hệ nhị phân, nhưng các công thức được hiển thị luôn ngắt trước các phép toán nhị phân”
Vì vậy, mã sau đây được đề xuất
# Correct: results = [variable1 + variable2 + [variable3 - variable4] - variable5 - variable6]
Bạn có thể làm cả hai bằng Python nhưng bạn nên chọn cái sau để cải thiện khả năng đọc mã của mình
Phương pháp 3. Ngắt chuỗi bằng cách sử dụng chuỗi nhiều dòng với dấu ngoặc kép
Thí dụ. Giả sử, bạn có chuỗi dài sau đây từ Romeo và Juliet
s = 'Mistress! what, mistress! Juliet! fast, I warrant her, she:\n Why, lamb! why, lady! fie, you slug-a-bed!\n Why, love, I say! madam! sweet-heart! why, bride!\n What, not a word? you take your pennyworths now;\n Sleep for a week; for the next night, I warrant'
Lưu ý ký tự xuống dòng trong chuỗi. nó thực sự là một chuỗi nhiều dòng. Bạn có thể viết lại điều này thành nhiều dòng để cải thiện khả năng đọc được không?
Bạn có thể cấu trúc lại các chuỗi bằng cách sử dụng ba dấu ngoặc kép cho phép bạn xác định một chuỗi nhiều dòng mà không cần ký tự xuống dòng
a = 1 + 2 + 3 + 4 - 5 * 2 b = 1 \ + 2 + \ 3 + 4\ - 5 *\ 2 print[a] # 0 print[b] # 01 trong chuỗi. Điều này cải thiện đáng kể khả năng đọc các chuỗi nhiều dòng. Đây là một ví dụ
s1 = 'Mistress! what, mistress! Juliet! fast, I warrant her, she:\n Why, lamb! why, lady! fie, you slug-a-bed!\n Why, love, I say! madam! sweet-heart! why, bride!\n What, not a word? you take your pennyworths now;\n Sleep for a week; for the next night, I warrant' # MULTI-LINE s2 = '''Mistress! what, mistress! Juliet! fast, I warrant her, she: Why, lamb! why, lady! fie, you slug-a-bed! Why, love, I say! madam! sweet-heart! why, bride! What, not a word? you take your pennyworths now; Sleep for a week; for the next night, I warrant''' print[s1 == s2] # True
Đây là hai cách xác định cùng một chuỗi. Nếu bạn so sánh chúng, kết quả là
a = 1 + 2 + 3 + 4 - 5 * 2 b = 1 \ + 2 + \ 3 + 4\ - 5 *\ 2 print[a] # 0 print[b] # 02. Tuy nhiên, cách thứ hai dễ đọc hơn nhiều và nên được ưu tiên hơn.
Đi đâu từ đây?
Đủ lý thuyết. Hãy thực hành một số
Các lập trình viên được trả sáu con số trở lên vì họ có thể giải quyết vấn đề hiệu quả hơn bằng cách sử dụng trí thông minh máy móc và tự động hóa
Để trở nên thành công hơn trong việc viết mã, hãy giải quyết nhiều vấn đề thực tế hơn cho người thực. Đó là cách bạn trau dồi những kỹ năng bạn thực sự cần trong thực tế. Rốt cuộc, việc sử dụng lý thuyết học tập mà không ai cần là gì?
Bạn xây dựng các kỹ năng mã hóa có giá trị cao bằng cách làm việc trên các dự án mã hóa thực tế
Bạn có muốn ngừng học với các dự án đồ chơi và tập trung vào các dự án mã thực tế giúp bạn kiếm tiền và giải quyết các vấn đề thực sự cho mọi người không?
🚀 Nếu câu trả lời của bạn là CÓ. , cân nhắc trở thành nhà phát triển Python tự do. Đó là cách tốt nhất để tiếp cận nhiệm vụ cải thiện kỹ năng Python của bạn—ngay cả khi bạn là người mới hoàn toàn
Nếu bạn chỉ muốn tìm hiểu về cơ hội làm việc tự do, vui lòng xem hội thảo trên web miễn phí của tôi “Cách xây dựng kỹ năng Python có thu nhập cao của bạn” và tìm hiểu cách tôi phát triển công việc viết mã trực tuyến của mình cũng như cách bạn có thể làm được—từ sự thoải mái của bạn
Tham gia hội thảo trên web miễn phí ngay bây giờ
Chris
Trong khi làm việc với tư cách là một nhà nghiên cứu trong các hệ thống phân tán, Dr. Christian Mayer tìm thấy tình yêu của mình với việc dạy sinh viên khoa học máy tính
Để giúp sinh viên đạt được mức độ thành công Python cao hơn, anh ấy đã thành lập trang web giáo dục lập trình Finxter. com. Ông là tác giả của cuốn sách lập trình nổi tiếng Python One-Liners [NoStarch 2020], đồng tác giả của loạt sách tự xuất bản Coffee Break Python, người đam mê khoa học máy tính, cộng tác viên tự do và chủ sở hữu của một trong 10 blog Python lớn nhất thế giới
Niềm đam mê của anh ấy là viết, đọc và mã hóa. Nhưng niềm đam mê lớn nhất của anh ấy là phục vụ các lập trình viên đầy tham vọng thông qua Finxter và giúp họ nâng cao kỹ năng của mình. Bạn có thể tham gia học viện email miễn phí của anh ấy tại đây