Mục lục
- Chương trình đơn giản nhất Hello World.
- Cấu trúc một chương trình phần mềm đơn giản nhất như thế nào?
- if __name__ == “__main__” có ý nghĩa gì?
- Video hướng dẫn từng bước cụ thể.
Khi bắt đầu học bất kì ngôn ngữ nào, thì ta luôn thấy bài giảng sẽ bắt đầu bằng chương trình đơn giản nhất đó là “Hello Wolrd”. Tại sao vậy?
Thực tế chương trình Hello World tạo ra nhằm giúp các bạn chưa có kiến thức về lập trình hiểu rõ cấu trúc của một chương trình(hay là ứng dụng) cơ bản nhất mà ngôn ngữ lập trình đó có thể tạo ra. Python cũng không ngoại lệ, nên nếu các bạn đã biết lập trình ngôn ngữ khác có thể bỏ qua bài này cũng được.
Chương trình đơn giản nhất Hello World.
Dưới đây là một chương trình đơn giản nhất, Hello World.
print('Hello World!.')
Nếu ta dùng Jupyter để chạy thử thì chương trình sẽ như bên dưới.

Chỉ cần click vào ① để chạy chương trình thì dòng Hello World!. sẽ được in ra như ở ô vuông đỏ số ②. Quá đơn giản đúng không. Đúng vậy đó là tôn chỉ của python mà.

Nhìn vào chương trình Hello World cơ bản ta thấy có 2 thành phần chính như bên dưới:
- Hàm print
- Và chuỗi ký tự: “Hello World!.”
Hàm print nó sẽ nhận dữ liệu vào là chuỗi ký tự “Hello World!.” rồi hiển thị ra bên ngoài. Trên thực tế chúng ta chỉ cần hiểu rõ cách gọi hàm và cấu trúc của một chương trình phần mềm thôi thì cũng có thể viết một chương trình phần mềm bình thường rồi. Đối với ngôn ngữ Python lại càng đúng, vì Python cung cấp cho chúng ta rất nhiều thư việc viết sẵn với nhiều chức năng đa dạng và phong phú.
Cấu trúc một chương trình phần mềm đơn giản nhất như thế nào?
Ta thử xem thêm một chương trình in dòng Hello World!. viết theo cách khác.
name = input('Input your name:')
message = 'Hello ' + name + '!.'
print(message)
Ta nhập đoạn code trên vào Jupyter và cho chạy chương trình thì nó sẽ hiển thị như hình bên dưới.

Ta nhập từ World vào và nhấn phím [Enter] nó sẽ hiển thị dòng Hello World!. như bên dưới.

Bên dưới là lưu đồ của một ứng dụng phần mềm cơ bản.

if __name__ == “__main__” có ý nghĩa gì?
Ta thử đoạn code tiếp theo nhé
if __name__ == "__main__":
print('Hello World!.')
Ta dùng Jupyter và chạy thì nó vẫn in ra dòng Hello World!. như bên dưới (Ô vuông đỏ số ②)

Tại sao lại như vậy nếu như kết quả là như nhau thì tại sao ta phải dùng dòng if… chi cho phức tạp???
Ta thử xem đoạn code in Hello World!. viết bằng ngôn ngữ C:
#include
int main(void) {
printf("Hello World!.\n");
return 0;
}
Có vẻ phức tạp hơn nhỉ, vậy chắc mọi người bỏ chạy qua học Python hết nhỉ? Trên thực tế trong Python vẫn tồn tại C/C++ trong đó cái này nghiên cứu sâu hơn ta sẽ thấy. Ở đây chúng ta thấy có điểm chung nào đó không? Đó chính là hàm main. Một ứng dụng dù viết bằng bất kỳ ngôn ngữ nào khi chạy chương trình đều phải có điểm bắt đầu và điểm kết thúc. Ở ngôn ngữ C/C++ điểm bắt đầu chính là hàm main và điểm kết thúc cũng chính là hàm main, hàm main luôn được khai báo rõ ràng tường minh và cố định, nhưng với python thì khác.
Python không chỉ định hàm main một cách cố định, nó mặc định rằng file nào được gọi chạy đầu tiên thì file đó là main. Những file khác được import vào thì là phụ. Vì thế nó phát sinh thêm if __name__ == “__main__”: này, có nghĩa là nếu file này chạy đầu tiên tức là main thì sẽ thực hiện các xử lý trong if đó ngược lại thì không cần.
Ví dụ 1:
Ta có file test_one.py như bên dưới.
if __name__ == "__main__":
print('test_one đang là main')
else:
print('test_one không phải là main')
Nếu ta chạy lệnh python test_one.py thì ta có kết quả là
test_one đang là main
Tiếp theo ta có file test_two.py như bên dưới.
import test_one
Nếu ta chạy lệnh python test_two.py thì ta có kết quả là
test_one không phải là main
Ví dụ 2:
Ta có file test_one.py như bên dưới.
print(__name__)
Nếu ta chạy lệnh python test_one.py thì ta có kết quả là
__main__
Có nghĩa là test_one.py giờ đang là main nên nó gán __main__ vào __name__
Tiếp theo ta có file test_two.py như bên dưới.
import test_one
Nếu ta chạy lệnh python test_two.py thì ta có kết quả là
test_one
Trong trường hợp này test_one được gọi từ test_two.py nên __name__ được gán là tên test_one
Video hướng dẫn từng bước cụ thể.
Đang chuẩn bị