Giống như C, bạn có thể chia một đường dài thành nhiều dòng ngắn. Nhưng trong Python, nếu tôi làm điều này, sẽ có một lỗi thụt lề ... Có thể không?Có thể chia một đường dài thành nhiều dòng trong Python
Trả lời
Từ PEP 8 - Style Guide for Python Code:
Cách ưa thích của gói đường dài là sử dụng hàm ý dòng tiếp nối của Python bên trong dấu ngoặc đơn, dấu ngoặc và dấu ngoặc. Nếu cần, bạn có thể thêm một cặp ngoặc đơn bổ sung xung quanh một biểu thức, nhưng đôi khi sử dụng dấu gạch chéo ngược trông sẽ đẹp hơn. Đảm bảo thụt lề dòng tiếp tục một cách thích hợp.
Ví dụ về tiếp tục dòng ngầm:
a = some_function(
'1' + '2' + '3' - '4')
Về chủ đề của dòng-chia xung quanh một nhà điều hành nhị phân, nó tiếp tục nói: -
Trong nhiều thập kỷ phong cách khuyến cáo là để phá vỡ sau khi các toán tử nhị phân. Nhưng điều này có thể làm tổn thương khả năng đọc theo hai cách: các nhà khai thác có xu hướng phân tán 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 đó.
Trong mã Python, được phép ngắt trước hoặc sau toán tử nhị phân, miễn là quy ước nhất quán cục bộ. Đối với mã mới Kiểu của Knuth (ngắt dòng trước toán tử) được đề xuất.
Ví dụ về tiếp tục dòng rõ ràng:
a = '1' \
+ '2' \
+ '3' \
- '4'
Đối với ví dụ thứ hai, nó không giống như dấu cách (mà bạn không thể nhìn thấy) sau '\' – cardamom
@cardamom Vấn đề này không phải là một đặc tính của python; ví dụ, nếu bạn cố gắng viết một kịch bản lệnh shell, ví dụ, một vòng lặp 'for' để tạo các thư mục:' cho i trong dir1 \ '(dòng mới)' dir2 \ '(dòng mới)' dir3 \ '(dòng mới) '... mkdir $ i' để tập lệnh này chạy, không được có dấu cách sau dấu chéo ngược –
Nó hoạt động bằng Python quá:
>>> 1+\
2+\
3
6
>>> (1+
2+
3)
6
Theo như tôi biết, nó có thể được thực hiện. Python có tiếp tục dòng ngầm (bên trong dấu ngoặc đơn, dấu ngoặc và chuỗi) cho các chuỗi được trích dẫn ba lần ("""like this"""
) và sự thụt lề của các dòng tiếp tục không quan trọng. Để biết thêm thông tin, bạn có thể muốn đọc this bài viết về phân tích từ vựng, từ python.org.
Chuỗi chỉ thực hiện tiếp tục ngầm bên trong chuỗi được trích dẫn ba lần. Đó là sự khác biệt giữa ba và đơn trích dẫn. –
Có nhiều cách để thực hiện.
1). Tuyên bố dài:
>>> def print_something():
print 'This is a really long line,', \
'but we can make it across multiple lines.'
2). Sử dụng dấu ngoặc đơn:
>>> def print_something():
print ('Wow, this also works?',
'I never knew!')
3). Sử dụng \
một lần nữa:
>>> x = 10
>>> if x == 10 or x > 0 or \
x < 100:
print 'True'
Trích dẫn PEP8:
Cách ưa thích của gói dài dòng là bằng cách sử dụng hàm ý tiếp tục dòng Python bên trong dấu ngoặc, dấu ngoặc và dấu ngoặc.Nếu cần, bạn có thể thêm một cặp dấu ngoặc đơn bổ sung xung quanh một biểu thức, nhưng đôi khi sử dụng dấu gạch chéo ngược trông tốt hơn. Đảm bảo thụt lề dòng tiếp tục một cách thích hợp. Địa điểm ưa thích để giải quyết xung quanh toán tử nhị phân là sau toán tử, chứ không phải trước toán tử đó.
Điều này xuất hiện trong một cuộc nói chuyện về phong cách mã tại PyOhio và chúng tôi đi đến kết luận rằng 2) là một cách tiêu chuẩn tốt để đi. Nó không hoàn hảo kể từ khi thay đổi các văn bản không phải là dễ dàng, nhưng ít nhất nó đọc ok. – Rick
Tôi đã tìm kiếm ví dụ số 1 trong một thời gian dài. –
@ user225312 bạn cũng có thể sử dụng mã '' 'dòng mới hơn' '' 'hoặc thói quen xấu này không? – onxx
Nếu bạn muốn gán một str dài để thay đổi, bạn có thể làm điều đó như sau:
net_weights_pathname = (
'/home/acgtyrant/BigDatas/'
'model_configs/lenet_iter_10000.caffemodel')
Đừng thêm bất kỳ dấu phẩy, hoặc bạn sẽ nhận được một tuple chứa nhiều strs!
Điều này làm việc vì python tự động nối các chuỗi bên trong dấu ngoặc đơn, mà không cần phải đặt toán tử '+'. – dangonfast
Khi cố gắng để nhập văn bản liên tục (ví dụ, một truy vấn) không đặt dấu phẩy ở cuối dòng hoặc bạn sẽ nhận được một danh sách các chuỗi thay vì một chuỗi dài:
queryText= "SELECT * FROM TABLE1 AS T1"\
"JOIN TABLE2 AS T2 ON T1.SOMETHING = T2.SOMETHING"\
"JOIN TABLE3 AS T3 ON T3.SOMETHING = T2.SOMETHING"\
"WHERE SOMETHING BETWEEN <WHATEVER> AND <WHATEVER ELSE>"\
"ORDER BY WHATEVERS DESC"
kinda như thế .
Có một nhận xét như thế này từ acgtyrant
, xin lỗi, không thấy điều đó. :/
DB mã liên quan trông dễ nhìn hơn trong nhiều dòng, được bao bọc bởi một cặp dấu ngoặc kép ba:
SQL = """SELECT
id,
fld_1,
fld_2,
fld_3,
......
FROM some_tbl"""
hơn một dòng dài khổng lồ sau:
SQL = "SELECT id, fld_1, fld_2, fld_3, .................................... FROM some_tbl"
Nó chỉ là một cách giải quyết, nhưng bằng cách sử dụng docstrings như chuỗi không phải là một cách pythonic để mã. –
- 1. Làm thế nào tôi có thể chia nhỏ dòng dài này bằng Python?
- 2. PHP: Chia chuỗi truy vấn dài trên nhiều dòng
- 3. Phá vỡ một dòng trăn thành nhiều dòng?
- 4. Cụm từ thông dụng để chia các chuỗi dài thành nhiều dòng
- 5. Cách tách quy tắc biểu thức chính quy dài thành nhiều dòng trong Python
- 6. Chia số dài dài thành phần trăm
- 7. Chia Ruby regex qua nhiều dòng
- 8. Tuyến đường Spray.io có thể được chia thành nhiều "Bộ điều khiển" không?
- 9. tách một chuỗi dài biến thành nhiều bộ phận trong python
- 10. Tôi có thể chia lệnh trên nhiều dòng trong Apache Pig Latin không?
- 11. Cách chia NSString dài thành các trang
- 12. Có thể chia thành byte []
- 13. Dòng phân chia có thể thay đổi trong wxpython?
- 14. Làm thế nào tôi có thể tách báo cáo dài thành dòng trong Verilog
- 15. Làm thế nào để chia dòng dài trong mẫu Django?
- 16. cắt một chuỗi thành nhiều dòng trong bash
- 17. Chuỗi dài PHP không có dòng mới
- 18. chuỗi dài không tách trên nhiều dòng trong IE
- 19. nhiều đường Matching bằng Python
- 20. Quấn đường dài trong .vimrc
- 21. chia một chuỗi trong python
- 22. Rất Dài Nếu Tuyên Bố trong Python
- 23. chia PDF thành nhiều tệp trong C#
- 24. SQL chia nhiều cột thành nhiều hàng
- 25. Có thể ngăn chặn dòng tiêu đề nhiều dòng trong một DataGridView không?
- 26. Làm thế nào để phá vỡ một chặng đường dài với tuyên bố trong python
- 27. Chia chuỗi html thành nhiều trang
- 28. Symfony2: Chia routing.yml thành nhiều tệp
- 29. Tôi có thể thực hiện ngắt dòng (tiếp tục dòng) bằng Python bằng cách nào?
- 30. Tránh các dòng mã dài bằng Python
có thể trùng lặp của [Làm thế nào tôi có thể thực hiện ngắt dòng (tiếp tục dòng) trong Python?] (Http://stackoverflow.com/questions/53162/how-can-i-do-a-line-break-line-continuation-in-python) – EnergyNumbers