Đồ án Lập TRÌNH PYTHON TRÊN Nền WEBSITE GAMEBALL - 123doc

Tải bản đầy đủ (.docx) (72 trang)
  1. Trang chủ
  2. >>
  3. Kỹ thuật
  4. >>
  5. Điện - Điện tử - Viễn thông
Đồ án lập TRÌNH PYTHON TRÊN nền WEBSITE GAMEBALL

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (5.98 MB, 72 trang )

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘIVIỆN ĐIỆN TỬ - VIỄN THÔNGĐỒ ÁNTỐT NGHIỆP ĐẠI HỌCĐề tài:THIẾT KẾ HỆ THỐNG TRÒ CHƠI PHIÊU LƯU BẮNBÓNG BAY BẰNG NGÔN NGỮ LẬP TRÌNHPYTHON TRÊN NỀN WEBSITE GAMEBALLHà Nội, 6-2018Chương 1TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘIĐánhgiá quyểnán tốtTHÔNGnghiệpVIỆNĐIỆNTỬ -đồVIỄN(Dùng cho giảng viên hướng dẫn)Giảng viên đánh giá: ...............................................Họ và tên Sinh viên: ................................................ MSSV: ………………….Tên đồ án: ................................... ................................... ...................................………………………………………………………………………………….Chọn các mức điểm phù hợp cho sinh viên trình bày theo các tiêu chí:Rất kém (1); Kém (2); Đạt (3); Giỏi (4); Xuất sắc (5)ĐỒ ÁNCó sự kết hợp giữa lý thuyết và thực hành (20)1 Nêu rõ tính cấp thiết và quan trọng của đề tài, các vấn đề và các giả 1 2 3 4 5TỐT NGHIỆP ĐẠI HỌCthuyết (bao gồm mục đích và tính phù hợp) cũng như phạm vi ứngdụng của đồ án2 Cập nhật kết quả nghiên cứu gần đây nhất (trong nước/quốc tế)1 2 3 4 53Nêurõvàchitiếtphươngphápnghiêncứu/giảiquyếtvấnđề1 2 3 4 5Đề tài:4 Có kết quả mô phỏng/thưc nghiệm và trình bày rõ ràng kết quả đạt 1 2 3 4 5đượcTHIẾTKẾHỆTHỐNGTRÒCHƠILƯUCó khảnăngphân tích vàđánh giákết quả PHIÊU(15)5 Kế hoạch làm việc rõ ràng bao gồm mục tiêu và phương pháp thực1 2 3 4 5BẮN BÓNG BAY BẰNG NGÔN NGỮ LẬP TRÌNHhiện dựa trên kết quả nghiên cứu lý thuyết một cách có hệ thống6 Kết quả được trình bày một cách logic và dễ hiểu, tất cả kết quả đều 1 2 3 4 5PYTHON TRÊN NỀN WEBSITE GAMEBALLđược phân tích và đánh giá thỏa đáng.7 Trong phần kết luận, tác giả chỉ rõ sự khác biệt (nếu có) giữa kết quả 1 2 3 4 5đạt được và mục tiêu ban đầu đề ra đồng thời cung cấp lập luận đểđề xuất hướng giải quyết có thểHàthựchiệntrong tương lai.Nội,6-2018Kỹ năng viết (10)8 Đồ án trình bày đúng mẫu quy định với cấu trúc các chương logic và 1 2 3 4 5đẹp mắt (bảng biểu, hình ảnh rõ ràng, có tiêu đề, được đánh số thứtự và được giải thích hay đề cập đến trong đồ án, có căn lề, dấu cáchChương 17sau dấu chấm, dấu phẩy v.v), có mở đầu chương và kết luận chương,có liệt kê tài liệu tham khảo và có trích dẫn đúng quy định9 Kỹ năng viết xuất sắc (cấu trúc câu chuẩn, văn phong khoa học, lập 1 2 3 4 5luận logic và có cơ sở, từ vựng sử dụng phù hợp v.v.)Thành tựu nghiên cứu khoa học (5) (chọn 1 trong 3 trường hợp)10a Có bài báo khoa học được đăng hoặc chấp nhận đăng/đạt giảiChương 18SVNC khoa học giải 3 cấp Viện trở lên/các giải thưởng khoa học5(quốc tế/trong nước) từ giải 3 trở lên/ Có đăng ký bằng phát minhsáng chếĐược báo cáo tại hội đồng cấp Viện trong hội nghị sinh viên10bnghiên cứu khoa học nhưng không đạt giải từ giải 3 trở lên/Đạt giảikhuyến khích trong các kỳ thi quốc gia và quốc tế khác về chuyênngành như TI contest.10c Không có thành tích về nghiên cứu khoa học20Điểm tổng/50Điểm tổng quy đổi về thang 103. Nhận xét thêm của Thầy/Cô (giảng viên hướng dẫn nhận xét về thái độ vàtinh thần làm việc của sinh viên)................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................Ngày://201Người nhận xét(Ký và ghi rõ họ tên)Đánh giá quyển đồ án tốt nghiệp(Dùng cho cán bộ phản biện)Giảng viên đánh giá: ...............................................Họ và tên sinh viên: ................................................ MSSV: ………………….Tên đồ án: ................................... ................................... ...................................………………………………………………………………………………….Chọn các mức điểm phù hợp cho sinh viên trình bày theo các tiêu chí:Rất kém (1); Kém (2); Đạt (3); Giỏi (4); Xuất sắc (5)Có sự kết hợp giữa lý thuyết và thực hành (20)Nêu rõ tính cấp thiết và quan trọng của đề tài, các vấn đề và các giả1 thuyết (bao gồm mục đích và tính phù hợp) cũng như phạm vi ứng 1 2 3 4 5dụng của đồ án2 Cập nhật kết quả nghiên cứu gần đây nhất (trong nước/quốc tế)3 Nêu rõ và chi tiết phương pháp nghiên cứu/giải quyết vấn đềCó kết quả mô phỏng/thưc nghiệm và trình bày rõ ràng kết quả đạt4đượcCó khả năng phân tích và đánh giá kết quả (15)Kế hoạch làm việc rõ ràng bao gồm mục tiêu và phương pháp thực5hiện dựa trên kết quả nghiên cứu lý thuyết một cách có hệ thốngKết quả được trình bày một cách logic và dễ hiểu, tất cả kết quả đều6được phân tích và đánh giá thỏa đáng.Trong phần kết luận, tác giả chỉ rõ sự khác biệt (nếu có) giữa kết7 quả đạt được và mục tiêu ban đầu đề ra đồng thời cung cấp lập luận1 2 3 4 51 2 3 4 51 2 3 4 51 2 3 4 51 2 3 4 51 2 3 4 5để đề xuất hướng giải quyết có thể thực hiện trong tương lai.Kỹ năng viết (10)Đồ án trình bày đúng mẫu quy định với cấu trúc các chương logicvà đẹp mắt (bảng biểu, hình ảnh rõ ràng, có tiêu đề, được đánh số8 thứ tự và được giải thích hay đề cập đến trong đồ án, có căn lề, dấu 1 2 3 4 5cách sau dấu chấm, dấu phẩy v.v), có mở đầu chương và kết luận910achương, có liệt kê tài liệu tham khảo và có trích dẫn đúng quy địnhKỹ năng viết xuất sắc (cấu trúc câu chuẩn, văn phong khoa học, lập1 2 3 4 5luận logic và có cơ sở, từ vựng sử dụng phù hợp v.v.)Thành tựu nghiên cứu khoa học (5) (chọn 1 trong 3 trường hợp)Có bài báo khoa học được đăng hoặc chấp nhận đăng/đạt giải5SVNC khoa học giải 3 cấp Viện trở lên/các giải thưởng khoa học(quốc tế/trong nước) từ giải 3 trở lên/ Có đăng ký bằng phát minhsáng chếĐược báo cáo tại hội đồng cấp Viện trong hội nghị sinh viên nghiên10b10ccứu khoa học nhưng không đạt giải từ giải 3 trở lên/Đạt giải khuyếnkhích trong các kỳ thi quốc gia và quốc tế khác về chuyên ngànhnhư TI contest.Không có thành tích về nghiên cứu khoa học20Điểm tổng/50Điểm tổng quy đổi về thang 103. Nhận xét thêm của Thầy/Cô (giảng viên hướng dẫn nhận xét về thái độ vàtinh thần làm việc của sinh viên)................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................Ngày://201Người nhận xét(Ký và ghi rõ họ tên)GVHD: ThS.LỜI NÓI ĐẦUTrước hết, em xin cảm ơn tất cả các thầy cô giáo trường đại học Bách KhoaHà Nội nói chung và các thầy cô của Viện Điện tử - Viễn thông nói riêng đã tận tâmtruyền đạt kiến thức cho em trong suốt quãng thời gian em được đi học ở trường.Thầy cô đã truyền dạy lại cho em rất nhiều kiến thức nền tảng cơ sở đến những kiếnthức chuyên môn hữu ích và cả những kinh nghiệm sâu sắc ngoài đời sống để giúpđỡ cho chúng em cho cuộc sống sau này.Là sinh viên năm cuối của Viện Điện tử -Viễn thông, Đại Học Bách Khoa HàNội, em nhận thấy mình cần phải phát huy thế mạnh về lĩnh vực lập trình bởi vìhiện nay, công nghệ lập trình phát triển rất nhanh đói hỏi các kỹ sư như em cần nắmbắt nhanh với tư duy lập trình mới, nắm bắt tìm hiểu những ngôn ngữ mới, nhữngthư viện mới, framework mới xuất hiện ngày càng nhiều và có rất nhiều điểm mạnhriêng phù hợp với hầu hết các yêu cầu của các công ty, các đối tác khách hàng. Lựachọn tìm hiểu và ứng dụng trong lập trình ReactJS và Python có tính mới mẻ, tínhphổ biến, tính hiệu quả hàng đầu, em quyết định chọn đề tài Đồ án Tốt nghiệp:“THIẾT KẾ HỆ THỐNG TRÒ CHƠI PHIÊU LƯU BẮN BÓNG BAY BẰNGNGÔN NGỮ LẬP TRÌNH PYTHON TRÊN NỀN WEBSITE GAMEBALL”Em xin tỏ lòng biết ơn đến thầy giáo ThS. đã hỗ trợ cho em trong việc chọnđề tài cũng như hướng dẫn em trong suốt quá trình thực hiện đồ án tốt nghiệp. Emđã nhận được rất nhiều lời khuyên bổ ích cũng như những kiến thức về chuyên mônđáng quý hỗ trợ để em trong suốt quá trình làm đồ án. Đây là những kiến thức sẽtheo em trong suốt quá trình làm việc sau này.Em cũng xin gửi lời cảm ơn chân thành đến các anh chị trong Công ty Cổphần Đầu tư và Phát triển Koolsoft cung cấp chia sẻ kiến thức, giúp đỡ về chuyênmôn cho em làm đồ án cũng như tạo môi trường làm việc khoa học cho em rấtnhiều kinh nghiệm quý giá cho công việc tương lai của em.Trong suốt quá trình làm đồ án, dù đã rất cố gắng nhưng vì thời gian có hạnnên sản phẩm chắc chắn sẽ còn những thiếu sót. Nên em rất mong nhận được sựgóp ý của các thầy cô và các bạn, để em rút ra được những kinh nghiệm cho nhữngsản phẩm sau này của em. Em xin chân thành cảm ơn !TÓM TẮT ĐỒ ÁNTrong thời điểm Công nghệ lập trình phát triển mạnh và vô cùng nhanhchóng như hiện nay, những ngôn ngữ mới, thư viện mới, framework mới xuất hiệnSVTH: Kiều Văn Đông – MSSV: 201309471GVHD: ThS.ngày càng nhiều và có rất nhiều điểm mạnh riêng đáp ứng hầu hết yêu cầu ngàycàng cao của các công ty, các đối tác khách hàng. Cuối năm 2017 và đầu năm 2018,cả Python và React đều nằm trong mọi bảng xếp hạng xu hướng lập trình như đượcyêu thích hàng đầu, phổ biến nhất Thế giới, cũng như đáp ứng tốt nhất nhu cầutuyển dụng.. Nắm bắt những điểm mạnh vượt trội của chúng, trong Đồ án tốt nghiệpcủa mình, em đã tìm hiểu về chúng và ứng dụng trong lập trình, cụ thể: Pythontrong lập trình Game và ReactJS trong lập trình website gameballĐồ án của em bao gồm 3 chương, nội dung chính các chương như sau:Chương 1 sẽ đề cập đến khái niệm, đặc điểm và ứng dụng trong lập trình củaPython và ReactJS.Chương 2 trình bày phần triển khai ứng dụng Python để lập trình trò chơi bắn bóng”Game Ball3”Chương 3 trình bày triển khai ứng dụng ReactJS để lập trình website về trò chơi“GameBall3”.Cuối cùng là kết luận, đưa ra những mục tiêu đã và chưa làm được trong hệthống, những thuận lợi và khó khăn trong quá trình thực hiện đồ án và hướngphát triển trong tương lai.ABSTRACTUntil now programming technology has grown tremendously and rapidly,today's new languages, new libraries, and new frameworks appear to have more andmore strengths that meet most of the requirements. high of companies, customerpartners. By the end of 2017 and early 2018, both Python and React programminglanguages will be in every rankings as Top programming languages, Top of the mostpopular languages. Grasp the strengths of the above two languages, in mygraduation project, I learned about them and application in the programmer,specifically: Python in game programming and ReactJS in website programming.My project includes 3 program, primary content programs as following:Chapter 1 shows the Python and React with the specific and applications inthe programming.SVTH: Kiều Văn Đông – MSSV: 201309472GVHD: ThS.Chapter 2 shows implementation of the Python application to set the game:”GameBall3”Chapter 3 presents the ReactJS application to set the website about game“GameBall3”.Finally, the conclusion presents the advantages and difficulties in projectimplementation and development in the future.MỤC LỤCLỜI NÓI ĐẦU.........................................................................................................1TÓM TẮT ĐỒ ÁN...................................................................................................2ABSTRACT.............................................................................................................3MỤC LỤC................................................................................................................ 4DANH MỤC HÌNH VẼ...........................................................................................6DANH MỤC BẢNG BIỂU.....................................................................................7DANH SÁCH CÁC TỪ VIẾT TẮT.......................................................................8CHƯƠNG 1 TÌM HIỂU VỀ PYTHON VÀ REACT............................................91.1 TÌM HIỂU VỀ PYTHON.................................................................................91.1.1 Lịch sử phát triển.....................................................................................91.1.2 Đặc điểm chung........................................................................................91.1.3 Điểm đặc biệt trong cú pháp, quy tắc lập trình......................................101.1.4 Câu lệnh rẽ nhánh..................................................................................161.1.5 Vòng lặp.................................................................................................171.1.6 Hàm........................................................................................................181.1.7 Lớp (Class).............................................................................................191.2 TÌM HIỂU VỀ REACTJS............................................................................211.2.1 Khảo sát hiện trạng................................................................................211.2.2 Giới thiệu chung về ReactJS...................................................................211.2.3 Đặc điểm chi tiết về ReactJS..................................................................25CHƯƠNG 2 ỨNG DỤNG PYTHON LẬP TRÌNH TRÒ CHƠI GAMEBALL 3..28SVTH: Kiều Văn Đông – MSSV: 201309473GVHD: ThS.2.1 Ý tưởng..........................................................................................................282.2 Giới thiệu sơ lược về thư viện pygame..........................................................282.3 Phân tích trò chơi...........................................................................................282.3.1 Ý tưởng...................................................................................................282.3.2 Xác định rõ yêu cầu................................................................................282.3.3 Mô hình hóa chức năng..........................................................................292.3.4 Sơ đồ hoạt động của hệ thống (Activity Diagram).................................352.3.5 Mô hình cầu trúc....................................................................................362.3.6 Mô hình hóa hoạt động..........................................................................412.4 Thiết kế trò chơi............................................................................................452.4.1 Thiết kế lớp và phương thức...................................................................452.5 Thuật toán......................................................................................................462.5.1 Phát hiện va chạm..................................................................................462.5.2 Phát hiện click trúng vật thể...................................................................472.5.3 Giải quyết va chạm.................................................................................472.6 Một số hình ảnh của trò chơi.........................................................................482.7 Kết luận.........................................................................................................53CHƯƠNG 3 ỨNG DỤNG REACTJS LẬP TRÌNH WEBSITE TRÒ CHƠI“GAME BALL3”...................................................................................................543.1 Ý tưởng thiết kế website cho trò chơi “Game Ball3”....................................543.2 Lý do lựa chọn thư viện ReactJS...................................................................543.3 Mục tiêu cần đạt được...................................................................................553.4 Yêu cầu phi chức năng..................................................................................563.5 Thiết kế cấu trúc............................................................................................563.5.1 Lựa chọn cấu trúc phần mềm.................................................................563.6 Kiểm thử........................................................................................................583.7 Các bước thiết kế giao diện website..............................................................593.7.1 Thiết kế giao diện trang chủ...................................................................593.7.2 Tạo trang đăng ký, đăng nhập, đổi mật khẩu cho người chơi................623.7.3 Thống kê bảng xếp hạng điểm chơi........................................................623.7.4 Tạo tính năng bình luận cho người dùng...............................................623.7.5 Tính năng tải game cho người dùng.......................................................633.7.6 Tạo cơ sở dữ liệu cho web......................................................................63SVTH: Kiều Văn Đông – MSSV: 201309474GVHD: ThS.3.7.7 Hình ảnh hoàn thiện...............................................................................64KẾT LUẬN............................................................................................................66KẾT LUẬN CHUNG............................................................................................69TÀI LIỆU THAM KHẢO.....................................................................................70BẢNG ĐỐI CHIẾU THUẬT NGỮ VIỆT – ANH...............................................71PHỤ LỤC............................................................................................................... 72DANH MỤC HÌNH VẼHình 1.1: Virtual DOM............................................................................................23Hình 2.2: Sơ đồ hoạt động của hệ thống..................................................................35Hình 2.3: Sơ đồ lớp.................................................................................................39Hình 2.4: Sơ đồ đối tượng.......................................................................................40Hình 2.6: Sơ đồ tuần tự của hoạt động đăng nhập...................................................41Hình 2.7: Sơ đồ tuần tự của hoạt động chơi không đăng nhập................................42Hình 2.8: Sơ đồ tuần tự của hoạt động hướng dẫn chơi...........................................42Hình 2.9: Sơ đồ tuần tự của hoạt động bật/tắt âm thanh..........................................43Hình 2.0: Sơ đồ tuần tự của hoạt động xem điểm số...............................................43Hình 2.11: Sơ đồ tuần tự của hoạt động chọn màn chơi..........................................44Hình 2.12 Sơ đồ tuần tự của hoạt động chơi............................................................44Hình 2.13: Menu start game sau run code ‘main’ trong Pycharm............................48Hình 2.14: Tính năng đăng ký tạo tài khoản chơi game..........................................48Hình 2.15: Tính năng đăng nhập tài khoản chơi game............................................49Hình 2.16: Menu chọn map.....................................................................................49Hình 2.17: Map chơi 3.............................................................................................50Hình 2.18: Map chơi 7.............................................................................................50Hình 2.19: Map chơi 9.............................................................................................51Hình 2.20: Điểm của người chơi từng map.............................................................52Hình 2.21: Giao diện code Pycharm........................................................................52Hình 2.22: Giao diện màn hình run code Python.....................................................53Hình 3.1: Giao diện trang chủ hoàn thiện................................................................59Hình 3.2: Giao diện trang chủ hoàn thiện................................................................60Hình 3.3: Giao diện trang chủ hoàn thiện...............................................................60Hình 3.4: Giao diện tab tin tức thông báo trên trang chủ.........................................61Hình 3.5: Giao diện thông tin trang liên kết trang chủ hoàn thiện...........................61Hình 3.6: Giao diện footer trang chủ hoàn thiện......................................................61Hình 3.7: Giao diện modal đăng nhập & đăng ký...................................................62SVTH: Kiều Văn Đông – MSSV: 201309475GVHD: ThS.Hình 3.8: Giao diện box bình luận trên trang chủ hoàn thiện..................................63DANH MỤC BẢNG BIỂUHình 3.9: Giao diện tab tải game.............................................................................63Hình 3.10: Giao diện hoàn thiện..............................................................................64Hình 3.11: Giao diện hoàn thiện..............................................................................64Hình 3.12: Giao diện hoàn thiện..............................................................................65Bảng 1.1: Các từ khóa trong Python........................................................................10Bảng 1.2: Biểu thức toán học..................................................................................11Bảng 1.3: Danh sách các escape sequence...............................................................12Bảng 2.1 Mô tả đăng ký..........................................................................................30Bảng 2.2 Mô tả đăng nhập.......................................................................................31Bảng 2.3 Mô tả chọn màn chơi................................................................................31Bảng 2.4 Mô tả hiển thị điểm số cao.......................................................................31Bảng 2.5 Mô tả bật âm thanh...................................................................................32Bảng 2.6 Mô tả tắt âm thanh...................................................................................32Bảng 2.7 Mô tả hướng dẫn chơi..............................................................................32Bảng 2.8 Mô tả chơi................................................................................................33Bảng 2.9 Mô tả tạm dừng trò chơi...........................................................................33Bảng 2.10 Mô tả tiếp tục trò chơi............................................................................33Bảng 2.11 Mô tả chơi lại.........................................................................................34Bảng 2.12 Thẻ..........................................................Error! Bookmark not defined.Bảng 2.13 Thẻ Ball..................................................................................................36Bảng 2.14 Thẻ Bomb...............................................................................................36Bảng 2.15 Thẻ wall.................................................................................................37Bảng 2.17 Thẻ storm...............................................................................................37Bảng 2.18 Thẻ resizeObj.........................................................................................38Bảng 3.1: So sánh AngularJS và ReactJS................................................................55Bảng 3.2: Kiểm thử.................................................................................................58DANH SÁCH CÁC TỪ VIẾT TẮTSVTH: Kiều Văn Đông – MSSV: 201309476GVHD: ThS.MVCAPISPAPCUIJSCSSCLIGUIModel – View - ControlApplication Programming InterfaceSingle PagePersonal ComputerUser InterfaceJava ScriptsCascading Style SheetsCommand Line InterfaceGraphical User InterfaceChương 33TÌMHIỂU VỀPYTHONVÀREACT1.1 TÌM HIỂU VỀ PYTHON1.1.1 Lịch sử phát triểnPython được phát triển bởi Guido van Rossum vào cuối những năm 1980.Ông là người quyết định hướng phát triển của ngôn ngữ .Python 2.0 đã được phát hành 16/10/2000. Python 2.0 thêm những tính năngmới như là cycle-detecting garbage (bộ phát hiện rác theo chu kỳ), hỗ trợ unicode.Python 3.0 được phát hành năm 2008. Dòng 3.x không hoàn toàn tươngthích với dòng 2.x, cả hai được phát triển song song. Tuy nhiên cho đến nay pythonđã ngưng phát triển dòng 2.x và chỉ tập trung phát triển vào dòng 3.x. Hiện tại đã rađến phiên bản python 3.6.41.1.2 Đặc điểm chung Python là một ngôn ngữ rất dễ dàng để sử dụng được. Ở nước ta C là ngônngữ được lựa chọn để sinh viên tiếp cận với ngôn ngữ lập trình. Còn ở nhiềunước khác, rất nhiều các trường đại học trên thế giới lựa chọn Python. Code python rất dễ đọc , rõ ràng rành mạchSVTH: Kiều Văn Đông – MSSV: 201309477GVHD: ThS. Có một thư viện chuẩn rất lớn, đây là một lợi thế không hề nhỏ cho nhữnglập trình viên python. Họ có thể tận dụng nguồn thư viện này để phát triểndự án của mình mà không phải mất công xây dựng thư viện. Python là một ngôn ngữ thông dịch, thực thi code theo từng dòng nên rất dễdàng để debug. Không giống như C là ngôn ngữ hướng cấu trúc Python là một ngôn ngữhướng đối tượng. Ngoài ra Python còn hỗ trợ rất nhiều thư viện lập trình GUI (lập trình giaodiện người dùng), tương thích với các ngôn ngữ lập trình khác1.1.3 Điểm đặc biệt trong cú pháp, quy tắc lập trình1.1.3.1 BiếnBiến giúp chúng ta lưu trữ dữ liệu và cho phép lấy các dữ liệu để tính toán.Khi một biến được khai báo một vùng nhớ trong bộ nhớ RAM sẽ được dành chobiến.Không giống các ngôn ngữ khác, khi khai báo biến phải có kiểu dữ liệu đikèm thì Pyhon không cần. Nó sẽ tự xác định kiểu dữ liệu của biến. Cú pháp khởitạo:<tên biến> = <giá trị của biến>A= 3Ten = ‘Dong’Cú pháp khởi tạo nhiều biến:<tên biến thứ nhất>, <tên biến thứ hai>, ..,<tên tên biến thứ n> = , <giá trị biến thứ hai>, .., <giá trị biến thứ n>a,b,c,d,e = 1,2,3,4,5*Một chú ý khi đặt tên biến: Không được trùng với từu khóa .Dưới đây là danh sáchtừ khóa của PythonBảng 1.1: Các từ khóa trong PythonanddelfromnotwhileaselseglobalorwithassertelififpassyieldbreakexceptimportprintSVTH: Kiều Văn Đông – MSSV: 20130947classexecinraisecontinuefinallyisreturndefforlambdatry8GVHD: ThS.1.1.3.2 Kiểu dữ liệuNhư đã nói ở trên, khi khởi tạo giá trị của biến không cần phải đi kèm với kiểudữ liệu. Cũng giống như các ngôn ngữ khác python hỗ trợ kiểu dữ liệu số nguyên,số thực,số phức,phân số,kiểu ký tự,kiểu chuỗi. Ngoài ra Python còn định nghĩathêm các kiểu dữ liệu riêng biệt của chính mình: list, tuple, set, dic.1.1.3.3 Số nguyênSố nguyên bao gồm các số nguyên dương, số 0 và các số nguyên âm. TrongPython, kiểu dữ liệu số nguyên cũng không có gì khác biệt: byte, int, long inta = -30Một điểm đáng chú ý trong Python 3.X đó là kiểu dữ liệu số nguyên là vôhạn. Ta có thể tính toán với những số cực kỳ lớn mà những ngôn ngữ khác khôngthể.1.1.3.3.1 Số thựcVề kiểu dữ liệu số thực, thì đây là tập hợp các số nguyên và số thập phân.Kiểu dữ liệu: float, double,…b = 3.14c = -2.84d = 6,6666666666666666666666661.1.3.3.2Số phứcSố phức gồm 2 thành phần : phần thực và phần ảo. Cú pháp tạo một số phức:complex(<Phần thực>,<Phần ảo>)Hoặc có thể đơn giản là :<tên_biến> = <Phần thực> + <Phần ảo>jCả 2 cho ra kết quả tương đương.complex(3,4)>>> 3+4j3+4j>>> 3+4jCác toán tử cơ bản với kiểu dữ liệu số trong PythonDưới đây là một số biểu thức toán học của kiểu dữ liệu số trong PythonSVTH: Kiều Văn Đông – MSSV: 201309479GVHD: ThS.Bảng 1.2: Biểu thức toán họcBiểu thứcX+YX-YX*YX/YX // YX%YX ** YMô tảTổng của X và YHiệu của X với YTích của X với YThương của X với Y(kết quả là 1 số thực)Thương nguyên của X với YDư của X chia YLũy thừ của X với số mũ là Y1.1.3.4 Kiểu dữ liệu chuỗiChuỗi hay string là tập hợp các ký tự. Trong python rất linh hoạt, chuỗi cóthể đặt trong cặp dấu ‘ ’ hoặc “ ” hoặc ‘‘‘ ’’’. Nhưng phổ biến nhất là ‘ ’và “ ”. Cúpháp khai báo 1 chuỗi:<tên biến>=’<giá trị chuỗi>’Ten = ‘Dong’Khi làm việc với chuỗi ta phải chú ý đến một thứ rất quan trọng đó là EscapeSequence là một chuỗi (chính xác là kí tự). Bắt đầu với một dấu \. Python có rấtnhiều các escape sequence.Bảng 1.3: Danh sách các escape sequenceTênKí hiệuGiải thíchAlert\aPhát ra tiếng bípBackspace\bĐưa con trỏ về một khoảng trắngNewline\nĐưa con trỏ xuống dòng tiếp theoHorizontal tab\tIn ra một tabSingle quote\’In ra kí tự ‘Double quote\’’In ra kí tự “Blackslash\\In ra kí tự \Các escape sequence có thể làm chuỗi không giống như mong muốn.Ví dụ: ta có một chuỗi ‘co\n me\o tre\o cay cau’Kết quả khi in chuỗi ra màn hình:come\o tre\o cay cauVì vậy lúc này Python hỗ trợ một chuỗi gọi là chuỗi trần. Cú pháp như sau:r’<chuỗi>’r‘co\n me\o tre\o cay cau’SVTH: Kiều Văn Đông – MSSV: 2013094710GVHD: ThS.Kết quả khi in chuỗi ra màn hình:co\n me\o tre\o cay cauSự thật thì, chuỗi trần không phải bỏ qua các Escape Sequence, mà nó sẽ giúpchúng ta sửa những Escape Sequence đó bằng các thêm \ trước các EscapeSequence.Có một chú ý khi làm việc với chuỗi là ta không thể thay đổi nội dung của chuỗinhưvới các ngôn ngữ như Pascal, C, C++ sử dụng phương pháp Indexing.1.1.3.5 Kiểu dữ liệu ListList là một sự thay thế cho mảng ở các ngôn ngữ khác, hơn nữa list linh hoạthơn mảng rất nhiều. Với một mảng các giá trị trong mảng phải cú cùng kiểu dữ liệunhưng list thì khác, trong một list có thể có rất nhiều kiểu dữ liệu khác nhau. Cácđặc điểm của list: Giới hạn trong cặp [ ], các phần tử nằm trong [ ] là phần tử của list. Các phần tử phân cách nhau bởi dấu phẩy. List có thể chứa mọi giá trị kể cả chính nó.Cách khởi tạo List:Cú pháp:[<giá trị thứ nhất>, <giá trị thứ hai>, .., <giá trị thứ n – 1>, <giá trị thứ n>]Ví dụ:lst = [1,2,5,"Dong"]IndexingNhư đã đề cập, List với là sụ thay thế cho mảng nên ta có thể truy xuất từngphần tử của list.lst[0]>>>1lst[3]>>>DongThay đổi nội dung Listlst = [1, ‘two’, 3]lst[1] = 2SVTH: Kiều Văn Đông – MSSV: 2013094711GVHD: ThS.>>>[1, 2, 3]1.1.3.6 Kiểu dữ liệu TupleTuple về cũng là một thay thế cho mảng giống như list. Các đặc điểm của tuple: Giới hạn trong cặp ( ), các phần tử nằm trong ( ) là phần tử của tuple. Các phần tử của Tuple được phân cách nhau ra bởi dấu phẩy. Tuple có khả năng chứa mọi giá trị, cả chính nó.Cách khởi tạo TupleCú pháp:(<giá trị thứ nhất>, <giá trị thứ hai>, .., <giá trị thứ n – 1>, <giá trị thứ n>)Ví dụ:tup = (1, 2, 3, 5,’anh co danh roi nhip nao khong’)IndexingIndexing và cắt Tuple hoàn toàn tương tự như với kiểu dữ liệu List.Thay đổi nội dung Tuple trong PythonViệc bạn muốn thay đổi nội dung của tuple trên lí thuyết là không thể.1.1.3.7 Kiểu dữ liệu SetSet cũng là một tập hợp chứa các phần tử như list và tuple. Set gồm các đặc điểmsau: Được giới hạn bởi cặp ngoặc {}, tất cả những gì nằm trong đó là những phầntử của Set. Các phần tử của Set được phân cách nhau ra bởi dấu phẩy. Set không chứa nhiều hơn 1 phần tử trùng lặp. Không thể chứa một set trong một set.Cách khởi tạo SetCú pháp:{<giá trị thứ nhất>, <giá trị thứ hai>, .., <giá trị thứ n – 1>, <giá trị thứ n>}set_ = {1, 2, 3, 4}set_1 = {1, 1, 1} # các giá trị trùng lặp bị loại bỏ>>>{1}IndexingSVTH: Kiều Văn Đông – MSSV: 2013094712GVHD: ThS.Set không quan tâm đến vị trí của phần tử nằm trong set. Nên việc indexinglà không thể1.1.3.8 Kiểu dữ liệu DictDict(Dictionary) cũng là một tập hợp chứa các phần tử như LIST, TUPLE.Điều khác biệt là List, Tuple có các index để phân biệt các phần tử thì Dict dùng cáckey để phân biệt. Một Dict gồm các yếu tố sau: Được giới hạn bởi cặp ngoặc nhọn {}, tất cả những gì nằm trong đó là nhữngphần tử của Dict. Các phần tử của Dict được phân cách nhau ra bởi dấu phẩy. Các phần tử của Dict phải là một cặp key-value Cặp key-value của phần tử trong Dict được phân cách bởi dấu hai chấmCách khởi tạo DictCú pháp:{<key_1: value_1>, <key_2: value_2>, .., <key_n: value_n>}dic = {‘ten’: ‘Dong’, ‘maso’: 47}Thay đổi nội dung DictVí dụ:dic ={‘ten’: ‘Dong’, ‘maso’: 47}dic[‘ten’] = ‘Van’Kết quả{‘ten’: ‘Van’, ‘maso’: 47}Thêm thủ công một phần tử vào dictCách này khá giống với cách ta thay đổi nội dung của Dict.Ví dụ:dic ={‘ten’: ‘Dong’, ‘maso’: 47}dic[‘tuoi’] = 23Kết quả{‘name’: ‘Dong’, ‘member’: 47, ‘tuoi’: 23}SVTH: Kiều Văn Đông – MSSV: 2013094713GVHD: ThS.1.1.4 Câu lệnh rẽ nhánh1.1.4.1 Câu lệnh if-elseGiống như các ngôn ngữ khác Python hỗ trợ câu lệnh if –else. Nếu thỏa mãnđiều kiện trong mênh đề if thì sẽ thực thi câu lệnh bên trong mệnh đề và ngược lạithì thực hiện câu lênh bên trong mệnh đề else.Cú pháp của câu lệnh if-else:if <điều kiện>:<câu lệnh>else:<câu lệnh>Ví dụa = 100if (a == 100):print('Dong')else:print('Sai')Kết quảDongNếu như trong trường hợp chúng ta không cần thực thi điều gì khi điều kiệnđó không đúng thì chúng ta có thể bỏ mệnh đề else cho gọn code.1.1.4.2 Câu lệnh if-elif-else.Không phải lúc nào chúng ta cũng có 2 trường hợp vì vậy python hỗ trợ thêmmệnh đề elif để sử dụng trong trường hợp có nhiều điều kiện. Cú pháp như sau:if <điều kiện1>:<câu lệnh>elif <điều kiện2>:<câu lệnh>elif <điều kiện3>:<câu lệnh>else:<câu lệnh>SVTH: Kiều Văn Đông – MSSV: 2013094714GVHD: ThS.Trong đó, thì sau các mệnh đề if và elif sẽ tồn tại các điều kiện tương ứng, vànếu như các điều kiện đó đúng thì câu lệnh ở trong mệnh đề đó sẽ được thực hiện.Ví dụa=9if a >= 4 and a = 0 and a

Từ khóa » đồ án Python