Sams Teach Yourself: Hướng dẫn lập trình Python cho Raspberry Pi trong 24 giờ

Khám phá cách lập trình Python trên Raspberry Pi với sách Sams Teach Yourself. Học nhanh chóng và hiệu quả qua các bài hướng dẫn chi tiết.

Trường đại học

University

Chuyên ngành

Programming

Người đăng

Ẩn danh

Thể loại

Book
70
1
0

Phí lưu trữ

30 Point

Tóm tắt

I. Khám phá sách Sams Teach Yourself Python cho Raspberry Pi

Cuốn sách Sams Teach Yourself Python Programming for Raspberry Pi của hai tác giả Richard Blum và Christine Bresnahan là một tài liệu toàn diện, được thiết kế để hướng dẫn người mới bắt đầu và những người có sở thích về công nghệ tiếp cận với lập trình. Được ra mắt trong bối cảnh Raspberry Pi, một máy tính bo mạch đơn giá rẻ, đang tạo nên một cuộc cách mạng trong giáo dục và giới DIY (Do It Yourself), cuốn sách này chọn Python làm ngôn ngữ lập trình chính thức. Lựa chọn này không phải ngẫu nhiên. Python là một ngôn ngữ lập trình linh hoạt, mạnh mẽ và có cú pháp thanh lịch, dễ đọc, phù hợp cho cả việc phát triển ứng dụng trên PC Windows, Mac và chạy trực tiếp trên Raspberry Pi. Lộ trình học tập được xây dựng một cách có hệ thống, bắt đầu từ những bước cơ bản nhất. Phần I tập trung vào việc thiết lập môi trường, từ việc cài đặt bo mạch Raspberry Pi, làm quen với hệ điều hành Raspbian Linux, cho đến việc cấu hình một môi trường lập trình Python hoàn chỉnh. Tiếp theo, Phần II đi sâu vào các khái niệm nền tảng của Python, giúp người đọc nắm vững cú pháp, biến, toán tử và các cấu trúc điều khiển. Các phần sau đó nâng cao kiến thức với các chủ đề phức tạp hơn như cấu trúc dữ liệu, lập trình hướng đối tượng, và cuối cùng là các dự án thực tế kết hợp phần mềm và phần cứng, như lập trình GUI và tương tác với các chân giao diện GPIO. Mục tiêu của cuốn sách không chỉ là dạy lập trình, mà còn là khơi dậy sự sáng tạo, giúp người đọc biến những ý tưởng thành các sản phẩm hữu hình. Tài liệu này phù hợp với nhiều đối tượng, từ sinh viên muốn tìm một phương pháp học lập trình chi phí thấp, đến những người đam mê công nghệ muốn khai thác tối đa tiềm năng của Raspberry Pi.

1.1. Tổng quan lộ trình học Python và Raspberry Pi trong sách

Lộ trình học tập trong cuốn sách được chia thành sáu phần chính, bao quát toàn bộ kiến thức cần thiết. Phần I, “Môi trường lập trình Raspberry Pi”, hướng dẫn chi tiết cách thiết lập phần cứng và làm quen với hệ điều hành Raspbian Linux. Phần II, “Kiến thức cơ bản về Python”, là nền tảng cốt lõi, trình bày về các câu lệnh, biến, toán tử, và vòng lặp. Phần III, “Python nâng cao”, giới thiệu các cấu trúc dữ liệu phức tạp như Lists, Tuples, Dictionaries, Sets và khái niệm lập trình hướng đối tượng. Phần IV, “Lập trình đồ họa”, tập trung vào việc xây dựng giao diện người dùng (GUI) và lập trình game. Phần V, “Lập trình cho doanh nghiệp”, mở rộng sang các ứng dụng mạng và cơ sở dữ liệu. Cuối cùng, Phần VI, “Các dự án Python với Raspberry Pi”, là nơi áp dụng tất cả kiến thức đã học để tạo ra các sản phẩm thực tế, từ trình chiếu đa phương tiện đến điều khiển mạch điện tử qua giao diện GPIO.

1.2. Đối tượng phù hợp để tự học Python với Raspberry Pi

