Tôi có lỗi đã đề cập ở trên s1="some very long string............"
Có ai biết tôi đang làm gì sai không?
Tôi có lỗi đã đề cập ở trên s1="some very long string............"
Có ai biết tôi đang làm gì sai không?
Câu trả lời:
Bạn không đặt một "
trước khi kết thúc dòng.
Sử dụng """
nếu bạn muốn làm điều này:
""" a very long string ......
....that can span multiple lines
"""
Tôi đã có vấn đề này - cuối cùng tôi đã tìm ra lý do là tôi đã bao gồm các \
ký tự trong chuỗi. Nếu bạn có bất kỳ thứ gì trong số này, hãy "thoát" chúng ra \\
và nó sẽ hoạt động tốt.
r
trước chuỗi để tránh chúng gây ra vấn đề.
(Giả sử bạn không có / muốn ngắt dòng trong chuỗi của mình ...)
Chuỗi này thực sự dài bao nhiêu?
Tôi nghi ngờ có giới hạn về thời gian đọc một dòng từ tệp hoặc từ dòng lệnh, và bởi vì cuối dòng bị cắt, trình phân tích cú pháp sẽ thấy một cái gì đó như s1="some very long string..........
(không có kết thúc "
) và do đó gây ra lỗi phân tích cú pháp?
Bạn có thể chia các dòng dài thành nhiều dòng bằng cách thoát các ngắt dòng trong nguồn của bạn như thế này:
s1="some very long string.....\
...\
...."
Trong tình huống của tôi, tôi đã có \r\n
trong chuỗi từ điển trích dẫn duy nhất của tôi. Tôi đã thay thế tất cả các trường hợp \r
với \\r
và \n
với \\n
nó và nó đã khắc phục vấn đề của tôi, trả lại đúng các ngắt dòng đã thoát trong lệnh chính tả.
ast.literal_eval(my_str.replace('\r','\\r').replace('\n','\\n'))
.....
Tôi phải đối mặt với một vấn đề tương tự. Tôi đã có một chuỗi chứa đường dẫn đến một thư mục trong Windows, ví dụ: C:\Users\
Vấn đề là đó \
là một ký tự thoát và vì vậy để sử dụng nó trong chuỗi, bạn cần thêm một chuỗi \
.
Sai: C:\Users\
Chính xác: C:\\\Users\\\
Tôi cũng có vấn đề này, mặc dù đã có câu trả lời ở đây tôi muốn đưa ra một điểm quan trọng cho vấn đề này sau khi
/
không nên có khoảng trống.
Tôi cũng đã có thông báo lỗi chính xác này, đối với tôi, sự cố đã được khắc phục bằng cách thêm "\"
Hóa ra chuỗi dài của tôi, được chia thành khoảng tám dòng có "\" ở cuối, bị thiếu "\" trên một dòng.
Python IDLE không chỉ định số dòng có lỗi này, nhưng nó đánh dấu màu đỏ một câu lệnh gán biến hoàn toàn chính xác, loại bỏ tôi. Câu lệnh chuỗi biến dạng thực tế (nhiều dòng dài với "\") liền kề với câu lệnh được tô sáng. Có lẽ điều này sẽ giúp người khác.
Trong trường hợp của tôi, tôi sử dụng Windows nên tôi phải sử dụng dấu ngoặc kép thay vì dấu ngoặc đơn.
C:\Users\Dr. Printer>python -mtimeit -s"a = 0"
100000000 loops, best of 3: 0.011 usec per loop
Tôi đã nhận được lỗi này trong chức năng postgresql. Tôi đã có một SQL dài mà tôi đã chia thành nhiều dòng với \ để dễ đọc hơn. Tuy nhiên, đó là vấn đề. Tôi đã xóa tất cả và thực hiện chúng trong một dòng để khắc phục sự cố. Tôi đã sử dụng pgadmin III.
Trong trường hợp của tôi với Mac OS X, tôi đã có một tuyên bố sau:
model.export_srcpkg(platform, toolchain, 'mymodel_pkg.zip', 'mymodel.dylib’)
Tôi đã nhận được lỗi:
File "<stdin>", line 1
model.export_srcpkg(platform, toolchain, 'mymodel_pkg.zip', 'mymodel.dylib’)
^
SyntaxError: EOL while scanning string literal
Sau khi tôi đổi thành:
model.export_srcpkg(platform, toolchain, "mymodel_pkg.zip", "mymodel.dylib")
Nó đã làm việc...
David
variable(s1)
Kéo dài của bạn nhiều dòng. Để thực hiện điều này (tức là bạn muốn chuỗi của mình trải dài trên nhiều dòng), bạn phải sử dụng ba dấu ngoặc kép ("" ").
s1="""some very long
string............"""
Tôi đã phải đối mặt với cùng một vấn đề trong khi truy cập bất kỳ thư mục ổ cứng. Sau đó, tôi đã giải quyết nó theo cách này.
import os
os.startfile("D:\folder_name\file_name") #running shortcut
os.startfile("F:") #accessing directory
Hình trên cho thấy một lỗi và đầu ra được giải quyết.