---
# System prepended metadata

title: Giáo trình lớp Python

---

# Lớp Python (Buổi 1) - Làm quen với Python

## Cài đặt Python (Windows)

Bước 1: Tải Python tại đây: https://www.python.org/downloads/

Bước 2: Chạy tệp trình cài đặt và làm theo các bước để cài đặt Python (chọn "Install now")

Trong quá trình cài đặt, hãy nhớ chọn "Add python.exe to PATH".

![image](https://hackmd.io/_uploads/BykwgZ2KT.png)

## Sử dụng Python IDLE
Bước 1. Bấm nút Windows

Bước 2. Tìm Kiếm IDLE và chọn để hiện Hiện IDLE shell

Bước 3. Có thể code trực tiếp trên IDLE shell, hoặc Bấm Ctrl+N để tạo cửa số mới và code trên đó

- Chọn "File", sau đó chọn "New file"
- Gõ dòng lệnh `print('Hello, World!')` và lưu file với tên `hello.py`
![image](https://hackmd.io/_uploads/HJ60mZhY6.png)
- Nhấn phím F5 để chạy chương trình
![image](https://hackmd.io/_uploads/HJPHEZhFa.png)
   

## Toán tử số học
Sau khi viết và chạy chương trình "Hello World", ta sẽ đến với các biểu thức số học trong Python.

Các toán tử `+`, `-` và `*` thể hiện lần lượt là các phép cộng, trừ và nhân trong toán học, hãy xem ví dụ sau đây:

```
>>> 20 + 8
28
>>> 42 - 5
37
>>> 8 * 7
56
```

Toán tử `/` thể hiện cho phép chia:

```
>>> 20 / 5
4.0
```

Ta nhận được kết quả là `4.0` thay vì `4` bởi vì trong Python toán tử `/` sẽ cho ta giá trị là số thực. 

Trong Python, ta có thể sử dụng toán tử `//` là phép chia lấy nguyên và `%` cho phép chia lấy dư. Ngoài ra, có thể tính phép mũ bằng toán tử `**`.

```
>>> 20 // 5
4
>>> 23 % 5
3
>>> 2 ** 3
8
```

Tổng kết các toán tử số học:


| Toán tử | Phép toán học | Cú pháp |
| -------- | -------- | -------- |
| `+`     | Cộng     | `x + y`     |
| `-`     | Trừ     | `x - y`     |
| `*`     | Nhân     | `x * y`     |
| `/`     | Chia     | `x / y`     |
| `//`     | Chia lấy nguyên     | `x // y`     |
| `%`     | Chia lấy dư     | `x % y`     |
| `**`     | Mũ     | `x ** y`     |

## Kiểu dữ liệu

Các dữ liệu trong Python đều có kiểu của chúng, `2` có kiểu là số nguyên `int`, `3.14` là kiểu số thực `float` và `'Hello, World!'` là kiểu chuỗi `str`.

```
>>> type(2)
<class 'int'>
>>> type(3.14)
<class 'float'>
>>> type('Hello, World!')
<class 'str'>
```

Vậy kiểu dữ liệu giữa `10` và `'10'` có khác nhau không ?

```
>>> type(10)
<class 'int'>
>>> type('10')
<class 'str'>
```

## Biến dữ liệu 

Để lưu trữ các dữ liệu trong lập trình, ta cần sử dụng 'biến'. Ta có thể gán giá trị dữ liệu sử dụng toán tử `=`. Cú pháp gán dữ liệu: `[var_name] = [value]`.

```
>>> message = 'Hello'
>>> n = 17
>>> pi = 3.14
>>>
>>> print(message)
Hello
>>> print(n)
17
>>> print(pi)
3.14
```


Lưu ý, quy tắc tên biến như sau:

- Tên biến trong Python phải bắt đầu bằng một chữ cái (a-z, A-Z) hoặc dấu gạch dưới (_).
- Tên biến có thể chứa các chữ cái (a-z, A-Z), các chữ số (0-9) và dấu gạch dưới (_).
- Python phân biệt chữ hoa và chữ thường, vì vậy biến "name" và "Name" được coi là hai biến khác nhau.
- Tên biến không thể chứa các ký tự đặc biệt như @, $, % và *.

Chúng ta có thể chuyển kiểu dữ liệu của một biến:

```
>>> x = 10
>>> y = 5
>>> z = x / y
>>> z
2.0
>>> type(z)
<class 'float'>
>>> z = int(z)
>>> z
2
>>> type(z)
<class 'int'>
```

Ta có thể sử dụng các biến trong các biểu thức trong Python, tham khảo ví dụ sau:

```
>>> x = 5
>>> y = 2
>>> x + y * 2
9
>>> z = x - y
>>> (z + 3) * y + 4.5
16.5
>>> z // y * 3
3
```

## Nhập xuất dữ liệu

Để nhập dữ liệu từ bàn phím vào một biến ta sử dụng cú pháp `var_name = input()`
Tuy nhiên kiểu dữ liệu từ câu lệnh `input()` là kiểu `str`. Vì thế để nhập dữ liệu là một số nguyên, sử dụng lệnh `int(input())`.

```
>>> n = input()
123
>>> type(n)
<class 'str'>
>>> n = int(input())
123
>>> type(n)
<class 'int'>
```

Để in ra dữ liệu ta sử dụng lệnh `print`

```
>>> x = 5
>>> y = 3
>>> z = 4
>>> print(x)
5
>>> print(x, y, z)
5 3 4
>>> print('sum:', x + y + z) 
sum: 12
```

Chương trình sau đây, nhập vào 2 số nguyên là chiều dài và chiều rộng của hình chữ nhật và in ra diện tích và chu vi của nó: 
```
length = int(input())
breadth = int(input())
area = length * breadth
print('Area is', area)
print('Perimeter is', 2 * (length + breadth))
```

## Bài tập thực hành 
TBN