Tài liệu này được biên soạn cho ba nhóm đối tượng chính. Thứ nhất là sinh viên, những người đang tìm kiếm một phương pháp tiết kiệm để học lập trình Python trên một nền tảng phần cứng thực tế. Thứ hai là những người có sở thích công nghệ (hobbyists), muốn khai thác tối đa sức mạnh của hệ thống Raspberry Pi để tạo ra các dự án cá nhân độc đáo. Thứ ba là các doanh nhân, những người đang tìm kiếm một nền tảng Linux chi phí thấp để triển khai ứng dụng. Dù người đọc chưa có kinh nghiệm lập trình, cuốn sách vẫn cung cấp đầy đủ các bước cần thiết để xây dựng và chạy các chương trình Python một cách thành công. Phong cách viết trực tiếp và các ví dụ minh họa rõ ràng giúp người học dễ dàng tiếp thu kiến thức phức tạp.

II. Cách vượt rào cản khi lập trình Python cho Raspberry Pi

Bắt đầu hành trình lập trình Python cho Raspberry Pi thường đi kèm với những thách thức không nhỏ, đặc biệt là đối với người mới. Một trong những rào cản đầu tiên là việc thiết lập phần cứng. Người học cần phải biết cách lựa chọn các thiết bị ngoại vi cần thiết như nguồn điện, thẻ nhớ SD, bàn phím, và màn hình hiển thị. Việc kết nối và khởi động Raspberry Pi lần đầu có thể gây bối rối nếu không có hướng dẫn rõ ràng. Sau khi phần cứng hoạt động, thách thức tiếp theo đến từ phần mềm. Hệ điều hành Raspbian Linux, dù mạnh mẽ, nhưng lại có thể xa lạ với những người quen thuộc với Windows hoặc macOS. Việc tương tác với giao diện dòng lệnh (command line) và hiểu cấu trúc tệp của Linux đòi hỏi một quá trình học hỏi ban đầu. Cuốn sách Sams Teach Yourself Python Programming for Raspberry Pi đã giải quyết triệt để những vấn đề này trong Phần I. Nó không chỉ cung cấp danh sách các thiết bị ngoại vi cần thiết và tùy chọn, mà còn hướng dẫn từng bước để tải hệ điều hành Raspbian vào thẻ SD và khởi động hệ thống. Các chương đầu tiên cũng tập trung vào việc làm quen với cả giao diện dòng lệnh và giao diện đồ họa của Raspbian, giúp người dùng tự tin hơn khi thao tác. Thách thức cuối cùng nằm ở việc nắm bắt các khái niệm lập trình cơ bản. Cú pháp của Python tuy đơn giản nhưng các khái niệm như biến trong Python, kiểu dữ liệu, và luồng điều khiển chương trình có thể là một rào cản tư duy. Cuốn sách tiếp cận vấn đề này một cách tuần tự, bắt đầu với những khái niệm dễ hiểu nhất trước khi chuyển sang các chủ đề phức tạp hơn.

2.1. Thách thức thiết lập môi trường lập trình Raspberry Pi

Việc thiết lập một môi trường lập trình hoàn chỉnh là bước quan trọng nhưng cũng đầy thử thách. Người dùng cần đảm bảo rằng phiên bản Python phù hợp (Python 3) đã được cài đặt và hoạt động đúng cách trên Raspbian Linux. Cuốn sách hướng dẫn kiểm tra môi trường Python hiện có, cài đặt các công cụ cần thiết và làm quen với các cách khác nhau để chạy mã Python. Điều này bao gồm việc sử dụng trình thông dịch tương tác (Python interactive shell) để thử nghiệm các lệnh đơn lẻ và sử dụng môi trường phát triển tích hợp như IDLE để viết và quản lý các kịch bản (script) lớn hơn. Việc hiểu rõ khi nào nên sử dụng công cụ nào là một kỹ năng quan trọng giúp tối ưu hóa quy trình làm việc và gỡ lỗi hiệu quả hơn.

2.2. Khó khăn khi tiếp cận cú pháp và logic Python cơ bản

