Monday, March 30, 2015

Python 1: Lập trình với python

Từ lâu tôi đã thích viết những đoạn mã kịch bản để xử lý những vấn đề mà tôi phải làm bằng tay , tôi ghét việc phải ngồi viết ra 1 chương trình có giao diện. Thời gian này tôi đang xin nghỉ 2 tháng tại công ty tôi đang làm việc với lý do là bân ôn thi tốt nghiệp và cần nghỉ ngơi 1 thời gian sau khi giai đoạn 1 của dự án tôi tham gia kết thúc nên tôi cũng có chút thời gian để học thêm 1 ngôn ngữ lập trình mới.

Chương trình đầu tiên tôi viết ra như sau:
In ra 1 câu thông báo và yêu cầu người dùng nhập tên và tiếp tục in ra câu thông báo với tên họ nhập vào :))

Python có thể ứng dụng trong việc lập trình web, hoặc các đoạn script chạy trên Ubuntu nên phải cho môi trường biết là tao đang làm việc với python và tao chuẩn bị cho tụi bay biết là tao chuẩn bị viết code python này !!
#!/usr/bin/env python
Còn tôi lập trình trên windows nên có dòng đó hay không cũng không quan trọng.

Tôi viết như sau:

Sau đó tôi lưu lại với file có định dạng *.py và thực hiện chạy trên command của windows. Với điều kiện là tôi đã cài đặt python trước đó (tôi sử dụng python 2.7.3), và đã khai báo môi trường trong windows.

Bài đầu tiên có vẻ đơn giản quá nên tôi không dừng lại ở đó, tôi tìm hiểu tổng quan về việc sử dụng biến, hàm và một số cú pháp cơ bản của python.

print 2+2 => và kết quả là: 4 , nhưng tôi thay đổi lại thành Print 2+2 thì hiển thị thông báo lỗi nên tôi biết được rằng: Python có phân biệt chữ hoa và chữ thường.
Tiếp theo, tôi thử gán phép tính cho 1 biến và thực hiện in biến đó ra màn hình bằng cách sau:
x = 2+2 | print x => kết quả là 4.
print x*2 => kết quả là 8
x = "What does that mean?"
print x => kết quả là : What does that mean?
Python rất linh động trong việc gán giá trị, người dùng không phải định nghĩa biến là kiểu dữ liệu gì mà nó sẽ tự nhận trong quá trình thông dịch.

Vậy làm sao tôi có thể biết được biến x là kiểu dữ liệu gì? Tôi làm như sau:

Kết quả:
What does that mean?
<type 'str'>
 Đối với việc xử lý chuỗi trong python cũng rất đơn giản. Tôi hoàn toàn có thể viết như sau:

x *10: Chuỗi "What does that mean?" sẽ được nhân lên 10 lần
Làm sao để ép kiểu trong python , tôi làm như sau:

Ở đây biến cvtInt đang có kiểu dữ liệu là 'string' nhưng sau đó được ép kiểu sang kiểu 'int' và có thể thực hiện phép tính * 5 sau đó cho ra kết quả 50.

Tôi muốn viết tiếp về việc sử dụng vòng lặp for nhưng tôi đang có chút thắc mắc về một số cú pháp trong python, việc sử dụng xrange(): và range():,.. chúng khác nhau như thế nào. Nên trong bài viết này tôi chưa dám chắc có thể khái quát được nội dung đó. Tôi sẽ tiếp tục đề cập vào những bài viết tiếp theo khi đã rõ vấn đề.

Mẹo nhỏ: Mặc định lệnh print sau khi in xong sẽ xuống dòng, nhưng nếu ta sử dụng
print 'hai',
print 'nho'
thì kết quả sẽ là : hainho (Thêm dấu phẩy ',')

Chưa biết viết gì?

Tôi đã nhiều lần muốn lập blog để viết những gì mình thích và giúp mình ghi nhớ mọi chuyện được tốt hơn. Đang ngồi đọc tài liệu thì tôi chợt nhớ tới tiếng đàn, nhớ tới những con người tôi luôn ngưỡng mộ. Tôi suy nghĩ về anh Khang (hacnho), làm sao để tôi có được sức mạnh như anh ấy. Tạo 1 cái blog trước để nuôi dưỡng sức mạnh của 1 thằng nhóc có lẽ sẽ là một ý hay trong lúc này. Thứ 4 tuần tới được cô chị mời đi xem film, hôm sau thì lên trường ứng tuyển vị trí nhập liệu kiếm thêm thu nhập. :)
Tính chuyện viết blog lâu dài mà tâm trạng đang căng thẳng quá, vào blog anh Thái xem lâu nay anh có suy nghĩ gì mới  mới không, mình thích nghe anh Khang tâm sự nhưng anh toàn viết trên facebook, mà cứ hễ lên fb là mình lại đau đầu nên mình đang dần dần cai nghiện anh Khang :D

Ngoài việc viết blog để nâng cao khả năng viết lách, rèn luyện tính tự kỷ và note lại vài điều mình cần lưu ý trong quá trình tự học tập và nghiên cứu. Các vấn đề mình sẽ quan tâm trong khoảng thời gian mình còn sống đại khái như sau: Lập trình (Python, Node Js, Asp.net, C#, C++, Laravel, và các hệ quản trị cơ sở dữ liệu đi kèm), các thư viện mình nghiên cứu sau này như OpenCV, OpenNI. Không chỉ có học lập trình, mà còn phải học kỹ năng sống ví dụ: Chẳng hạn có ngày đất nước ta bị đô hộ 1 lần nữa, thay vì là một thằng chỉ biết biết máy tính thì còn phải có phương án đánh giặc, giúp cho đất nước và tự bảo vệ bản thân.
Không nên chỉ biết tiếng việt, tiếng anh thì bây giờ ai cũng phải học, nhưng sao lại chỉ dừng lại ở tiếng anh. Học thêm tiếng Ả rập, thái lan, tiếng nhật. Mọi thứ đều cần thiết cả.
Đời người ngắn quá đi thôi, ước gì một ngày có 24h1' nhưng điều đó không bao giờ là sự thật.