Hãy lấy hai số từ người dùng, cộng chúng lại và hiển thị kết quả. Hàm input[] lấy đầu vào từ người dùng và chuyển đổi nó thành một chuỗi
Vì muốn cộng hai số nên ta cần chuyển chuỗi thành int. Trong Python 2. x, hàm raw_input[] tương tự như hàm input[] trong Python 3. x.
Xem xét ví dụ sau
#python 3.6 value1 = int[input["Enter value 1: "]] value2 = int[input["Enter value2: "]] result = value1 + value2 print[f"The sum of {value1} and {value2} is: {result}"]
Nếu người dùng nhập chính xác cả hai giá trị, thì chương trình sẽ chạy mà không có bất kỳ Ngoại lệ EOFError nào
Enter value1: 10 Enter value2: 5 The sum of 10 and 5 is: 15
Bây giờ, hãy xem điều gì sẽ xảy ra nếu chúng ta nhấn Ctrl + D để thoát khỏi quy trình khi đầu vào đang được lấy
EOFError trong Python là gì
Như bạn có thể thấy trong đầu ra ở trên, một ngoại lệ EOFError được đưa ra khi hàm trả về mà không lấy bất kỳ dữ liệu nào
Xử lý ngoại lệ EOFError
Chúng ta có thể xử lý ngoại lệ này bằng cách sử dụng khối try and except. Mã đáng ngờ được thêm vào bên trong khối thử và việc xử lý ngoại lệ được thực hiện trong khối ngoại trừ
Nếu không có ngoại lệ nào được nêu ra, tôi. e. , người dùng chèn đúng cả 2 đầu vào thì khối try mới chạy. Mặt khác, khối ngoại trừ sẽ có quyền kiểm soát khi xảy ra ngoại lệ
Lưu ý rằng chúng tôi chỉ xem xét ngoại lệ EOFError ở đây
try: value1 = int[input["Enter value 1: "]] value2 = int[input["Enter value2: "]] result = value1 + value2 print[f"The sum of {value1} and {value2} is: {result}"] except EOFError as e: print["End-Of-File when reading input"]
Đầu ra ngoại lệ EOFError
Phần kết luận
Cảm ơn bạn đã đọc bài đăng trên blog này về EOFError trong Python là gì. Tôi hy vọng bài viết này đã làm rõ trong những trường hợp bạn có thể gặp phải một lỗi như vậy và cách ngăn chặn nó
Mã hóa vui vẻ
Đọc về cách lặp lại từ đầu chương trình trong Python ngay bây giờ
Marcel
này các cậu. Là tôi, Marcel, hay còn gọi là Maschi. Trên MaschiTuts, đó là tất cả về hướng dẫn. Bất kể chủ đề của bài viết là gì, mục tiêu luôn giống nhau. Cung cấp cho các bạn những hướng dẫn chuyên sâu và hữu ích nhất
Lỗi EOF thường xảy ra khi chương trình của bạn mong đợi đầu vào [muốn đọc đầu vào] nhưng không tìm thấy đầu vào. Trên sololearning, bạn phải nhập tất cả đầu vào ngay từ đầu. Và bạn đang sử dụng while True mà không có bất kỳ câu lệnh ngắt nào. Có nghĩa là, bạn sẽ cần phải nhập thời gian vô hạn. oẳn tù tì hoặc kéo để tránh lỗi eof. Vì vậy, tôi khuyên bạn chỉ nên để chương trình kết thúc khi người dùng hoặc bot thắng trò chơiThông báo lỗi giúp chúng tôi giải quyết/khắc phục sự cố trong mã của chúng tôi. Nhưng một số thông báo lỗi, khi bạn nhìn thấy chúng lần đầu tiên, có thể làm bạn bối rối vì chúng có vẻ không rõ ràng
Một trong những lỗi này là "SyntaxError. lỗi EOF không mong muốn trong khi phân tích cú pháp" mà bạn có thể gặp phải trong Python
Trong bài viết này, chúng ta sẽ xem tại sao lại xảy ra lỗi này và cách khắc phục bằng một số ví dụ
Cách khắc phục “Lỗi cú pháp. Lỗi EOF không mong muốn khi phân tích cú pháp”
Trước khi xem xét một số ví dụ, trước tiên chúng ta nên hiểu tại sao chúng ta có thể gặp phải lỗi này
Điều đầu tiên cần hiểu là thông báo lỗi có nghĩa là gì. EOF là viết tắt của Kết thúc tệp trong Python. EOF không mong đợi ngụ ý rằng trình thông dịch đã đến cuối chương trình của chúng tôi trước khi thực thi tất cả mã
Lỗi này có thể xảy ra khi
- chúng tôi không thể khai báo câu lệnh cho vòng lặp [
while
/for
] - chúng tôi bỏ qua dấu ngoặc đơn đóng hoặc dấu ngoặc nhọn trong một khối mã
Hãy xem ví dụ này
student = {
"name": "John",
"level": "400",
"faculty": "Engineering and Technology"
Trong đoạn mã trên, chúng tôi đã tạo một từ điển nhưng quên thêm }
[dấu ngoặc đóng] – vì vậy điều này chắc chắn sẽ gây ra "Lỗi cú pháp. lỗi EOF không mong muốn trong khi phân tích cú pháp" theo cách của chúng tôi
Sau khi thêm dấu ngoặc nhọn đóng, mã sẽ trông như thế này
student = {
"name": "John",
"level": "400",
"faculty": "Engineering and Technology"
}
Điều này sẽ thoát khỏi lỗi
Hãy xem một ví dụ khác
i = 1
while i < 11:
Trong vòng lặp while
ở trên, chúng ta đã khai báo biến và điều kiện nhưng bỏ qua câu lệnh sẽ chạy cho đến khi điều kiện được đáp ứng. Điều này sẽ gây ra lỗi
Đây là cách khắc phục
i = 1
while i < 11:
print[i]
i += 1
Bây giờ mã của chúng tôi sẽ chạy như mong đợi và in các giá trị của
Enter value1: 10 Enter value2: 5 The sum of 10 and 5 is: 151 từ 1 đến giá trị cuối cùng của
Enter value1: 10 Enter value2: 5 The sum of 10 and 5 is: 151 nhỏ hơn 11
Về cơ bản, đây là tất cả những gì cần thiết để khắc phục lỗi này. Không quá khó khăn, phải không?
Để đảm bảo an toàn, hãy luôn đính kèm mọi dấu ngoặc đơn và dấu ngoặc nhọn vào thời điểm chúng được tạo trước khi viết logic lồng trong chúng [hầu hết các trình soạn thảo mã/IDE sẽ tự động đính kèm chúng cho chúng ta]
Tương tự, luôn khai báo các câu lệnh cho các vòng lặp của bạn trước khi chạy mã
Phần kết luận
Trong bài viết này, chúng ta đã hiểu tại sao lỗi "SyntaxError. EOF bất ngờ trong khi phân tích cú pháp" xảy ra khi chúng tôi chạy mã của mình. Chúng tôi cũng đã xem một số ví dụ cho thấy cách khắc phục lỗi này
mã hóa hạnh phúc
QUẢNG CÁO
QUẢNG CÁO
QUẢNG CÁO
Tiểu sử của tác giả này có thể được tìm thấy trong các bài viết của ông
Nếu bạn đọc đến đây, hãy tweet cho tác giả để cho họ thấy bạn quan tâm. Tweet một lời cảm ơn
Học cách viết mã miễn phí. Chương trình giảng dạy mã nguồn mở của freeCodeCamp đã giúp hơn 40.000 người có được việc làm với tư cách là nhà phát triển. Bắt đầu