Tag Archives: hướng dẫn

Chương 19: Nghiên cứu cụ thể: Tkinter

Trở về Mục lục quyển sách

GUI

Phần lớn chương trình ta đã gặp đều hoạt động trên nền chữ, nhưng cũng có nhiều chương trình dùng giao diện đồ họa người dùng, cũng được gọi là GUI.

Python cung cấp một số cách để viết chương trình GUI: dùng wxPython, Tkinter, và Qt. Mỗi cách đều có ưu và nhược điểm, đó cũng là lí do mà Python chưa có quy chuẩn cụ thể về mặt này.

Công cụ mà tôi trình bày trong chương này là Tkinter vì tôi nghĩ rằng đó là thứ dễ nhất mà chúng ta bắt đầu học. Đa số các khái niệm trong chương này cũng dùng được với các module GUI khác.

Tiếp tục đọc

Advertisements

2 phản hồi

Filed under Think Python

Chương 14: File

Trở về Mục lục cuốn sách

Sự duy trì dữ liệu

Phần lớn các chương trình ta đã thấy đến giờ đều có tính nhất thời về khía cạnh dữ liệu; theo nghĩa chúng chạy trong một thời gian ngắn, tạo ra kết quả nhưng khi kết thúc thì dữ liệu cũng biến mất. Nếu bạn chạy lại, chương trình sẽ bắt đầu với một trạng thái trống rỗng.

Các chương trình khác có tính duy trì dữ liệu: chúng chạy trong thời gian dài (hoặc luôn luôn chạy); và giữ lại ít nhất một phần dữ liệu trong một thiết bị lưu dữ liệu vĩnh viễn (ví dụ như ổ đĩa); và sau khi được kết thúc và khởi động lại, chương trình sẽ bắt đầu từ điểm mà chúng tạm dừng trước đây.

Các ví dụ về chương trình duy trì bao gồm các hệ điều hành, luôn được chạy mỗi khi máy tính được bật lên, và trình phục vụ web, vốn được chạy mọi lúc, đợi các yêu cầu gửi đến từ mạng máy tính. Tiếp tục đọc

2 phản hồi

Filed under Think Python

Chương 13: Nghiên cứu cụ thể: lựa chọn cấu trúc dữ liệu

Trở về Mục lục cuốn sách

Phân tích tần số của từ vựng

Như thường lệ, ít nhất là bạn phải cố gắng làm các bài tập sau đây trước khi đọc lời giải của tôi.

Hãy viết một chương trình đọc vào một file, tách mỗi dòng thành các từ riêng lẻ, cắt bỏ các dấu trắng và dấu câu, rồi chuyển chúng về dạng chữ thường.

Gợi ý: module string cho ta hai chuỗi, whitespace chứa dấu cách, dấu tab, dấu xuống dòng, v.v., và punctuation chứa các kí tự dấu câu. Hãy thử làm Python chửi thề xem:

>>> import string
>>> print string.punctuation
!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~

Có thể bạn cũng muốn dùng các phương thức chuỗi strip, replacetranslate.

Hãy thăm dự án Gutenberg (gutenberg.net) và tải về cuốn sách ưa thích của bạn dưới dạng file chữ.

Sửa chương trình trong bài tập trước để đọc được quyến sách vừa tải về, bỏ qua đoạn thông tin ở đầu file, và xử lý phần còn lại như bài trước.

Sau đó sửa chương trình để đếm số từ trong quyển sách, và số lần mỗi từ được dùng đến.

In ra số từ khác nhau được dùng trong cuốn sách. So sánh những cuốn sách viết bởi các tác giả khác nhau, viết trong những giai đoạn khác nhau. Tác giả nào dùng lượng từ vựng nhiều nhất?

Hãy sửa chương trình ở bài tập trước để in ra 20 từ được dùng thường xuyên nhất trong cuốn sách.

Hãy sửa chương trình trước để đọc vào một dánh sách các từ (xem Mục {wordlist}) rồi in ra tất cả các từ trong cuốn sách mà không nằm trong danh sách từ. Trong số đó có bao nhiêu lỗi in? Có bao nhiêu từ thông dụng mà đáng ra phải có trong danh sách, và bao nhiêu từ thực sự ít gặp?

Tiếp tục đọc

%(count) bình luận

Filed under Think Python

Chương 12: Bộ

Trở về Mục lục cuốn sách

Bộ là kiểu dữ liệu không thay đổi

Bộ là một dãy các giá trị. Các giá trị có thể thuộc kiểu dữ liệu bất kì, và chúng đánh thứ tự bởi các số nguyên, và vì vậy bộ khá giống với danh sách. Điểm khác nhau quan trọng là ở chỗ bộ có tính không thay đổi.

Về mặt cú pháp, một bộ là một dãy các giá trị được phân cách bởi dấu phẩy:

>>> t = 'a', 'b', 'c', 'd', 'e'

Tiếp tục đọc

2 phản hồi

Filed under Think Python

Chương 3: Hàm

Trở về Mục lục cuốn sách

Việc gọi các hàm

Trong lập trình, một hàm là một nhóm được đặt tên gồm các câu lệnh nhằm thực hiện một nhiệm vụ tính toán cụ thể. Khi định nghĩa hàm, bạn chỉ định tên của nó và tiếp theo là loạt các câu lệnh. Sau này, bạn có thể “gọi” hàm theo tên của nó.

Ta đã gặp một ví dụ của việc gọi hàm:

>>> type(32) 
<type 'int'> 

Tên của hàm này là type. Biểu thức ở trong cặp ngoặc đơn được gọi là đối số của hàm. Kết quả của hàm này là kiểu của đối số. Tiếp tục đọc

2 phản hồi

Filed under Sách, Think Python

Chương 2: Biến, biểu thức và câu lệnh

Trở về Mục lục cuốn sách

Giá trị và kiểu

Giá trị là một trong những cái cơ bản mà chương trình cần dùng đến, chẳng hạn như một chữ cái hoặc một con số. Các giá trị mà ta đã thấy đến giờ bao gồm 1, 2, và 'Hello, World!'.

Các giá trị này thuộc về hai kiểu khác nhau: 2 là một số nguyên, còn 'Hello, World!' là một chuỗi, được gọi như vậy vì nó là một chuỗi các kí tự ghép lại với nhau. Bạn (và trình thông dịch) có thể nhận ra các chuỗi vì chúng được đặt trong cặp dấu nháy. Tiếp tục đọc

4 phản hồi

Filed under Sách, Think Python

Chương 1: Cơ chế của chương trình máy tính

Trở về Mục lục cuốn sách

Mục đích của cuốn sách này là hướng dẫn bạn suy nghĩ như là một nhà khoa học máy tính. Cách tư duy này kết hợp những ưu điểm của khoa học tự nhiên, trong đó có toán học, với kĩ thuật. Cũng như những nhà toán học, những nhà khoa học máy tính dùng những ngôn ngữ có cấu trúc để diễn đạt ý tưởng (đặc biệt là tính toán). Giống như những kĩ sư, họ cũng làm công việc thiết kế, gắn kết các thành phần tạo nên một hệ thống và đánh giá những ưu khuyết giữa các phương án khác nhau. Giống như những nhà khoa học, họ khảo sát các động thái của hệ thống phức tạp, đề ra các giả thiết, và kiểm định những tính toán. Tiếp tục đọc

2 phản hồi

Filed under Think Python

Chương 12: Bây giờ véc-tơ mới thật là véc-tơ

Trở về Mục lục cuốn sách

Véc-tơ là gì?

Từ “véc-tơ” có thể mang những nghĩa khác nhau đối với từng người. Trong MATLAB, véc-tơ là một ma trận chỉ có một hàng, hoặc một cột. Cho đến giờ, ta đã dùng các véc-tơ của MATLAB để biểu diễn:

dãy:
Dãy là một tập hợp các giá trị được nhận diện bởi các chỉ số nguyên; theo cách làm tự nhiên ta có thể lưu các phần tử của dãy như những phần tử của một véc-tơ trong MATLAB.

véc-tơ trạng thái:
Véc-tơ trạng thái là một tập hợp các giá trị để mô tả trạng thái của một hệ vật lý. Khi gọi ode45, bạn cho nó các điều kiện ban đầu dưới dạng một véc-tơ trạng thái. Sau đó, khi ode45 gọi hàm tốc độ mà bạn lập nên, nó sẽ trả kết quả là một véc-tơ trạng thái khác.

ánh xạ rời rạc:
Nếu có trong tay hai véc-tơ cùng độ dài, bạn có thể hình dung chúng như một phép ánh xạ từ những phần tử của một véc-tơ này sang các phần tử thuộc véc-tơ kia. Chẳng hạn, ở Mục {Chuột}, kết quả thu được từ ode45 là các véc-tơ, TY; chúng biểu diễn một phép ánh xạ từ các giá trị thời gian của T sang các giá trị số lượng chuột có trong Y.

Trong chương này ta sẽ xét đến một công dụng khác của véc-tơ trong MATLAB: để biểu diễn các véc-tơ không gian. Một véc-tơ không gian là một giá trị nhằm biểu diễn một đại lượng vật lý nhiều chiều, như vị trí, vận tốc, gia tốc, hoặc lực1. Tiếp tục đọc

8 phản hồi

Filed under Mô hình hóa, Sách

Chương 11: Tối ưu hóa và nội suy

Trở về Mục lục cuốn sách

Các sự kiện dùng trong hàm ODE

Thường thì khi gọi ode45, bạn đều phải chỉ ra các thời điểm bắt đầu và kết thúc. Nhưng trong nhiều trường hợp, bạn không biết trước lúc nào việc mô phỏng cần kết thúc. Thật may là MATLAB cung cấp một cơ chế xử lý vấn đề này. Điều không hay là cơ chế này hơi lủng củng một chút. Sau đây là cách hoạt động:

  1. Trước khi gọi ode45 bạn dùng odeset để tạo ra một đối tượng có tên options để chứa các giá trị quy định cách hoạt động của ode45:
    options = odeset('Events', @events);
    

    Trong trường hợp này, tên của tùy chọn (option) là Events còn giá trị là một chuôi hàm. Khi ode45 hoạt động, nó sẽ gọi events sau mỗi bước thời gian. Bạn có thể gọi hàm này bằng bất cứ tên gọi nào, nhưng cái tên events thường được chọn theo thông lệ. Tiếp tục đọc

5 phản hồi

Filed under Mô hình hóa, Sách

Chương 10: Các hệ bậc hai

Trở về Mục lục cuốn sách

Hàm lồng ghép

Trong Mục ví dụ bài toán con vịt, ta đã thấy một ví dụ của tập tin M với hơn một hàm:

function res = duck()
    error = error_func(10)
end

function res = error_func(h)
    rho = 0.3;      % density in g / cm^3
    r = 10;         % radius in cm
    res = ...
end

Tiếp tục đọc

4 phản hồi

Filed under Mô hình hóa, Sách