Đối với người chưa từng lập trình, việc hiểu cú pháp và logic là một trở ngại lớn. Các khái niệm như hàm, biến, kiểu dữ liệu, và câu lệnh điều kiện có thể rất trừu tượng. Hour 4 của cuốn sách, "Understanding Python Basics", được thiết kế để giải quyết khó khăn này. Nó bắt đầu bằng hàm print(), một công cụ đơn giản để nhận phản hồi ngay lập tức từ chương trình. Từ đó, tài liệu dần giới thiệu về biến như một "vật chứa giá trị" và giải thích các quy tắc đặt tên biến. Việc hiểu rằng CoffeeCupcoffeecup là hai biến khác nhau do tính phân biệt chữ hoa-thường là một bài học quan trọng. Cách tiếp cận từng bước này giúp phá vỡ các khái niệm phức tạp thành những phần nhỏ, dễ tiêu hóa, tạo nền tảng vững chắc cho các kiến thức nâng cao sau này.

III. Hướng dẫn Python cơ bản cho Raspberry Pi từ sách Sams

Phần II của cuốn sách Sams Teach Yourself Python Programming for Raspberry Pi là nền tảng vững chắc cho bất kỳ ai muốn bắt đầu với ngôn ngữ này. Hour 4, "Understanding Python Basics", là một chương điển hình cho phương pháp tiếp cận sư phạm của tài liệu. Nó tập trung vào ba khái niệm cốt lõi: xuất dữ liệu, biến và kiểu dữ liệu, và nhập dữ liệu. Đầu tiên, việc xuất dữ liệu được thực hiện thông qua hàm print(). Đây là một hàm tích hợp sẵn, không cần bất kỳ cài đặt đặc biệt nào. Cú pháp của nó rất đơn giản: print(argument). Cuốn sách giải thích chi tiết cách sử dụng các đối số khác nhau, từ chuỗi ký tự đặt trong dấu nháy đơn hoặc nháy kép đến giá trị của biến. Một điểm quan trọng được nhấn mạnh là tính nhất quán trong việc sử dụng dấu nháy để mã nguồn dễ đọc hơn. Sách cũng giới thiệu các kỹ thuật định dạng đầu ra, chẳng hạn như sử dụng ba dấu nháy kép để tạo các chuỗi nhiều dòng hoặc sử dụng các chuỗi thoát (escape sequences) như \n để xuống dòng và \t để tạo một tab. Tiếp theo, khái niệm về biến trong Python được giới thiệu. Một biến được mô tả như một cái tên lưu trữ một giá trị để sử dụng sau này. Có những quy tắc nghiêm ngặt về việc đặt tên biến: không được bắt đầu bằng số, không chứa khoảng trắng, và không được trùng với các từ khóa của Python. Cuốn sách cung cấp một phương pháp thực tế để kiểm tra danh sách từ khóa hiện tại bằng cách sử dụng module keyword. Việc gán giá trị cho biến sử dụng toán tử bằng (=). Tài liệu cũng chỉ ra rằng một biến phải được gán giá trị trước khi nó có thể được sử dụng, nếu không sẽ gây ra lỗi NameError.

3.1. Kỹ thuật xuất dữ liệu hiệu quả với hàm print

