Bài trước: Python (4) - Cú pháp của Python
-----
5. Các bước để lập trình với Python
Tới bài học này, bạn đã thành thục các việc sau:
- Biết dùng Trình soạn thảo mã nguồn Python
- Biết dịch và thực thi một chương trình Python
- Biết cách viết mã bằng ngôn ngữ Python
- Biết chạy một chương trình Python và xem kết quả
Như vậy, bạn đã trải nghiệm với hầu hết các bước để lập trình với Python. Tuy nhiên, để hệ thống lại một cách bài bản. Phần này chúng ta sẽ tìm hiểu kỹ hơn về các bước để lập trình với Python.
5.1 Các bước để tạo ra một chương trình
Trong lập trình Python, để tạo ra một chương trình bạn cần thực hiện 5 bước sau:
Giải thích chi tiết các bước
[1] Phân tích bài toán và Thiết kế thuật toán
- Xác định bài toán và nghĩ ra các bước để giải bài toán (thuật toán). Ví dụ: chúng ta muốn lập trình để tính tổng 2 số, thì chúng ta cần phải suy nghĩ là làm sao để dùng Python nhập được 2 số, sau đó thực hiện phép tính cộng, cuối cùng là xuất kết quả ra màn hình.
[2] Lập trình
- Viết mã Python, ví dụ: a = 5; b = 3; print(a + b), để máy tính hiểu và làm theo.
[3] Thông dịch và Thực thi
- Python đọc từng dòng mã và chạy ngay, như khi bạn gõ python baiTap.py.
[4] Kiểm thử và Gỡ lỗi
- Chạy thử chương trình, nếu kết quả sai (ví dụ: in 53 thay vì 8), tìm lỗi và sửa, như kiểm tra dấu +.
[5] Hiển thị kết quả
- Chương trình in kết quả ra màn hình, như số 8 trong ví dụ, để bạn thấy thành quả.
5.2 Gỡ lỗi chương trình
Ở các phần trước chúng ta đã làm quen với một số bước như lập trình, thông dịch và thực thi, hiển thị kết quả.
Phần này, chúng ta sẽ tìm hiểu về Gỡ lỗi chương trình.
Trong lập trình, "lỗi" (bug) là những sai sót trong mã nguồn, khiến chương trình không hoạt động như mong đợi. Lỗi có thể dẫn đến nhiều kết quả khác nhau, từ việc chương trình bị treo, đưa ra kết quả sai, hoặc thậm chí gây ra sự cố bảo mật.
Các loại lỗi thường gặp:
- Lỗi cú pháp (syntax error)
- Lỗi logic (logical error)
- Lỗi khi chạy (runtime error)
- Lỗi kiểu dữ liệu (type error)
- Lỗi tràn bộ nhớ (memory overflow)
- Lỗi bảo mật (security vulnerability)
Gỡ lỗi là gì?
Gỡ lỗi (debugging) là quá trình tìm kiếm và loại bỏ các lỗi trong mã nguồn của chương trình máy tính.
Để gỡ lỗi, chúng ta thực hiện theo các bước sau:
- Xác định lỗi: dựa vào thông báo lỗi, kiểm tra kết quả đầu ra chương trình, hoặc sử dụng các công cụ gỡ lỗi để xác định xem chương trình đang bị lỗi gì? Ở dòng mã nào?
- Phân tích lỗi: phân tích, phỏng đoán xem tại sao lại có lỗi.
- Sửa lỗi: khi đã biết được lỗi, chúng ta sẽ thực hiện sửa lại mã nguồn để chương trình chạy đúng.
- Kiểm tra lại: chạy lại chương trình để đảm bảo không còn lỗi.
Chúng ta cùng thực hành để làm quen với việc tìm và gỡ (sửa) lỗi.
Lỗi cú pháp
Lỗi cú pháp (syntax error) là loại lỗi xảy ra khi mã nguồn của chương trình vi phạm các quy tắc cú pháp của ngôn ngữ lập trình. Nói một cách đơn giản, lỗi cú pháp xảy ra khi bạn viết mã nguồn không đúng "ngữ pháp" mà ngôn ngữ lập trình đó yêu cầu.
Ví dụ 1:
Bạn tạo một chương trình Python, ví dụ loiCuPhap1.py với nội dung sau:
[loiCuPhap1.py]
# dòng mã sau bị lỗi cú pháp
print("hi ban Teo"
Mở chương trình cửa sổ dòng lệnh, thực thi chương trình, bạn sẽ nhận được thông báo lỗi như sau:
E:\pythonLabs>py loicuphap1.py
File "E:\pythonLabs\loicuphap1.py", line 1
print("hi ban Teo"
^
SyntaxError: '(' was never closed
Khi gặp lỗi, việc đầu tiên là đọc và hiểu thông báo lỗi nói gì?
Ví dụ, ở lỗi phía trên, máy tính thông báo là:
- Lỗi xảy ra ở hàng số 1 (line 1), trong tập tin loiCuPhap1.py
- Đây là lỗi cú pháp (Syntax Error), xảy ra tại dấu (^), nội dung lỗi là: có mở ngoặc nhưng không đóng ( ‘(‘ was never close).
- Cách sửa lỗi: là tìm tới vị trí bị lỗi: dòng số 1 trong tập tin loiCuPhap1.py, thêm dấu )
- Chạy lại chương trình, bạn sẽ không thấy còn thông báo lỗi nữa, thấy có dòng chữ hi ban Teo xuất ra màn hình.
Ví dụ 2:
Tạo một chương trình Python, ví dụ loiCuPhap2.py với nội dung sau:
[loiCuPhap2.py]
# dòng mã sau bị lỗi cú pháp
a = 3
if a > 0:
print("a là số dương")
Mở chương trình cửa sổ dòng lệnh, thực thi chương trình, bạn sẽ nhận được thông báo lỗi như sau:
E:\pythonLabs>py loicuphap2.py
File "E:\pythonLabs\loicuphap2.py", line 4
print(f"{a} là số dương")
^^^^^
IndentationError: expected an indented block after 'if' statement on line 3
- Đọc thông báo, để xác định lỗi
- Lỗi xảy ra ở hàng số 4 (line 4), trong tập tin loiCuPhap2.py
- Đây là lỗi cú pháp (cụ thể là lỗi liên quan đến thụt lề - IndentationError), xảy ra tại dấu (^^^^^), nội dung lỗi là: mong đợi một dấu thụt lề cho đoạn mã sau lệnh if ở dòng số 3.
- Cách sửa lỗi: là tìm tới vị trí bị lỗi: dòng số 4 trong tập tin loiCuPhap2.py, thụt lề cho lệnh print()
- Chạy lại chương trình, bạn sẽ không còn thấy thông báo lỗi nữa, thấy có dòng chữ 3 là số dương xuất ra màn hình.
5.3 Lập trình cũng là một cách để học tư duy
Tư duy (thinking) là gì?
Tư duy là cách mà bộ não của chúng ta suy nghĩ, giải quyết vấn đề hoặc hiểu về thế giới xung quanh. Nó giống như một "công cụ" trong đầu giúp ta tưởng tượng, phân tích, và đưa ra quyết định. Nói đơn giản, tư duy là khi bạn dùng đầu óc để nghĩ xem làm thế nào để làm một việc gì đó hoặc hiểu một điều gì đó.
Bạn nào chỉ chờ có hướng dẫn từng bước để làm theo thì khác gì cái máy, mình là con người mà, phải hơn cái máy chứ! Biến cái máy (máy tính, robot, chatbot, AI) trở thành công cụ để hỗ trợ con người trong quá trình tư duy, làm việc.
Một số ví dụ về tư duy.
Khi bạn chơi cờ:
- Bạn không chỉ di chuyển quân cờ một cách ngẫu nhiên, mà còn suy nghĩ về những nước đi tiếp theo của mình và của đối thủ.
- Bạn dự đoán những tình huống có thể xảy ra, và tìm ra những chiến thuật tốt nhất.
- Đó chính là tư duy chiến lược.
Khi bạn viết văn:
- Bạn không chỉ viết ra những câu văn đơn giản, mà còn suy nghĩ về cách diễn đạt ý tưởng của mình một cách rõ ràng và hấp dẫn.
- Bạn sắp xếp các ý tưởng theo một trình tự logic, và sử dụng ngôn ngữ một cách sáng tạo.
- Đó chính là tư duy sáng tạo.
Khi bạn sửa chữa một đồ vật bị hỏng:
- Bạn không chỉ thử một cách ngẫu nhiên, mà còn suy nghĩ về nguyên nhân gây ra hỏng hóc.
- Bạn phân tích cấu tạo của đồ vật, và tìm ra cách sửa chữa hiệu quả nhất.
- Đó chính là tư duy logic và phân tích.
Tư duy giúp chúng ta:
- Hiểu rõ hơn về thế giới xung quanh.
- Giải quyết vấn đề một cách hiệu quả.
- Đưa ra những quyết định sáng suốt.
- Sáng tạo ra những ý tưởng mới.
- Học hỏi và phát triển bản thân.
Tư duy là một kỹ năng rất quan trọng, và chúng ta có thể rèn luyện nó bằng cách đọc sách, học hỏi, và thực hành.
Thông qua lập trình, bạn sẽ rèn luyện các phương pháp tư duy sau:
- Tư duy của một nhà toán học: sử dụng ngôn ngữ hình thức (ngôn ngữ lập trình) để biểu thị các ý tưởng.
- Tư duy của một kỹ sư: thiết kế mọi thứ, lắp ráp các thành phần thành một hệ thống và đánh giá kết quả khi thay đổi các giải pháp.
- Tư duy của một nhà khoa học: quan sát hành vi của các hệ thống phức tạp, hình thành giả thuyết và kiểm nghiệm các dự đoán.
5.4 Bài tập
Bài tập 5a. Lập trình các ví dụ trong phần lý thuyết.
Bài tập 5b. Tìm lỗi, ghi lại lỗi và sửa lỗi cú pháp sau:
[baiTap5b.py]
# dòng mã sau bị lỗi cú pháp
printer("hi ban Ti")
Bài tập 5c. Tìm lỗi, ghi lại lỗi và sửa lỗi cú pháp sau:
[baiTap5c.py]
# đoạn mã sau bị lỗi cú pháp
a = 6
b = 5
print(''ket qua: '')
print(a + b)
Câu hỏi 5.1 Lỗi lập trình là gì? Phát biểu nào sau đây không đúng?
A. Lỗi lập trình là những sai sót trong mã nguồn khiến chương trình không hoạt động như mong đợi.
B. Lỗi lập trình chỉ xảy ra khi chương trình đang chạy, không thể xảy ra trong quá trình viết mã (lập trình).
C. Lỗi lập trình có thể dẫn đến nhiều kết quả khác nhau, từ việc chương trình bị treo đến gây ra sự cố bảo mật.
D. Các loại lỗi lập trình thường gặp bao gồm lỗi cú pháp, lỗi logic, và lỗi kiểu dữ liệu.
Câu hỏi 5.2 Tư duy là gì? Phát biểu nào sau đây không đúng?
A. Tư duy là cách mà bộ não của chúng ta suy nghĩ, giải quyết vấn đề hoặc hiểu về thế giới xung quanh.
B. Tư duy giúp chúng ta hiểu rõ hơn về thế giới xung quanh, giải quyết vấn đề hiệu quả và đưa ra quyết định sáng suốt.
C. Tư duy là một kỹ năng quan trọng có thể rèn luyện bằng cách đọc sách, học hỏi và thực hành.
D. Tư duy chỉ đơn thuần là việc làm theo các hướng dẫn có sẵn, không cần suy nghĩ sáng tạo.
Câu hỏi 5.3 Các bước cơ bản để lập trình bằng Python là gì? Phát biểu nào sau đây không đúng?
A. Phân tích bài toán và thiết kế thuật toán là bước đầu tiên, giúp xác định cách giải quyết vấn đề.
B. Lập trình là bước viết mã Python để máy tính hiểu và thực hiện.
C. Thông dịch và thực thi là quá trình chuyển đổi mã Python thành tiếng Anh.
D. Kiểm thử và gỡ lỗi là bước kiểm tra và sửa lỗi để đảm bảo chương trình hoạt động đúng. Cuối cùng là hiển thị kết quả.
Câu hỏi 5.4 Những công cụ nào cần thiết để tạo ra một chương trình bằng Python? Phát biểu nào sau đây không đúng?
A. Giấy, bút, hoặc phần mềm soạn thảo văn bản để phân tích và thiết kế thuật toán.
B. Phần mềm để lập trình (viết mã nguồn) như Notepad hoặc VS Code.
C. Chương trình Python để thông dịch, thực thi, kiểm thử, gỡ lỗi và hiển thị kết quả.
D. Trình duyệt web để xem kết quả.
-----
[gợi ý làm bài tập]
5b
# dòng mã sau bị lỗi cú pháp
print("hi ban Ti")
5c
# đoạn mã sau bị lỗi cú pháp
a = 6
b = 5
print("ket qua: ")
print(a + b)
5.1(B), 5.2(D), 5.3(C), 5.4(D)
5. Steps to Program with Python
By this lesson, you should be proficient in the following:
- Knowing how to use a Python Code Editor
- Knowing how to Interpret and Execute a Python program
- Knowing how to Write code in the Python language
- Knowing how to Run a Python program and view the result
You have now experienced most of the steps involved in Python programming. However, to structure this knowledge systematically, in this section we will delve deeper into the steps required for Python programming.
5.1 Steps to Create a Program
In Python programming, you need to perform the following five steps to create a program:
5.2 Program Debugging
In previous sections, we became familiar with steps such as coding, interpretation, execution, and displaying the output.
In this section, we will learn about Program Debugging.
In programming, a "bug" is an error or flaw in the source code that causes the program to operate incorrectly or behave unexpectedly. Bugs can lead to various outcomes, ranging from the program crashing, producing incorrect results, or even causing security vulnerabilities.
Common Types of Errors (Bugs):
- Syntax Error
- Logical Error
- Runtime Error
- Type Error
- Memory Overflow
- Security Vulnerability
What is Debugging?
Debugging is the process of finding and removing errors or bugs in a computer program's source code.
To debug, we follow these steps:
- Error Identification: Based on error messages, examining the program's output, or using debugging tools, determine the nature of the error and the line of code it occurred on.
- Error Analysis: Analyze and hypothesize why the error occurred.
- Error Correction (Fixing the Bug): Once the error is identified, modify the source code so the program runs correctly.
- Re-testing: Rerun the program to ensure no errors remain.
Let's practice to familiarize ourselves with finding and fixing bugs.
Syntax Error
A Syntax Error is an error that occurs when the program's source code violates the grammatical rules (syntax) of the programming language. Simply put, a syntax error happens when you write code that doesn't follow the required "grammar" of that language.
Example 1:
You create a Python program, e.g., loiCuPhap1.py, with the following content:
Python
# The following line has a syntax error
print("hi ban Teo"
When you run the program, you receive the following error message:
E:\pythonLabs>py loicuphap1.py
File "E:\pythonLabs\loicuphap1.py", line 1
print("hi ban Teo"
^
SyntaxError: '(' was never closed
When an error occurs, the first step is to read and understand the error message:
- The error occurred on line 1 in the file loicuphap1.py.
- It is a Syntax Error, occurring at the caret symbol (^). The error content is: unclosed parenthesis ('(' was never closed).
- Fix: Go to the error location (line 1), and add the missing closing parenthesis ).
- Re-run: Run the program again; the output "hi ban Teo" should be displayed without error messages.
Example 2:
Create a Python program, e.g., loiCuPhap2.py, with the following content:
Python
[loiCuPhap2.py]
# The following code block has a syntax error (IndentationError)
a = 3
if a > 0:
print("a là số dương")
When you run the program, you receive the following error message:
E:\pythonLabs>py loicuphap2.py
File "E:\pythonLabs\loicuphap2.py", line 4
print(f"{a} là số dương")
^^^^^
IndentationError: expected an indented block after 'if' statement on line 3
Read the message to identify the error:
- The error occurred on line 4 in the file loicuphap2.py.
- This is a Syntax Error (specifically an IndentationError), occurring at the caret symbol (^^^^^). The error content is: expected an indented block after the if statement on line 3.
- Fix: Go to the error location (line 4) and indent the print() command.
- Re-run: Run the program again; the output "3 là số dương" should be displayed without error messages.
5.3 Programming is a Way to Learn Thinking
What is Thinking?
Thinking is the way our brain processes, solves problems, or understands the world around us. It's like a "tool" in our mind that helps us imagine, analyze, and make decisions. Simply put, thinking is using your mind to figure out how to do something or understand something.
A person who merely follows step-by-step instructions is no different from a machine; we are human, and we must be better than a machine! We should turn the machine (computer, robot, chatbot, AI) into a tool to support human thinking and work.
Some Examples of Thinking:
- When playing chess: You don't just move pieces randomly; you think about your next moves and the opponent's. You predict possible scenarios and find the best strategies. This is Strategic Thinking.
- When writing an essay: You don't just write simple sentences; you think about how to express your ideas clearly and engagingly. You organize ideas logically and use language creatively. This is Creative Thinking.
- When fixing a broken object: You don't just try things randomly; you think about the cause of the damage. You analyze the object's structure and find the most effective repair method. This is Logical and Analytical Thinking.
Thinking helps us to:
- Understand the world better.
- Solve problems effectively.
- Make sound decisions.
- Create new ideas.
- Learn and develop ourselves.
Thinking is a very important skill, and we can train it by reading, learning, and practicing.
Through programming, you will train the following thinking methods:
- The thinking of a mathematician: using formal language (programming language) to express ideas.
- The thinking of an engineer: designing things, assembling components into a system, and evaluating the results when changing solutions.
- The thinking of a scientist: observing the behavior of complex systems, forming hypotheses, and testing predictions.
5.4 Exercises
Exercise 5a. Program the examples from the theoretical section.
Exercise 5b. Find the error, note down the error, and fix the syntax error:
Python
[baiTap5b.py]
# The following line has a syntax error
printer("hi ban Ti")
Exercise 5c. Find the error, note down the error, and fix the syntax error:
Python
[baiTap5c.py]
# The following code block has a syntax error
a = 6
b = 5
print(''ket qua: '')
print(a + b)
Question 5.1 What is a programming error (bug)? Which of the following statements is INCORRECT?
A. A programming error is a flaw in the source code that causes the program to operate unexpectedly.
B. Programming errors only occur when the program is running and cannot occur during the coding (programming) process.
C. Programming errors can lead to various outcomes, from the program crashing to causing security vulnerabilities.
D. Common types of programming errors include syntax errors, logical errors, and type errors.
Question 5.2 What is Thinking? Which of the following statements is INCORRECT?
A. Thinking is the way our brain processes, solves problems, or understands the world around us.
B. Thinking helps us understand the world better, solve problems effectively, and make sound decisions.
C. Thinking is an important skill that can be trained by reading, learning, and practicing.
D. Thinking is simply following existing instructions and does not require creative thought.
Question 5.3 What are the basic steps to program using Python? Which of the following statements is INCORRECT?
A. Problem analysis and algorithm design is the first step, helping to define the approach to solving the problem.
B. Coding is the step of writing Python code for the computer to understand and execute.
C. Interpretation and execution is the process of converting Python code into English.
D. Testing and debugging is the step of checking and fixing errors to ensure the program works correctly. The final step is displaying the output.
Question 5.4 What tools are necessary to create a program using Python? Which of the following statements is INCORRECT?
A. Paper, pen, or word processing software for analysis and algorithm design.
B. Software for coding (writing source code) such as Notepad or VS Code.
C. The Python interpreter/program to interpret, execute, test, debug, and display the result.
D. A web browser to view the result.
-----
Bài sau:
