Lỗi cú pháp được phát hiện trước khi chương trình chạy. Thông thường, đó chỉ là lỗi đánh máy hoặc lỗi cú pháp. Một lỗi như vậy trong Python là SyntaxError EOL trong khi quét chuỗi ký tự.
Lỗi Cú pháp này xảy ra trong khi trình thông dịch quét các ký tự chuỗi và chạm vào EOL['End of Line']. Nhưng nếu nó không tìm thấy một ký tự cụ thể trước EOL, thì lỗi sẽ xuất hiện
Hãy để chúng tôi hiểu nó nhiều hơn với sự giúp đỡ của một ví dụ
"SyntaxError EOL trong khi quét chuỗi ký tự" là gì?
Xảy ra lỗi SyntaxError EOL[End of Line] khi trình thông dịch Python không tìm thấy một ký tự cụ thể hoặc một bộ ký tự trước khi dòng mã kết thúc. Khi xảy ra lỗi, quá trình thực thi mã bị tạm dừng.
1. Thiếu dấu ngoặc kép để đóng chuỗi
Trong khi đóng chuỗi, nhiều khi chúng ta quên thêm dấu phẩy ngược [đơn hoặc kép]. Khi điều này xảy ra, trình thông dịch Python không thể tìm thấy Cuối dòng trong khi quét chuỗi. Do đó xảy ra lỗi SyntaxError EOL.
Ví dụ 1
MyList = []
if not MyList:
print["MyList is empty
else:
print["MyList is not empty"]
đầu ra
File "main.py", line 3
print["MyList is empty
^
SyntaxError: EOL while scanning string literal
Giải trình
Trong đoạn mã trên, chúng tôi đã khởi tạo một danh sách trống MyList và sử dụng khối if-else để in nếu 'MyList' có trống hay không. Bên trong khối if câu lệnh in được dùng để in một chuỗi. Nhưng chuỗi bị thiếu hai dấu phẩy đảo ngược ở cuối. Và do thiếu dấu phẩy, trình thông dịch Python không thể tìm thấy phần cuối của chuỗi.
Như vậy là gặp lỗi SyntaxError
Giải pháp
Đảm bảo rằng chuỗi đó phải luôn được đóng trong dấu ngoặc đơn hoặc dấu ngoặc kép
Mã chính xác
llist = []
if not llist:
print["List is empty"]
else:
print["List is not empty"]
đầu ra
MyList is empty
2. Chuỗi kéo dài qua một dòng
Trong Python, chúng ta không thể mở rộng chuỗi được đặt trong dấu phẩy đảo ngược đơn hoặc kép qua một dòng. Nếu chúng tôi cố gắng làm như vậy, lỗi “SyntaxError EOL trong khi quét chuỗi ký tự xảy ra” sẽ bật lên. Nếu chúng ta muốn chuỗi của mình kéo dài thành nhiều dòng, thì chúng phải được đặt trong ba dấu phẩy đảo ngược [đơn hoặc kép]
ví dụ 2
ttuple = []
if not ttuple:
print["Tuple is
empty"]
else:
print["Tuple is not empty"]
đầu ra
file "main.py", line 3
print["MyTuple is
^
SyntaxError: EOL while scanning string literal
Giải trình
Trong đoạn mã trên, chúng tôi đã khởi tạo một tuple trống ‘MyTuple’ và sử dụng khối if-else để in nếu ‘MyTuple’ trống hay không. Bên trong khối if, câu lệnh in được sử dụng để in một chuỗi. Nhưng chuỗi được mở rộng trong nhiều dòng. Và không được giải thích bởi trình thông dịch python. Do đó, lỗi được nâng lên
Giải pháp
Cố gắng giữ toàn bộ chuỗi trong một dòng.
Mã chính xác
MyTuple = []
if not MyTuple:
print["MyTuple is empty"]
else:
print["MyTuple is not empty"]
đầu ra
MyTuple is empty
Ghi chú. Nếu bạn muốn chuỗi được khởi tạo trong nhiều dòng. Sau đó hãy sử dụng ba dấu phẩy ngược dấu phẩy đơn[''' Dấu ngoặc đơn '''] hoặc dấu ngoặc kép["""Dấu ngoặc kép """"] để bao quanh chuỗi của bạn
Thí dụ
________số 8_______đầu ra
MyTuple is
empty
Phần kết luận
Chúng tôi hy vọng tất cả các tình huống được giải thích ở trên sẽ giúp bạn ngăn chặn SyntaxError EOL trong khi quét lỗi chuỗi ký tự. Một sai lầm khác mà bạn phải tránh là sử dụng các trích dẫn không khớp. Trong khi đóng chuỗi, đảm bảo rằng nếu nó bắt đầu bằng dấu nháy đơn thì nó phải kết thúc bằng dấu nháy kép
Nhánh chính hiện tại là Python 3 trong tương lai. 12 và là nhánh duy nhất chấp nhận các tính năng mới. Có thể tìm thấy bản phát hành mới nhất cho mỗi phiên bản Python trên trang tải xuống
Chu kỳ phát hành Python
gantt dateĐịnh dạng tiêu đề YYYY-MM-DD Chu kỳ phát hành Python trụcĐịnh dạng %Y phần Python 2. 6 cuối đời. chí mạng, python2. 6, 2008-10-01,2013-10-29 phần Python 3. 0 cuối đời. chí mạng, python3. 0, 2008-12-03,2009-06-27 phần Python 3. 1 cuối đời. chí mạng, python3. 1, 2009-06-27,2012-04-09 phần Python 2. 7 cuối đời. chí mạng, python2. 7, 2010-07-03,2020-01-01 phần Python 3. 2 cuối đời. chí mạng, python3. 2, 2011-02-20,2016-02-20 phần Python 3. 3 cuối đời. chí mạng, python3. 3, 2012-09-29,2017-09-29 phần Python 3. 4 cuối đời. chí mạng, python3. 4, 2014-03-16,2019-03-18 phần Python 3. 5 cuối đời. chí mạng, python3. 5, 2015-09-13,2020-09-30 phần Python 3. 6 cuối đời. chí mạng, python3. 6, 2016-12-23,2021-12-23 phần Python 3. 7 an ninh. xong, python3. 7, 2018-06-27,2023-06-27 phần Python 3. 8 an ninh. xong, python3. 8, 2019-10-14,2024-10-01 phần Python 3. 9 an ninh. xong, python3. 9, 2020-10-05,2025-10-01 phần Python 3. 10 lỗi. đang hoạt động, python3. 10, 2021-10-04,2026-10-01 phần Python 3. sửa lỗi 11. đang hoạt động, python3. 11, 2022-10-24,2027-10-01 phần Python 3. 12 tính năng. trăn3. 12, 2023-10-02,2028-10-01
Phiên bản được hỗ trợ
Ngày in nghiêng được lên lịch và có thể được điều chỉnh
Ngành
Lịch trình
Tình trạng
Phát hành đầu tiên
Cuối đời
Quản lý phát hành
chủ yếu
PEP 693
đặc tính
2023-10-02
2028-10
Thomas Wouters
3. 11
PEP 664
vá lỗi
2022-10-24
2027-10
Pablo Galindo Salgado
3. 10
PEP 619
vá lỗi
2021-10-04
2026-10
Pablo Galindo Salgado
3. 9
PEP 596
Bảo vệ
2020-10-05
2025-10
Łukasz Langa
3. 8
PEP 569
Bảo vệ
2019-10-14
2024-10
Łukasz Langa
3. 7
PEP 537
Bảo vệ
2018-06-27
2023-06-27
Ned Deily
Phiên bản không được hỗ trợ
Ngành
Lịch trình
Tình trạng
Phát hành đầu tiên
Cuối đời
Quản lý phát hành
3. 6
PEP 494
cuối đời
23-12-2016
23-12-2021
Ned Deily
3. 5
PEP 478
cuối đời
2015-09-13
2020-09-30
Larry Hastings
3. 4
PEP 429
cuối đời
2014-03-16
2019-03-18
Larry Hastings
3. 3
PEP 398
cuối đời
2012-09-29
2017-09-29
Georg Brandl, Ned Deily [3. 3. 7+]
3. 2
PEP 392
cuối đời
2011-02-20
2016-02-20
Georg Brandl
3. 1
PEP 375
cuối đời
2009-06-27
2012-04-09
Benjamin Peterson
3. 0
PEP 361
cuối đời
2008-12-03
2009-06-27
Barry Warszawa
2. 7
PEP 373
cuối đời
2010-07-03
2020-01-01
Benjamin Peterson
2. 6
PEP 361
cuối đời
2008-10-01
29-10-2013
Barry Warszawa
Khóa trạng thái
tính năng .các tính năng mới, sửa lỗi và sửa lỗi bảo mật được chấp nhận
bản phát hành trước .sửa lỗi tính năng, sửa lỗi và sửa lỗi bảo mật được chấp nhận cho bản phát hành tính năng sắp tới
sửa lỗi .sửa lỗi và sửa lỗi bảo mật được chấp nhận, các tệp nhị phân mới vẫn được phát hành. [Còn được gọi là chế độ bảo trì hoặc phát hành ổn định]
bảo mật .chỉ các bản sửa lỗi bảo mật mới được chấp nhận và không có tệp nhị phân nào được phát hành, nhưng các phiên bản mới chỉ dành cho nguồn có thể được phát hành
hết tuổi thọ .chu kỳ phát hành bị đóng băng;
Xem thêm trang để biết thêm thông tin về các chi nhánh
Theo mặc định, thời gian kết thúc vòng đời được lên lịch 5 năm sau lần phát hành đầu tiên, nhưng có thể được điều chỉnh bởi người quản lý phát hành của từng chi nhánh. Tất cả các phiên bản Python 2 đã hết tuổi thọ