Hàm print() là công cụ cơ bản nhất để hiển thị thông tin. Tài liệu gốc giải thích rằng nhiệm vụ của hàm này là "to output items". Nó có thể xử lý chuỗi ký tự bằng cách bao chúng trong dấu nháy đơn (') hoặc nháy kép ("). Để hiển thị một chuỗi chứa dấu nháy đơn, người lập trình nên bao toàn bộ chuỗi bằng dấu nháy kép và ngược lại. Ngoài ra, các chuỗi thoát cung cấp khả năng kiểm soát định dạng mạnh mẽ. Ví dụ, \' dùng để hiển thị một dấu nháy đơn trong một chuỗi được bao bởi dấu nháy đơn. \n chèn một ký tự xuống dòng, cho phép định dạng đầu ra trên nhiều dòng mà không cần dùng đến chuỗi ba dấu nháy. Kỹ thuật này rất quan trọng để tạo ra các thông báo rõ ràng và dễ đọc cho người dùng cuối.

3.2. Hiểu rõ các kiểu dữ liệu cơ bản str int và float

Khi một giá trị được gán cho một biến, Python sẽ tự động xác định và gán một kiểu dữ liệu cho biến đó. Sách tập trung vào các kiểu dữ liệu cơ bản. Khi một biến được gán một chuỗi ký tự trong dấu nháy, ví dụ coffee_cup = 'coffee', nó sẽ có kiểu str (string literal). Nếu nó được gán một số nguyên như cups_consumed = 3, nó sẽ có kiểu int (integer). Nếu số đó là một số thập phân, ví dụ cups_consumed = 3.5, kiểu dữ liệu sẽ là float (floating-point number). Người dùng có thể kiểm tra kiểu dữ liệu của bất kỳ biến nào bằng cách sử dụng hàm type(). Hiểu rõ về kiểu dữ liệu là rất quan trọng vì nó quyết định các thao tác có thể thực hiện trên biến đó. Một điểm đáng chú ý là hàm input() luôn trả về dữ liệu dưới dạng chuỗi (str), ngay cả khi người dùng nhập vào một con số. Do đó, cần phải chuyển đổi kiểu dữ liệu một cách tường minh bằng các hàm như int() hoặc float().

IV. Bí quyết lập trình Python nâng cao cho Raspberry Pi

Sau khi nắm vững các kiến thức cơ bản, cuốn sách Sams Teach Yourself Python Programming for Raspberry Pi dẫn dắt người đọc vào thế giới của các khái niệm lập trình nâng cao trong Phần III. Đây là giai đoạn quan trọng để chuyển từ việc viết các kịch bản đơn giản sang xây dựng các ứng dụng có cấu trúc và phức tạp hơn. Một trong những chủ đề trọng tâm là các cấu trúc dữ liệu. Python cung cấp các cấu trúc mạnh mẽ như Lists, Tuples, Dictionaries, và Sets. Lists (danh sách) là các bộ sưu tập có thứ tự và có thể thay đổi, rất hữu ích để lưu trữ một chuỗi các mục liên quan. Tuples tương tự như list nhưng là bất biến, nghĩa là không thể thay đổi sau khi tạo ra, phù hợp cho dữ liệu không đổi. Dictionaries (từ điển) cho phép lưu trữ dữ liệu dưới dạng các cặp khóa-giá trị (key-value), giúp truy xuất dữ liệu cực kỳ nhanh chóng thông qua khóa. Sets (tập hợp) là các bộ sưu tập không có thứ tự và không chứa các phần tử trùng lặp, lý tưởng cho các phép toán tập hợp như hợp, giao, và hiệu. Việc làm chủ các cấu trúc dữ liệu này cho phép người lập trình tổ chức và xử lý thông tin một cách hiệu quả. Bên cạnh đó, lập trình hướng đối tượng (OOP) là một cột mốc quan trọng khác. Cuốn sách giới thiệu các khái niệm cơ bản của OOP như lớp (class) và đối tượng (object), định nghĩa các phương thức (method) và thuộc tính (attribute). OOP giúp đóng gói dữ liệu và hành vi vào trong các đối tượng, làm cho mã nguồn trở nên dễ quản lý, tái sử dụng và mở rộng hơn. Các khái niệm kế thừa (inheritance) cũng được đề cập, cho phép một lớp con thừa hưởng các đặc điểm của lớp cha, thúc đẩy việc tái sử dụng mã và tạo ra các hệ thống phân cấp logic.

4.1. Kỹ thuật làm việc với chuỗi và biểu thức chính quy

Xử lý văn bản là một thế mạnh của Python. Hour 10, "Working with Strings", trình bày các kỹ thuật thao tác chuỗi, từ các hàm tích hợp để thay đổi chữ hoa/thường, tìm kiếm, thay thế, cho đến việc định dạng chuỗi để có đầu ra đẹp mắt. Khi các tác vụ xử lý chuỗi trở nên phức tạp hơn, biểu thức chính quy (Regular Expressions) trong Hour 16 trở thành một công cụ không thể thiếu. Biểu thức chính quy cung cấp một ngôn ngữ mini để định nghĩa các mẫu tìm kiếm, cho phép xác thực dữ liệu, trích xuất thông tin từ văn bản một cách linh hoạt và mạnh mẽ. Việc thành thạo các kỹ thuật này là cực kỳ quan trọng khi làm việc với dữ liệu văn bản, tệp tin hoặc dữ liệu từ web.

4.2. Xây dựng chương trình module hóa với hàm và lớp

Để tránh viết các đoạn mã lặp đi lặp lại và làm cho chương trình dễ bảo trì, cuốn sách nhấn mạnh tầm quan trọng của việc module hóa mã nguồn. Hour 12 giới thiệu cách tạo các hàm (functions) tùy chỉnh. Hàm là các khối mã có thể tái sử dụng, thực hiện một nhiệm vụ cụ thể. Người đọc sẽ học cách truyền giá trị vào hàm thông qua các đối số và cách hàm trả về kết quả. Tiếp đó, Hour 13 và 14 nâng tầm khái niệm này lên một bước với các module và lớp (classes). Một module là một tệp Python chứa các hàm và biến có thể được nhập (import) vào các chương trình khác. Lớp, nền tảng của lập trình hướng đối tượng, cho phép tạo ra các "bản thiết kế" cho các đối tượng, kết hợp cả dữ liệu và các hàm xử lý dữ liệu đó lại với nhau.

V. Top dự án Python thực tế với bo mạch Raspberry Pi

Lý thuyết sẽ trở nên vô nghĩa nếu không được áp dụng vào thực tế. Phần VI của cuốn sách, “Raspberry Pi Python Projects”, là phần thú vị nhất, nơi người đọc có thể kết hợp sức mạnh của lập trình Python với khả năng phần cứng của Raspberry Pi. Các dự án được thiết kế để mang lại cảm giác hoàn thành và chứng minh tiềm năng vô hạn của bo mạch nhỏ bé này. Các dự án cơ bản trong Hour 23 tập trung vào việc khai thác khả năng đa phương tiện của Raspberry Pi. Ví dụ, người học có thể viết một kịch bản Python để hiển thị hình ảnh độ nét cao trên màn hình TV hoặc tạo ra một bài thuyết trình đặc biệt, điều khiển bằng mã lệnh. Những dự án này giúp làm quen với việc sử dụng các thư viện Python để xử lý hình ảnh và âm thanh, tạo ra các ứng dụng trực quan và hấp dẫn. Tuy nhiên, điểm nổi bật thực sự nằm ở các dự án nâng cao trong Hour 24, nơi người học được giới thiệu với giao diện GPIO (General Purpose Input/Output). Đây là một dãy các chân cắm trên bo mạch Raspberry Pi cho phép nó tương tác với thế giới vật lý. Người đọc sẽ học cách viết các chương trình Python để điều khiển đầu ra GPIO, chẳng hạn như làm cho một đèn LED nhấp nháy. Ngược lại, họ cũng sẽ học cách phát hiện tín hiệu đầu vào GPIO, ví dụ như đọc trạng thái của một nút bấm. Việc kết nối Raspberry Pi với các mạch điện tử mở ra một thế giới hoàn toàn mới về khả năng sáng tạo, từ các hệ thống tự động hóa nhà cửa, robot đơn giản, đến các trạm cảm biến môi trường. Những dự án này không chỉ củng cố kỹ năng lập trình Python mà còn cung cấp kiến thức cơ bản về điện tử.

5.1. Lập trình GUI và ứng dụng đồ họa trên Raspberry Pi

Thay vì chỉ tương tác qua dòng lệnh, người dùng có thể tạo ra các ứng dụng có giao diện cửa sổ chuyên nghiệp. Hour 18, “GUI Programming”, giới thiệu cách lập trình GUI trên Raspberry Pi. Cuốn sách khám phá các gói GUI khác nhau của Python và tập trung vào tkinter, một thư viện được tích hợp sẵn. Người học sẽ tìm hiểu cách tạo một cửa sổ ứng dụng, thêm vào đó các widget (thành phần giao diện) như nút bấm, nhãn, và hộp nhập văn bản. Việc có thể xây dựng các ứng dụng đồ họa làm cho các dự án trở nên thân thiện hơn với người dùng và mở rộng phạm vi ứng dụng của Raspberry Pi từ một công cụ dòng lệnh thành một máy tính để bàn mini thực thụ.

5.2. Điều khiển phần cứng qua giao diện GPIO với Python

Hour 24, "Working with Advanced Pi/Python Projects", là chương cốt lõi cho những ai muốn thực hiện các dự án IoT hoặc điện tử. Nó giải thích chi tiết về giao diện GPIO. Người đọc sẽ học cách sử dụng thư viện RPi.GPIO của Python để tương tác với các chân này. Các ví dụ thực tế bao gồm việc viết mã để thiết lập một chân làm đầu ra (OUTPUT) và gửi tín hiệu điện để bật/tắt một đèn LED. Đồng thời, họ cũng học cách cấu hình một chân làm đầu vào (INPUT) để đọc tín hiệu từ một công tắc hoặc cảm biến. Việc nắm vững kỹ năng này là chìa khóa để biến Raspberry Pi thành bộ não của vô số các dự án phần cứng sáng tạo, từ hệ thống tưới cây tự động đến chuông cửa thông minh.

25/07/2025

Trích đoạn nội dung tài liệu

Richard Blum Christine Bresnahan Python Programming for Raspberry Pi ® Sams Teach Yourself Python Programming for Raspberry Pi® 24 Hours Editor-in-Chief Copyright © 2014 by Pearson Education, Inc. Greg Wiegand All rights reserved. No part of this book shall be reproduced, stored in a retrieval system, or Executive Editor transmitted by any means, electronic, mechanical, photocopying, recording, or otherwise, without written permission from the publisher. No patent liability is assumed with respect to the use of Rick Kughen the information contained herein.

Although every precaution has been taken in the preparation of Development this book, the publisher and author assume no responsibility for errors or omissions. Nor is any Editor liability assumed for damages resulting from the use of the information contained herein. Mark Renfrow Raspberry Pi is a trademark of the Raspberry Pi Foundation. ISBN-13: 978-0-7897-5205-5 Managing Editor ISBN-10: 0-7897-5205-0 Kristy Hart Project Editor Library of Congress Control Number: 2013946052 Andy Beaster Printed in the United States of America Copy Editor First Printing: October 2013 Kitty Wilson Trademarks All terms mentioned in this book that are known to be trademarks or service marks have been Indexer appropriately capitalized.

Sams Publishing cannot attest to the accuracy of this information. Use Tim Wright of a term in this book should not be regarded as affecting the validity of any trademark or service mark. Proofreader Sarah Kearns Warning and Disclaimer Every effort has been made to make this book as complete and as accurate as possible, but no Technical Editor warranty or fitness is implied. The information provided is on an “as is” basis.

The author(s) and Jason Foster the publisher shall have neither liability nor responsibility to any person or entity with respect to any loss or damages arising from the information contained in this book. Publishing Coordinator Bulk Sales Kristen Watterson Sams Publishing offers excellent discounts on this book when ordered in quantity for bulk pur- chases or special sales. For more information, please contact Interior Designer U. Corporate and Government Sales Mark Shirar 1-800-382-3419 corpsales@pearsontechgroup.com Cover Designer For sales outside of the U., please contact Mark Shirar International Sales Compositor international@pearsoned.com Nonie Ratcliff Contents at a Glance Introduction.

1 Part I: The Raspberry Pi Programming Environment HOUR 1 Setting Up the Raspberry Pi. 7 2 Understanding the Raspbian Linux Distribution. 27 3 Setting Up a Programming Environment. 45 Part II: Python Fundamentals HOUR 4 Understanding Python Basics.

71 5 Using Arithmetic in Your Programs. 97 6 Controlling Your Program. 115 7 Learning About Loops. 131 Part III: Advanced Python HOUR 8 Using Lists and Tuples.

155 9 Dictionaries and Sets. 175 10 Working with Strings. 239 13 Working with Modules. 257 14 Exploring the World of Object-Oriented Programming.

337 iv Sams Teach Yourself Python Programming for Raspberry Pi in 24 Hours Part IV: Graphical Programming HOUR 18 GUI Programming. 387 Part V: Business Programming HOUR 20 Using the Network. 423 21 Using Databases in Your Programming. 469 Part VI: Raspberry Pi Python Projects HOUR 23 Creating Basic Pi/Python Projects.

493 24 Working with Advanced Pi/Python Projects. 529 Part VII: Appendix A Loading the Raspbian Operating System onto an SD Card. 561 Table of Contents Introduction. 1 Programming with Python.

1 Who Should Read This Book?. 2 Conventions Used in This Book. 3 Part I: The Raspberry Pi Programming Environment HOUR 1: Setting Up the Raspberry Pi. 7 What Is a Raspberry Pi?.

7 Acquiring a Raspberry Pi. 9 What Raspberry Pi Peripherals Are Necessary?. 11 Nice Additional Peripherals. 17 Deciding How to Purchase Peripherals.

19 Getting Your Raspberry Pi Working. 19 Troubleshooting Your Raspberry Pi. 26 HOUR 2: Understanding the Raspbian Linux Distribution. 27 Learning About Linux.

27 Interacting with the Raspbian Command Line. 28 Interacting with the Raspbian GUI. 44 HOUR 3: Setting Up a Programming Environment. 45 Checking Your Python Environment.

46 Installing Python and Tools. 48 vi Sams Teach Yourself Python Programming for Raspberry Pi in 24 Hours Learning About the Python Interpreter. 50 Learning About the Python Interactive Shell. 51 Learning About the Python Development Environment Shell.

54 Creating Python Scripts. 59 Knowing Which Tool to Use and When. 67 Part II: Python Fundamentals HOUR 4: Understanding Python Basics. 71 Producing Python Script Output.

71 Formatting Scripts for Readability. 78 Understanding Python Variables. 81 Assigning Value to Python Variables. 82 Learning About Python Data Types.

86 Allowing Python Script Input. 95 HOUR 5: Using Arithmetic in Your Programs. 97 Working with Math Operators. 97 Calculating with Fractions.

103 Using Complex Number Math. 105 Getting Fancy with the math Module. 106 Using the NumPy Math Libraries. 113 HOUR 6: Controlling Your Program.

115 Working with the if Statement. 115 Grouping Multiple Statements. 117 Contents vii Adding Other Options with the else Statement. 118 Adding More Options Using the elif Statement.

120 Comparing Values in Python. 121 Checking Complex Conditions. 126 Negating a Condition Check. 129 HOUR 7: Learning About Loops.

131 Performing Repetitive Tasks. 131 Using the for Loop for Iteration. 132 Using the while Loop for Iteration. 143 Creating Nested Loops.

151 Part III: Advanced Python HOUR 8: Using Lists and Tuples. 160 Using Multidimensional Lists to Store Data. 167 Working with Lists and Tuples in Your Scripts. 168 Creating Lists by Using List Comprehensions.

170 Working with Ranges. 172 HOUR 9: Dictionaries and Sets. 175 Understanding Python Dictionary Terms. 175 Exploring Dictionary Basics.

176 Programming with Dictionaries. 182 viii Sams Teach Yourself Python Programming for Raspberry Pi in 24 Hours Understanding Python Sets. 187 Exploring Set Basics. 187 Obtaining Information from a Set.

192 Programming with Sets. 197 HOUR 10: Working with Strings. 199 The Basics of Using Strings. 199 Using Functions to Manipulate Strings.

202 Formatting Strings for Output. 215 HOUR 11: Using Files. 217 Understanding Linux File Structures. 230 Writing to a File.

238 HOUR 12: Creating Functions. 239 Utilizing Python Functions in Your Programs. 243 Passing Values to Functions. 244 Handling Variables in a Function.

250 Using Lists with Functions. 253 Using Recursion with Functions. 254 Contents ix Summary. 256 HOUR 13: Working with Modules.

257 Introducing Module Concepts. 257 Exploring Standard Modules. 259 Learning About Python Modules. 261 Creating Custom Modules.

276 HOUR 14: Exploring the World of Object-Oriented Programming. 277 Understanding the Basics of Object-Oriented Programming. 277 Defining Class Methods. 280 Sharing Your Code with Class Modules.

290 HOUR 15: Employing Inheritance. 293 Learning About the Class Problem. 293 Understanding Subclasses and Inheritance. 294 Using Inheritance in Python.

296 Using Inheritance in Python Scripts. 315 HOUR 16: Regular Expressions. 317 What Are Regular Expressions?. 317 Working with Regular Expressions in Python.

319 Defining Basic Patterns. 321 Using Advanced Regular Expressions Features. 330 x Sams Teach Yourself Python Programming for Raspberry Pi in 24 Hours Working with Regular Expressions in Your Python Scripts. 335 HOUR 17: Exception Handling.

342 Handling Multiple Exceptions. 357 Part IV: Graphical Programming HOUR 18: GUI Programming. 361 Programming for a GUI Environment. 361 Examining Python GUI Packages.

363 Using the tkinter Package. 364 Exploring the tkinter Widgets. 384 HOUR 19: Game Programming. 387 Understanding Game Programming.

387 Learning About Game Frameworks and Libraries. 388 Setting Up the PyGame Library. 394 Learning More About PyGame. 403 Dealing with PyGame Action.

418 Contents xi Part V: Business Programming HOUR 20: Using the Network. 423 Finding the Python Network Modules. 423 Working with Email Servers. 424 Working with Web Servers.

432 Linking Programs Using Socket Programming. 446 HOUR 21: Using Databases in Your Programming. 447 Working with the MySQL Database. 447 Using the PostgreSQL Database.

467 HOUR 22: Web Programming. 469 Running a Web Server on the Pi. 469 Programming with the Common Gateway Interface. 473 Expanding Your Python Webpages.

488 Part VI: Raspberry Pi Python Projects1 HOUR 23: Creating Basic Pi/Python Projects. 493 Thinking About Basic Pi/Python Projects. 493 Displaying HD Images via Python. 514 Creating a Special Presentation.

521 xii Sams Teach Yourself Python Programming for Raspberry Pi in 24 Hours Summary. 526 HOUR 24: Working with Advanced Pi/Python Projects. 529 Exploring the GPIO Interface. 529 Using the RPi.

535 Controlling GPIO Output. 536 Detecting GPIO Input. 549 Part VII: Appendix APPENDIX A: Loading the Raspbian Operating System onto an SD Card. 553 Windows: Loading Raspbian onto an SD Card.

553 Linux: Loading Raspbian onto an SD Card. 556 Mac: Loading Raspbian onto an SD Card. 561 About the Authors Richard Blum has worked in the IT industry for over 25 years as a network and systems administrator, managing Microsoft, Unix, Linux, and Novell servers for a network with more than 3,500 users. He has developed and teaches programming and Linux courses via the Internet to colleges and universities worldwide.

Rich has a master’s degree in man- agement information systems from Purdue University and is the author of several Linux books, including Linux Command Line and Shell Scripting Bible (coauthored with Christine Bresnahan, 2011, Wiley), Linux for Dummies, 9th edition (2009, Wiley), and Professional Linux Programming (coauthored with Jon Masters, 2007, Wiley). When he’s not busy being a com- puter nerd, Rich enjoys spending time with his wife, Barbara, and two daughters, Katie Jane and Jessica. Christine Bresnahan started working in the IT industry more than 25 years ago as a system administrator. Christine is currently an adjunct professor at Ivy Tech Community College in Indianapolis, Indiana, teaching Python programming, Linux system administra- tion, and Linux security classes.

Christine produces Unix/Linux educational material and is the author of Linux Bible, 8th edition (coauthored with Christopher Negus, 2012, Wiley) and Linux Command Line and Shell Scripting Bible (coauthored with Richard Blum, 2011, Wiley). She has been an enthusiastic owner of a Raspberry Pi since 2012. Dedication To the Lord God Almighty. “I am the vine, you are the branches; he who abides in Me and I in him, he bears much fruit, for apart from Me you can do nothing.” —John 15:5 Acknowledgments First, all glory, and praise go to God, who through His Son, Jesus Christ, makes all things possible and gives us the gift of eternal life.

Many thanks go to the fantastic team of people at Sams Publishing, for their outstanding work on this project. Thanks to Rick Kughen, the executive editor, for offering us the oppor- tunity to work on this book and keeping things on track. We are grateful to the development editor, Mark Renfrow, who provided diligence in making our work more presentable. Thanks to the production editor, Andy Beaster, for making sure the book was produced.

Many thanks to the copy editor, Kitty Wilson, for her endless patience and diligence in making our work readable. Also, we are indebted to our technical editor, Jason Foster, who put in many long hours double-checking all our work and keeping the book technically accurate. Thanks to Tonya of Tonya Wittig Photography, who created incredible pictures of our Raspberry Pis and was very patient in taking all the photos we wanted for the book. We would also like to thank Carole Jelen at Waterside Productions, Inc., for arranging this opportunity for us and for helping us out in our writing careers.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