Computer >> Máy Tính >  >> Lập trình >> Python

Python SyntaxError:ký tự không mong muốn sau ký tự tiếp tục dòng Giải pháp

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

Nếu bạn chỉ định một ký tự hoặc câu lệnh sau ký tự tiếp tục dòng, bạn gặp phải lỗi "SyntaxError:ký tự không mong muốn sau ký tự tiếp tục dòng".

Trong hướng dẫn này, chúng tôi nói về lỗi này có nghĩa là gì và tại sao nó lại xuất hiện. Chúng tôi xem qua hai ví dụ về lỗi này trong thực tế để bạn có thể tìm hiểu cách sử dụng nó trong mã của mình.

SyntaxError:ký tự không mong muốn sau ký tự tiếp tục dòng

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

Trong khi có thể khó theo dõi một dòng mã thực sự dài, một dòng mã được chia thành nhiều dòng sẽ dễ theo dõi hơn.

Ký tự tiếp tục dòng thường được sử dụng để ngắt mã hoặc viết một chuỗi dài qua nhiều dòng mã:

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

Chúng tôi đã chia nhỏ chuỗi của chúng tôi thành ba dòng. Điều này làm cho nó dễ dàng hơn để đọc mã của chúng tôi.

Hai trường hợp khi lỗi này có thể phát sinh bao gồm:

81% người tham gia cho biết họ cảm thấy tự tin hơn về triển vọng công việc công nghệ của mình sau khi tham gia một cuộc thi đào tạo. Kết hợp với bootcamp ngay hôm nay.

Sinh viên tốt nghiệp bootcamp trung bình dành ít hơn sáu tháng để chuyển đổi nghề nghiệp, từ khi bắt đầu bootcamp đến khi tìm được công việc đầu tiên của họ.

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

Chúng ta sẽ thảo luận lần lượt từng tình huống này.

Tình huống số 1:Phân chia sử dụng dấu gạch chéo ngược

Ở đây, chúng tôi viết một chương trình tính toán chỉ số khối cơ thể (BMI) của một người. Để bắt đầu, chúng tôi cần yêu cầu người dùng chèn chiều cao và cân nặng của họ vào chương trình Python:

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

Tiếp theo, chúng tôi tính chỉ số BMI của người dùng. Công thức tính giá trị BMI là:

BMI = kg/m2

“Kg” là trọng lượng của một người tính bằng kilôgam. “M 2 ”Là chiều cao của một người được bình phương. Được dịch sang Python, công thức tính chỉ số BMI có dạng như sau:

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

Chúng tôi chuyển đổi các giá trị của “cân nặng” và “chiều cao” thành số dấu phẩy động để chúng tôi có thể thực hiện các hàm toán học trên chúng.

Sau đó, chúng tôi in chỉ số BMI của người dùng vào bảng điều khiển. Chúng tôi chuyển đổi “bmi” thành một chuỗi bằng cách sử dụng phương thức str () để chúng tôi có thể nối nó với thông báo “Chỉ số BMI của bạn là:”. Chúng tôi làm tròn giá trị của “bmi” đến hai chữ số thập phân bằng cách sử dụng phương thức round ().

Hãy chạy mã của chúng tôi:

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

Chúng tôi đã gặp lỗi. Điều này là do chúng ta đã sử dụng “\” làm toán tử chia thay cho dấu “/”. Chúng tôi có thể sửa mã của mình bằng cách sử dụng toán tử phân chia “/”:

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

Mã của chúng tôi trả về:

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

Mã của chúng tôi đã tính thành công chỉ số BMI của người dùng.

Tình huống số 2:Sử dụng không chính xác ký tự dòng mới

Tiếp theo, chúng ta viết một chương trình ghi danh sách các thành phần vào một tệp. Chúng tôi bắt đầu bằng cách xác định danh sách các thành phần cho một công thức bánh mì ngắn:

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

Tiếp theo, chúng tôi mở một tệp có tên “shortbread_recipe.txt” mà chúng tôi sẽ viết danh sách các thành phần của chúng tôi:

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

Mã này lặp lại mọi thành phần trong biến "thành phần". Mỗi thành phần được ghi vào tệp thành phần, theo sau là một ký tự dòng mới bằng Python (“\ n”). Điều này đảm bảo rằng mỗi thành phần xuất hiện trên một dòng mới.

Hãy chạy mã Python của chúng tôi:

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

Mã của chúng tôi trả về một lỗi. Điều này là do chúng tôi đã không đặt ký tự dòng mới của mình trong dấu ngoặc kép.

Mặc dù ký tự dòng mới là một ký tự đặc biệt, nhưng nó phải được đặt trong dấu ngoặc kép bất cứ khi nào nó được sử dụng. Điều này là do Python coi “\” như một ký tự tiếp tục dòng.

Để giải quyết lỗi trong mã của chúng tôi, chúng tôi cần đặt ký tự dòng mới trong dấu ngoặc 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ã của chúng tôi. Mã của chúng tôi không trả về giá trị nào cho bảng điều khiển. Một tệp mới có tên “shortbread_recipe.txt” được tạo. Nội dung của nó như sau:

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

Mã của chúng tôi đã in thành công danh sách của chúng tôi sang tệp “shortbread_recipe.txt”.

Kết luận

Lỗi “SyntaxError:ký tự không mong muốn sau ký tự tiếp tục dòng” xuất hiện khi bạn thêm mã sau ký tự tiếp tục dòng.

Để giải quyết lỗi này, hãy đảm bảo rằng bạn sử dụng đúng toán tử chia (dấu gạch chéo lên) nếu bạn đang thực hiện các phép toán. Nếu bạn đang sử dụng bất kỳ ký tự đặc biệt nào có chứa dấu gạch chéo ngược, chẳng hạn như ký tự dòng mới, hãy đảm bảo rằng chúng được đặt trong dấu ngoặc kép.

Bây giờ, bạn đã sẵn sàng để sửa lỗi này trong mã của mình!