Lập trình Python – Học lập trình, học sử dụng máy tính từ số 0 – ZeZo.dev https://zezo.dev Sun, 18 May 2025 10:40:52 +0000 vi hourly 1 https://wordpress.org/?v=6.7.1 https://zezo.dev/wp-content/uploads/2024/11/cropped-zzel-32x32.png Lập trình Python – Học lập trình, học sử dụng máy tính từ số 0 – ZeZo.dev https://zezo.dev 32 32 Học lập trình Python cấp tốc trong 2 ngày https://zezo.dev/view/hoc-lap-trinh-python-cap-toc-trong-2-ngay Sun, 18 May 2025 10:40:52 +0000 https://zezo.dev/?p=440
  • Mục tiêu: Nắm vững cú pháp cơ bản, làm quen lập trình hướng đối tượng, đọc/ghi file, thao tác với danh sách, dictionary, vòng lặp, function, xử lý lỗi, và một số module chuẩn.

  • Yêu cầu: Đã cài Python 3, dùng được VS Code hoặc bất kỳ IDE nào.

  • Tổng thời gian học: Khoảng 10–12 giờ, chia làm 2 ngày.

  • <<Bài viết theo hướng dẫn ChatGPT có kiểm duyệt>>

    Ngày 1: Học lập trình Python Cơ Bản & Cấu Trúc Dữ Liệu trong Python

    Bạn hãy vừa học từng phần vừa so sánh với các ngôn ngữ lập trình khác nhé.

    1. Biến & Kiểu dữ liệu (1 giờ)

    Python:

    name = "Alice"
    age = 25
    pi = 3.14
    is_active = True

    So sánh:

    • C:
    char name[] = "Alice";
    int age = 25;
    double pi = 3.14;
    bool is_active = true;
    • Java:
    String name = "Alice";
    int age = 25;
    double pi = 3.14;
    boolean is_active = true;
    • Nhận xét: Python không cần khai báo kiểu dữ liệu, giúp viết nhanh và dễ đọc.

    2. Toán tử & Câu lệnh điều kiện (1 giờ)

    Python:

    if age >= 18:
        print("Adult")
    elif age >= 13:
        print("Teen")
    else:
        print("Child")

    So sánh:

    • C:
    if (age >= 18) {
        printf("Adult\n");
    } else if (age >= 13) {
        printf("Teen\n");
    } else {
        printf("Child\n");
    }
    • Java:
    if (age >= 18) {
        System.out.println("Adult");
    } else if (age >= 13) {
        System.out.println("Teen");
    } else {
        System.out.println("Child");
    }
    • Nhận xét: Python dùng thụt đầu dòng thay vì {} như C/Java, cú pháp rõ ràng hơn.

    3. Vòng lặp for, while (1 giờ)

    Python:

    for i in range(5):
        print(i)
    
    i = 0
    while i < 5:
        print(i)
        i += 1

    So sánh:

    • C:
    for (int i = 0; i < 5; i++) {
        printf("%d\n", i);
    }
    • Java:
    for (int i = 0; i < 5; i++) {
        System.out.println(i);
    }
    • Nhận xét: Python có cú pháp đơn giản, đặc biệt với range().

    4. List, Tuple, Dictionary (1 giờ)

    Python:

    fruits = ["apple", "banana"]
    coords = (1, 2)
    person = {"name": "Bob", "age": 22}

    So sánh:

    • C:
    char* fruits[] = {"apple", "banana"};
    int coords[2] = {1, 2};
    // Không có dict, phải dùng struct
    • Java:
    ArrayList<String> fruits = new ArrayList<>();
    fruits.add("apple");
    fruits.add("banana");
    Map<String, Object> person = new HashMap<>();
    person.put("name", "Bob");
    person.put("age", 22);
    • Nhận xét: Python hỗ trợ cấu trúc dữ liệu tích hợp sẵn, dễ thao tác.

    5. Hàm & Lambda (1 giờ)

    Python:

    def add(a, b):
        return a + b
    
    square = lambda x: x*x

    So sánh:

    • C:
    int add(int a, int b) {
        return a + b;
    }
    // Không có lambda
    • Java:
    interface Add {
        int operate(int a, int b);
    }
    Add add = (a, b) -> a + b;
    • Nhận xét: Python có cú pháp lambda đơn giản và dễ dùng hơn Java.

    Ngày 2: Học lập trình Python với các phần Hàm Nâng Cao, OOP, Dự Án nhỏ

    6. List comprehension + Dict comprehension (30 phút)

    Python:

    squares = [x**2 for x in range(5)]
    ages = {"alice": 20, "bob": 22}
    new_dict = {k: v+1 for k,v in ages.items()}

    So sánh:

    • C: Không hỗ trợ
    • Java:
    List<Integer> squares = IntStream.range(0, 5).map(x -> x * x).boxed().collect(Collectors.toList());
    • Nhận xét: Python cho phép viết ngắn gọn, trong khi Java cần nhiều dòng và kiến thức nâng cao.

    7. Xử lý lỗi try-except (30 phút)

    Python:

    try:
        x = int(input())
    except ValueError:
        print("Invalid input")

    So sánh:

    • C: Không hỗ trợ cơ chế try-catch, phải kiểm tra thủ công
    • Java:
    try {
        int x = Integer.parseInt(input);
    } catch (NumberFormatException e) {
        System.out.println("Invalid input");
    }
    • Nhận xét: Python xử lý lỗi ngắn gọn và tự nhiên.

    8. File IO (1 giờ)

    Python:

    with open("file.txt", "w") as f:
        f.write("Hello")

    So sánh:

    • C:
    FILE *f = fopen("file.txt", "w");
    fprintf(f, "Hello");
    fclose(f);
    • Java:
    BufferedWriter writer = new BufferedWriter(new FileWriter("file.txt"));
    writer.write("Hello");
    writer.close();
    • Nhận xét: Python đơn giản hóa thao tác file với with.

    9. OOP trong Python (1 giờ)

    Python:

    class Person:
        def __init__(self, name):
            self.name = name
    
        def greet(self):
            print(f"Hello {self.name}")

    So sánh:

    • C: Không hỗ trợ OOP (chỉ có struct)
    • Java:
    class Person {
        String name;
        Person(String name) {
            this.name = name;
        }
        void greet() {
            System.out.println("Hello " + name);
        }
    }
    • Nhận xét: Python dễ học OOP nhờ cú pháp gọn, không cần khai báo kiểu rõ ràng.

    10. Module chuẩn: random, datetime (30 phút)

    Python:

    import random
    print(random.randint(1,10))

    So sánh:

    • C:
    #include <stdlib.h>
    printf("%d\n", rand() % 10 + 1);
    • Java:
    import java.util.Random;
    Random rand = new Random();
    System.out.println(rand.nextInt(10) + 1);
    • Nhận xét: Python dùng module rất trực quan, dễ nhớ.

    11. Dự án mini: Calculator (30 phút)

    def calc(a, b, op):
        if op == '+': return a + b
        elif op == '-': return a - b
        elif op == '*': return a * b
        elif op == '/': return a / b

    12. Dự án mini: Danh bạ (1 giờ)

    contacts = {}
    def add(name, phone): contacts[name] = phone
    def find(name): return contacts.get(name, "Not found")

    ]]>