Latest Post

🚨 BẢO MẬT WEB THỜI ĐẠI AI: HACKER DÙNG AI, BẠN VẪN BẢO VỆ WEBSITE THEO CÁCH CŨ? 🚨 CẢNH BÁO BẢO MẬT: HACKER CÓ THỂ ĐANG NHẮM ĐẾN FILE config.php CHỨA MẬT KHẨU DATABASE! UEFI Package sử dụng thư viện xử lý hình ảnh có rất nhiều lỗ hỏng bảo mật. Wireless LAN Router của ELECOM có lỗ hỏng bảo mật OS Command injection Note: setting days for Crontab Launching AWS EC2 Instance using Python Tự động phát hành SSL Certificate hết hạn Let’s Encrypt Verify if crontab works Cách xem thời hạn của Let’s Encrypt SSL Certificate AWS EC2 Instance: jum update failure: repodata/repomd.xml from rpmforge: [Errno 256] No more mirrors to try. Nhập môn Python: Chương 2 Hello World thử viết chương trình python đơn giản. Python – Anaconda: Cài đặt Anaconda môi trường lập trình python Nhập môn Python: Chương 1 Python là gì? MySQL – GRANT: Tạo user, set lại password, xem và cấp quyền cho user. Python – Multithread – Queue – File: Xử lý đa luồng dùng chung dữ liệu trên cùng một file dùng hàng đợi(Queue) ⑤Ubuntu – Postfix – Dovecot : Mail server setting, một phát ăn ngay . ④Ubuntu – Postfix – Dovecot : SSL/TSL security mail server setting, một phát ăn ngay. ③Ubuntu – Postfix – Dovecot : Mail server setting, một phát ăn ngay. ②Ubuntu – Postfix – Dovecot : Mail server setting, một phát ăn ngay. ① Ubuntu – Postfix – Dovecot : Mail server setting, một phát ăn ngay. Python – Pandas: lấy data từ file csv. Newbie – Python – Selenium: Tự động login Facebook với trình duyệt Chrome Newbie – Python – Skype: Gửi Message tới Skype chat group hoặc user bằng ngôn ngữ Python. Newbie – Python – PostgreSQL: Kết nối với cơ sở dữ liêu PostgreSQL bằng ngôn ngữ Python. Newbie – Python – SQL Server: Kết nối với cơ sở dữ liệu SQL Server bằng ngôn ngữ Python. Newbie – Python – Mysql: Kết nối với cơ sở dữ liêu MySQL bằng ngôn ngữ Python. Basic Authentication Setting How to setup AWS VPN Client 【GCP】Compute Engine’s Disk Expansion Linux Commands WordPress 404 Page Error (Post)
2 0
Read Time:4 Minute, 25 Second

Mục lục

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ị

Happy
Happy
0 %
Sad
Sad
0 %
Excited
Excited
0 %
Sleepy
Sleepy
0 %
Angry
Angry
0 %
Surprise
Surprise
0 %

Average Rating

5 Star
0%
4 Star
0%
3 Star
0%
2 Star
0%
1 Star
0%

Leave a Reply

Your email address will not be published. Required fields are marked *