Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Lỗi Python SyntaxError: unexpected character after line continuation character - Giải pháp

Ký tự tiếp dòng Python cho phép tiếp tục dòng mã trên dòng mới trong chương trình. Ký tự tiếp dòng không thể theo sau bất kỳ giá trị nào.

Nếu bạn chỉ định ký tự hoặc câu lệnh sau ký tự tiếp dòng, gặp lỗi "SyntaxError: unexpected character after line continuation character".

Trong hướng dẫn này, nói về ý nghĩa lỗi và tại sao nêu lên. Chúng ta đi qua hai ví dụ lỗi hành động để bạn học cách dùng trong mã.

SyntaxError: unexpected character after line continuation character

Ký tự tiếp dòng cho phép viết chuỗi dài trên nhiều dòng mã. Ký tự hữu ích vì làm mã dễ đọc. Ký tự tiếp dòng là dấu gạch chéo ngược ("\").

Trong khi dòng mã rất dài khó theo dõi, một dòng chia nhiều dòng dễ theo dõi hơn.

Ký tự tiếp dòng thường dùng chia mã hoặc viết chuỗi dài nhiều dòng:

url = "https://careerkarma.com" \ "/blog/python-syntaxerror-unexpected-character-after" \ "line-continuation-character"

Chúng ta chia chuỗi thành ba dòng. Làm mã dễ đọc hơn.

Hai tình huống lỗi nêu lên:

81% người tham gia cho biết họ cảm thấy tự tin hơn về cơ hội việc làm công nghệ sau khi tham gia bootcamp. Được ghép nối với bootcamp ngay hôm nay.

Sinh viên trung bình tốt nghiệp bootcamp mất chưa đến sáu tháng để chuyển đổi nghề nghiệp, từ khi bắt đầu bootcamp đến khi tìm được việc đầu tiên.

  • Dùng dấu gạch chéo ngược thay dấu gạch chéo xuôi làm toán tử chia
  • Thêm dòng mới vào chuỗi không bao ký tự xuống dòng trong ngoặc đơn

Chúng ta sẽ nói qua từng tình huống.

Tình huống #1: Chia dùng dấu gạch chéo ngược

Ở đây, viết chương trình tính chỉ số khối cơ thể (BMI). Đầu tiên, yêu cầu người dùng chèn chiều cao và cân nặng:

height = input("What is your height? ") weight = input("What is your weight? ")

Tiếp theo, tính BMI. Công thức tính BMI:

BMI = kg/m2

"Kg" cân nặng kg. "m2" bình phương chiều cao. Dịch sang Python, công thức BMI trông như:

bmi = float(weight) \ (float(height) * 2) print("Your BMI is: " + str(bmi))

Chuyển "weight" và "height" thành số dấu chấm động để thực hiện hàm toán học.

Sau đó in BMI ra console. Chuyển "bmi" thành chuỗi str() để nối thông báo "Your BMI is: ". Làm tròn "bmi" hai chữ số round().

Hãy chạy mã:

 File "main.py", line 4 bmi = float(weight) \ (float(height) * 2) ^ SyntaxError: unexpected character after line continuation character

Gặp lỗi. Vì dùng "\" làm toán tử chia thay vì "/". Khắc phục bằng toán tử chia "/":

bmi = float(weight) / (float(height) * 2) print("Your BMI is: " + str(round(bmi, 2)))

Mã trả về:

What is your height? 1.70 What is your weight? 63 Your BMI is: 18.53

Mã tính thành công BMI người dùng.

Tình huống #2: Dùng ký tự xuống dòng sai

Tiếp, viết chương trình ghi danh sách nguyên liệu vào file. Bắt đầu định nghĩa nguyên liệu bánh shortbread:

ingredients = [ "150g plain flour", "100g butter, chilled an cubed", "50g caster sugar" ]

Tiếp theo, mở file "shortbread_recipe.txt" ghi danh sách:

with open("shortbread_recipe.txt", "w+") as ingredients_file: for i in ingredients: ingredients_file.write(i + \n)

Mã lặp qua nguyên liệu trong "ingredients". Mỗi nguyên liệu ghi vào file theo sau ký tự xuống dòng Python ("\n"). Đảm bảo mỗi nguyên liệu xuất hiện dòng mới.

Hãy chạy mã Python:

 File "main.py", line 9 ingredients_file.write(i + \n) ^ SyntaxError: unexpected character after line continuation character

Mã báo lỗi. Vì không bao ký tự xuống dòng trong dấu ngoặc kép.

Mặc dù ký tự xuống dòng là ký tự đặc biệt, phải bao trong dấu ngoặc kép khi dùng. Vì Python xử lý "\" như ký tự tiếp dòng.

Để khắc phục, bao ký tự xuống dòng trong dấu ngoặc kép kép:

with open("shortbread_recipe.txt", "w+") as ingredients_file: for i in ingredients: ingredients_file.write(i + "\n")

Hãy chạy mã. Mã không trả giá trị console. File "shortbread_recipe.txt" tạo. Nội dung:

150g plain flour 100g butter, chilled an cubed 50g caster sugar

Mã in thành công list vào file "shortbread_recipe.txt".

Kết luận

Lỗi "SyntaxError: unexpected character after line continuation character" nêu lên khi thêm mã sau ký tự tiếp dòng.

Để khắc phục, đảm bảo dùng đúng toán tử chia (dấu gạch chéo xuôi) nếu thực hiện phép toán. Nếu dùng ký tự đặc biệt chứa gạch chéo ngược, như ký tự xuống dòng, đảm bảo bao trong dấu ngoặc kép.

Bây giờ bạn đã sẵn sàng khắc phục lỗi này trong mã!