Skip to content

Commit 8a1bd53

Browse files
khanhnnvngitbook-bot
authored andcommitted
GitBook: [master] 14 pages modified
1 parent f058513 commit 8a1bd53

14 files changed

+2734
-0
lines changed

README.md

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
# Introduction
2+
3+
Chào các bạn,
4+
5+
Ngôn ngữ lập trình Python ngày càng được phổ biến và ứng dụng rộng rãi trong IT. Nắm bắt được xu hướng đó và nhằm tạo điều kiện nghiên cứu cho các sinh viên, người mới bắt đầu tiếp xúc với Python, cộng đồng Python Việt Nam sưu tầm và biên tập lại giới thiệu cài nhìn tổng quan nhất về Python.
6+
7+
Trong quá trình sưu tâm, biên dịch chắc chắn không thể tránh khỏi các thiếu sót, rất mong được sự đóng góp hơn nữa của các đồng nghiệp, anh em bạn bè để hoàn thiện hơn nữa.
8+
9+
Mọi ý kiến đóng góp xin gửi về:
10+
11+
Nguyễn Ngọc Khánh
12+
13+
14+
15+
Skype/ Yahoo: khanhnnvn
16+
17+
[http://pythonvietnam.info](http://pythonvietnam.info)
18+
19+
[http://pythonvietnam.com](http://pythonvietnam.com)
20+
21+
[Forum](http://pycon.vn), [FanPage](https://www.facebook.com/pythonvietnam), [Group](https://www.facebook.com/groups/pythonvn/), [Skype](https://join.skype.com/JdrqL4K68uky)
22+
23+
Cảm ơn sự quan tâm, ủng hộ của các bạn!
24+
25+
Nhóm dịch giả.
26+
27+
Các cuốn sách liên quan:
28+
29+
[Django](https://django.pythonvietnam.info)
30+
31+
[Flask](https://flask.pythonvietnam.info)
32+

SUMMARY.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
# Table of contents
2+
3+
* [Introduction](README.md)
4+
* [Cài đặt Python](cai-dat-python.md)
5+
* [Bắt đầu](bat-dau.md)
6+
* [Biến và kiểu dữ liệu](bien-va-kieu-du-lieu.md)
7+
* [Toán tử và biểu thức](toan-tu-va-bieu-thuc.md)
8+
* [Câu lệnh điều khiển If else](cau-lenh-dieu-khien-if-else.md)
9+
* [Vòng lặp](vong-lap.md)
10+
* [Cấu trúc dữ liệu](cau-truc-du-lieu.md)
11+
* [Chuỗi](chuoi.md)
12+
* [Hàm](ham.md)
13+
* [Xử lý tập tin](xu-ly-tap-tin.md)
14+
* [Exceptions](exceptions.md)
15+
* [Class](class.md)
16+

bat-dau.md

Lines changed: 103 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,103 @@
1+
# Bắt đầu
2+
3+
Python là ngôn ngữ lập trình thông dịch, điều đó có nghĩa là bạn có thể viết code ngay trên trình thông dịch hoặc viết vào file sau đó chạy chúng. Đầu tiên chúng ta sẽ sử dụng trình thông dịch để bắt đầu viết một chương trình đầu tiên \(bạn có thể sử dụng shell trên Windows hoặc Terminal trên Linux\)
4+
5+
```text
6+
$ python
7+
Python 2.5.1 (r251:54863, Oct 30 2007, 13:54:11)
8+
q[GCC 4.1.2 20070925 (Red Hat 4.1.2-33)] on linux2
9+
Type "help", "copyright", "credits" or "license" for more information.
10+
>>>
11+
```
12+
13+
Để có thể in ra dòng chữ "Xin chào Python Viet Nam" bạn có thể làm như sau:
14+
15+
```text
16+
>>> print "Xin chào Python Viet Nam!"
17+
Hello World!
18+
19+
helloworld.py
20+
```
21+
22+
Bây giờ ta sẽ làm cách mà lập trình viên hay làm, bạn sẽ tạo một file helloworld.py, bạn có thể sử dụng bất cứ một trình soạn thảo mà bạn biết để tạo ra file này. Chú ý đuôi mở rộng là .py
23+
24+
```text
25+
#!/usr/bin/env python
26+
print "Hello World!"
27+
```
28+
29+
Để thực hiện chạy, bạn cần trao quyền cho file đó được thực thi. Bạn dùng lệnh sau:
30+
31+
```text
32+
$ chmod +x helloworld.py
33+
```
34+
35+
Sau đó chạy
36+
37+
```text
38+
$ ./helloworld.py
39+
Hello World!
40+
```
41+
42+
Trong dòng đầu tiên có dấu \#!, chúng ta gọi nó là sha-bang. Sử dụng để thông báo cho trình thông dịch Python chạy đoạn code. Dòng tiếp theo trong đoạn code trên chúng ta in ra thông báo. Trong Python chúng ta gọi các dòng văn bản là chuỗi.
43+
44+
Khoảng trắng và thụt đầu dòng
45+
46+
Trong Python khoảng trắng rất quan trọng. Chúng ta phân biệt cách sử dụng dấu khoảng trắng. Khoảng trắng trong dòng đầu tiên được xem như dấu thụt đầu dòng. Nhưng nếu sử dụng sai thì sẽ báo lỗi.
47+
48+
Ví dụ như sau:
49+
50+
```text
51+
>>> a = 12
52+
>>> a = 12
53+
File "<stdin>", line 1
54+
a = 12
55+
IndentationError: unexpected indent
56+
^
57+
```
58+
59+
Chú ý: Có một dấu cách đầu tiên gây ra lỗi trong đoạn code trên, do đó chúng ta cần đặt dấu thụt đầu dòng thích hợp.
60+
61+
Chúng ta có một số chú ý cho việc sử dụng dấu khoảng trắng và định danh
62+
63+
```text
64+
Use 4 spaces for indentation.
65+
Never mix tab and spaces.
66+
One blank line between functions.
67+
Two blank lines between classes.
68+
```
69+
70+
Có nhiều nơi trong đoạn code mà bạn phải áo dụng cách dùng dấu cách, ví dụ như:
71+
72+
```text
73+
Add a space after ”,” in dicts, lists, tuples, and argument lists and after ”:” in dicts.
74+
Spaces around assignments and comparisons (except in argument list)
75+
No spaces just inside parentheses.
76+
```
77+
78+
Comments Comments là một đoạn văn bản được viết trong code, chúng được sử dụng để giải thích hoặc chú thích cho người khác hiểu về đoạn code đó. Một đoạn comment bắt đầu bằng dấu \#, mọi thứ sau dấu comment không được thực thi trong chương trình.
79+
80+
```text
81+
>>> # This is a comment
82+
>>> # The next line will add two numbers
83+
>>> a = 12 + 34
84+
>>> print c #this is a comment too :)
85+
```
86+
87+
Comments giúp cho lập trình viên dễ dàng cải tiến mã nguồn, ghi chú các chức năng của đoạn code thực hiện, nó có thể là người viết, ngày viết.
88+
89+
```text
90+
# FIXME -- fix these code later
91+
# TODO -- in future you have to do this
92+
```
93+
94+
Modules Modules trong Python là các tập tin chưa các hàm được định nghĩa sẵn, biến cái mà chúng ta có thể sử dụng lại, nó cũng có đuôi mở rộng là .py. Python đã cung cấp sẵn một số module mặc định. Chúng ta có thể sử dụng chúng. Để sử dụng chúng ta cần dùng lệnh import. Ví dụ như sau:
95+
96+
```text
97+
>>> import math
98+
>>> print math.e
99+
2.71828182846
100+
```
101+
102+
Chúng ta sẽ tìm hiểu chi tiết về các Module trong các phần sau. Chúc các bạn thành công!
103+

bien-va-kieu-du-lieu.md

Lines changed: 215 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,215 @@
1+
# Biến và kiểu dữ liệu
2+
3+
Từ khóa và định danh
4+
5+
Code Python có thể được chia thành các định danh. Đinh danh \( hay còn được gọi là tên\) được mô tả bởi các định nghĩa từ vựng sau đây:
6+
7+
```text
8+
identifier ::= (letter|"_") (letter | digit | "_")*
9+
letter ::= lowercase | uppercase
10+
lowercase ::= "a"..."z"
11+
uppercase ::= "A"..."Z"
12+
digit ::= "0"..."9"
13+
```
14+
15+
Sau đây là danh sách các từ khóa của ngôn ngữ, chúng ta không thể sử dụng chúng như một định danh thông thường. Chúng ta phải dùng chính xác các từ sau đây:
16+
17+
```text
18+
and del from not while
19+
as elif global or with
20+
assert else if pass yield
21+
break except import print
22+
class exec in raise
23+
continue finally is return
24+
def for lambda try
25+
```
26+
27+
Trong Python chúng ta không chỉ định một kiểu dữ liệu trong một biến. Tuy nhiên chúng ta có thể viết abc = 1 và abc sẽ trở thành dữ liệu kiểu nguyên. Nếu viết abc = 1.0 thì abc sẽ là kiểu số thực. Sau đây là ví dụ cơ bản về việc gán giá trị cho biến:
28+
29+
```text
30+
>>> a = 13
31+
>>> b = 23
32+
>>> a + b
33+
36
34+
```
35+
36+
Trong ví dụ trên bạn đã hiểu cách khai báo biến trong Python, bạn chỉ cần gõ tên và giá trị của biến. Python có thể thao tác trên chuỗi. Chúng được đặt trong dấu ngoặc đơn hoặc ngoặc kép như:
37+
38+
```text
39+
>>> 'India'
40+
'India'
41+
>>> 'India\'s best'
42+
"India's best"
43+
>>> "Hello World!"
44+
'Hello World!'
45+
```
46+
47+
Nhận dữ liệu từ bàn phím:
48+
49+
Trong Python bạn không cần bước đọc dữ liệu từ bàn phím. Bạn có thể sử dụng hàm raw\_input để thực hiện nhập dữ liệu: Ví dụ như:
50+
51+
```text
52+
raw_input("Xin chao Python Viet Nam")
53+
```
54+
55+
và sẽ trả về chuỗi đầu vào. Chúng ta sẽ thử viết một chương trình đơn giản cho phép đọc số được nhập từ bàn phím sau đó kiểm tra nó lớn hơn 100 hoặc không. Tên chương trình này có tên là testhundred.py:
56+
57+
```text
58+
#!/usr/bin/env python
59+
number = int(raw_input("Enter an integer: "))
60+
if number < 100:
61+
print "Your number is smaller than 100"
62+
else:
63+
print "Your number is greater than 100"
64+
```
65+
66+
Kết quả sẽ như sau:
67+
68+
```text
69+
$ ./testhundred.py
70+
Enter an integer: 13
71+
Your number is smaller than 100
72+
$ ./testhundred.py
73+
Enter an integer: 123
74+
Your number is greater than 100
75+
```
76+
77+
Trong chương trình tiếp chúng ta sẽ lấy ví dụ về việc tính toán các khoản đầu tư:
78+
79+
```text
80+
#!/usr/bin/env python
81+
amount = float(raw_input("Enter amount: "))
82+
inrate = float(raw_input("Enter Interest rate: "))
83+
period = int(raw_input("Enter period: "))
84+
value = 0
85+
year = 1
86+
while year <= period:
87+
value = amount + (inrate * amount)
88+
print "Year %d Rs. %.2f" % (year, value)
89+
amount = value
90+
year = year + 1
91+
```
92+
93+
Kết quả như sau:
94+
95+
```text
96+
$ ./investment.py
97+
Enter amount: 10000
98+
Enter Interest rate: 0.14
99+
Enter period: 5
100+
Year 1 Rs. 11400.00
101+
Year 2 Rs. 12996.00
102+
Year 3 Rs. 14815.44
103+
Year 4 Rs. 16889.60
104+
Year 5 Rs. 19254.15
105+
```
106+
107+
Một vài ví dụ:
108+
109+
Một vài ví dụ về biến và kiểu dữ liệu:
110+
111+
Trung bình của số N
112+
113+
Trong chương trình này chúng ta sẽ tính toán trung bình của số N
114+
115+
```text
116+
#!/usr/bin/env python
117+
N = 10
118+
sum = 0
119+
count = 0
120+
while count < N:
121+
number = float(raw_input(""))
122+
sum = sum + number
123+
count = count + 1
124+
average = float(sum)/N
125+
print "N = %d , Sum = %f" % (N, sum)
126+
print "Average = %f" % average
127+
```
128+
129+
Kết quả như sau
130+
131+
```text
132+
$ ./averagen.py
133+
1
134+
2.3
135+
4.67
136+
1.42
137+
7
138+
3.67
139+
4.08
140+
2.2
141+
4.25
142+
8.21
143+
N = 10 , Sum = 38.800000
144+
Average = 3.880000
145+
```
146+
147+
Chuyển đổi nhiệt độ: Chương trình phục vụ việc chuyển đổi từ độ F sang độ C sử dụng công thức: C=\(F-32\)/1.8
148+
149+
```text
150+
#!/usr/bin/env python
151+
fahrenheit = 0.0
152+
print "Fahrenheit Celsius"
153+
while fahrenheit <= 250:
154+
celsius = ( fahrenheit - 32.0 ) / 1.8 # Here we calculate the Celsius value
155+
print "%5.1f %7.2f" % (fahrenheit , celsius)
156+
fahrenheit = fahrenheit + 25
157+
```
158+
159+
Kết quả như sau:
160+
161+
```text
162+
[kd@kdlappy book]$ ./temperature.py
163+
Fahrenheit Celsius
164+
0.0 -17.78
165+
25.0 -3.89
166+
50.0 10.00
167+
75.0 23.89
168+
100.0 37.78
169+
125.0 51.67
170+
150.0 65.56
171+
175.0 79.44
172+
200.0 93.33
173+
225.0 107.22
174+
250.0 121.11
175+
```
176+
177+
Gán nhiều giá trị cho biến trên một dòng:
178+
179+
Bạn có thể khai báo nhiều giá trị cho nhiều biến trên một dòng, ví dụ như sau:
180+
181+
```text
182+
>>> a , b = 45, 54
183+
>>> a
184+
45
185+
>>> b
186+
54
187+
```
188+
189+
Bạn cũng có thể chuyển đổi giữa hai giá trị rất dễ dàng:
190+
191+
```text
192+
>>> a, b = b , a
193+
>>> a
194+
54
195+
>>> b
196+
45
197+
```
198+
199+
Để hiểu hơn cách làm việc, chúng ta sẽ tìm hiểu về kiểu dữ liệu tuple. Chúng ta sẽ sử dụng dấu phẩy cho việc tạo tuple. Ở bên phải chúng ta sẽ tạo một tuple \( chúng ta gọi chúng là gói tuple\) và phía bên trái chúng ta gọi là tuple giải nén cho một tuple mới.
200+
201+
Dưới đây là một ví dụ:
202+
203+
```text
204+
>>> data = ("Kushal Das", "India", "Python")
205+
>>> name, country, language = data
206+
>>> name
207+
'Kushal Das'
208+
>>> country
209+
'India'
210+
>>> language
211+
'Python'
212+
```
213+
214+
Chúc các bạn thành công!
215+

0 commit comments

Comments
 (0)