Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 29 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
29
Dung lượng
556,29 KB
Nội dung
ĐẠI HỌC QUỐC GIA TP.HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA ĐIỆN – ĐIỆN TỬ BỘ MÔN ĐIỆN TỬ -o0o - BÁO CÁO THỰC TẬP TỐT NGHIỆP Đề Tài: Tìm Hiểu Lập Trình Python Và PyOpenGl GVHD: Th.S Hồ Trung Mỹ Thành viên nhóm 12: Lê Nguyễn Minh Long – 1712012 Lê Long Hồ – 1711447 TP HỒ CHÍ MINH, THÁNG 09 NĂM 2020 LỜI CẢM ƠN GVHD: Th.S Hồ Trung Mỹ LỜI CẢM ƠN Chúng em xin cảm ơn chân thành tới thầy cô Khoa Điện- Điện Tử Trường ĐH Bách Khoa- Đại Học Quốc Gia TP.HCM, đặc biệt thầy Hồ Trung Mỹ tận tình hướng dẫn, hỗ trợ chúng em suốt thời gian thực tập trình làm báo cáo thực tập tốt nghiệp Trong thời gian thực tập chúng em truyền đạt kinh nghiệm quý báu để giúp chúng em công việc sau này, chúng em học thêm kiến thức kinh nghiệm thực tế có điều kiện phát huy kiến thức chuyên môn học trường thầy tận tình giảng dạy Với kiến thức hạn chế nên báo cáo TTTN khơng thể tránh khỏi thiếu xót mong thông cảm quý thầy cô Chúng em xin chân thành cảm ơn! Tp Hồ Chí Minh, ngày 08 tháng 09 năm 2020 Sinh viên i LỜI CẢM ƠN GVHD: Th.S Hồ Trung Mỹ MỤC LỤC LỜI MỞ ĐẦU .3 TỔNG QUAN VỀ NGÔN NGỮ PYTHON 1.1 1.1.1 Đặc điểm .4 1.1.2 Ưu điểm 1.1.3 Nhược điểm 1.2 Cú pháp ngôn ngữ 1.2.1 Biến số toán tử 1.2.2 Kiểu liệu 1.2.3 Cấu trúc lặp rẽ nhánh .7 1.2.4 Hàm Class 1.3 Phân chia module 1.3.1 Các loại module .9 1.3.2 Cách sử dụng module 1.4 Giới thiệu Python Xử lý tập tin 10 1.4.1 Mở file 10 1.4.2 Đọc file 11 1.4.3 Ghi vào file 11 1.4.4 Đóng file 11 1.4.5 Đổi tên/ xóa file 11 GIỚI THIỆU VỀ PYOPENGL 12 2.1 Tìm hiểu OpenGl 12 2.2 Cấu trúc tập lệnh 13 2.3 Ứng dụng OpenGL .14 2.3.1 Vẽ đối tượng hình học 14 ii LỜI CẢM ƠN GVHD: Th.S Hồ Trung Mỹ 2.3.2 Thao tác ModelView 16 2.3.3 Thao tác Projection 17 2.3.4 Thao tác Viewport .18 2.3.5 Thiết lập mơ hình shading 19 2.3.6 Tương tác với người dùng 20 MỘT SỐ DEMO CƠ BẢN 23 3.1 Vẽ khối lập phương xoay 23 3.2 Tương tác với chuột bàn phím .24 3.3 Thao tác với Model View thư viện Random 25 3.4 Tạo khối cầu mặt lưới từ hai mặt phẳng cắt 26 3.5 Xây dựng mô hình Trái Đất quay xung quanh Mặt Trời .26 3.6 Thiết lập mơ hình Smooth-Shading cho tam giác 26 ĐỀ XUẤT CÁC ĐỀ TÀI LIÊN QUAN .26 TÀI LIỆU THAM KHẢO 26 PHỤ LỤC 26 iii LỜI CẢM ƠN GVHD: Th.S Hồ Trung Mỹ LỜI MỞ ĐẦU Thật rõ ràng để nhận thấy hiển thị thông tin với ký hiệu, chữ cái, chữ số khơng thể hấp dẫn dễ hiểu có thêm biểu diễn Kỹ thuật đồ hoạ Đây công cụ thiếu ngành khoa học kỹ thuật, giáo dục, nghệ thuật, giải trí, quảng cáo…(để diễn đạt máy móc thiết bị, kiến trúc, cấu trúc thể, thơng tin thiên văn địa lý, hình ảnh minh hoạ ) Cùng với phát triển tin học, kỹ thuật đồ họa máy vi tính, ngày trở nên tinh xảo Giao diện phần mềm ngày trở nên thân thiện, đẹp mắt nhờ thể đồ họa Sự hỗ trợ tin học cho ngành khác trở nên đắc lực nhờ khả đồ họa vi tính Ngơn ngữ lập trình (Programming language) là dạng ngơn ngữ máy tính sử dụng để phát triển chương trình phần mềm, tập lệnh chuẩn hóa theo hệ thống quy tắc riêng để máy tính thực thi Hiện có nhiều ngơn ngữ lập trình sử dụng JavaScript, Java, C/C++,Python,…Python có cú pháp đơn giản, tốc độ xử lý nhanh, mượt, không kén người sử dụng, phù hợp với người học lập trình game và ứng dụng Một điều đáng kinh ngạc Python tốc độ phát triển nhanh Trong thành công kỹ thuật đồ họa ngày không nói đến phát triển vượt bậc tốc độ phần cứng lẫn hệ điều hành Nhưng thân kỹ thuật đồ họa có bước tiến nhảy vọt từ phép tính tốn học phức tạp đến thư viện đồ họa tạo sẳn Các thư viện cho phép giảm nhẹ thời gian công sức người lập trình; Bởi với chúng, để có “tác phẩm”đồ họa khơng địi hỏi phải có kiến thức hùng hậu đường cong Bezier, B-spline, hình học, tạo bóng…, mà ứng dụng hàm tạo sẵn Một thư viện OpenGL, xem tiêu chuẩn thiết kế công nghiệp cho đồ họa ba chiều Mục tiêu tiểu luận làtìm hiểu thư viện đồ họa OpenGL đồ họa ba chiều, đồng thời cố gắng đưa ứng dụng OpenGL việc minh họa giải thuật đồ họa ba chiều cách đơn giản dễ tiếp cận iv LỜI CẢM ƠN GVHD: Th.S Hồ Trung Mỹ TỔNG QUAN VỀ NGÔN NGỮ PYTHON 1.1 Giới thiệu Python 1.1.1 Đặc điểm Python ngơn ngữ lập trình bậc cao cho mục đích lập trình đa năng, Guido van Rossum tạo lần đầu mắt vào năm 1991 tại Viện toán-tin Hà Lan Python kế thừa từ nhiều ngôn ngữ ABC, Module-3, C, C++, Unix Shell,… Đến cộng đồng người sử dụng ngôn ngữ đông, so sánh từ bảng xếp hạng ngôn ngữ năm 2016 Python đứng thứ top 10 ngơn ngữ lập trình phổ biến Có thể thấy nhiều ví dụ từ trị chơi điện tử đơn giản, thuật tốn tìm kiếm phức tạp, Python trở thành lựa chọn hoàn hảo cho lập trình viên Đặc biệt với bùng nổ cơng nghệ AI – trí tuệ nhân tạo năm gần đây, tên Python liên tục nhắc đến công cụ hữu ích lĩnh vực công nghệ thông tin 1.1.2 Ưu điểm - Python ngôn ngữ bậc cao dễ dàng sử dụng Python có số lượng từ khóa hơn, cấu trúc Python đơn giản cú pháp Python định nghĩa rõ ràng Tất điều Python thực trở thành ngơn ngữ thân thiện với lập trình viên - Phần code Python định nghĩa rõ ràng rành mạch - Python có thư viện chuẩn rộng lớn Thư viện dễ dàng tương thích tích hợp với UNIX, Windows, Macintosh - Python ngơn ngữ thơng dịch Trình thơng dịch thực thi code theo dòng, điều giúp cho trình debug trở nên dễ dàng yếu tố quan trọng giúp Python thu hút nhiều người học trở nên phổ biến - Python ngôn ngữ lập trình hướng đối tượng Ngồi ra, Python cịn hỗ trợ phương thức lập trình theo hàm theo cấu trúc v LỜI CẢM ƠN GVHD: Th.S Hồ Trung Mỹ - Ngồi đặc điểm trên, Python cịn nhiều đặc điểm khác hỗ trợ lập trình GUI, mã nguồn mở, tích hợp với ngơn ngữ lập trình khác, … 1.1.3 Nhược điểm - Tốc độ chậm so với ngôn ngữ C/C++ hay Java - Không phải ngôn ngữ tốt dành cho tảng mobile - Python lựa chọn tốt cho toán cần tối ưu nhớ - Python có nhiều giới hạn làm việc với sở liệu phức tạp 1.2 Cú pháp ngôn ngữ 1.2.1 Biến số toán tử Ta khai báo biến cách gán giá trị cụ thể cho Biến tự động giải phóng khỏi phạm vi chương trình sử dụng Một biến gán nhiều loại giá trị số, chuỗi, ký tự >>>a = >>>a = 'Hello World' >>>a = [1, 2, 3] >>>a = [1.2, 'Hello', 'W', 2] Cũng khai báo nhiều giá trị cho nhiều biến dòng chuyển đổi hai giá trị dễ dàng: >>> a , b = 45, 54 >>> a, b = b , a >>> a 54 vi LỜI CẢM ƠN GVHD: Th.S Hồ Trung Mỹ >>> b 45 1.2.2 Kiểu liệu Kiểu số 1234585396326 (số nguyên dài vô hạn) -86.12 7.84E-04 3+ 8j (số phức) Kiểu chuỗi (string): Đặt cặp dấu ‘ “ "Hello" "It's me" '"OK"-he replied' Kiểu (tuple): cấu trúc mảng tuple khai báo khơng thay đổi giá trị (immutable) mytuple = ('x' , 'y' , 'z') (1, 2.0, 3) (1,) ("Hello",1,()) Kiểu danh sách (list): cấu trúc mảng phần tử có index có thứ tự numbers = [1, 2, 3, 4, 5] names = ['Marry' , 'Peter'] Kiểu từ điển (dictionary):là cấu trúc mảng, phần tử bao gồm key value {"Vietnam":"Hanoi", "Netherlands":"Amsterdam","France":"Paris"} vii LỜI CẢM ƠN GVHD: Th.S Hồ Trung Mỹ Chú thích: giúp cho lập trình viên dễ dàng cải tiến mã nguồn, ghi chức đoạn code thực # dịng thích 1.2.3 Cấu trúc lặp rẽ nhánh a) If…elif…else if : elif : elif max: max = x return max data = [1, 5, 1, 12,3, 4, 6] print “Data:”, data print “Maximum:”, max(data) Kết quả: Data: [1, 5, 1, 12,3, 4, 6] Maximum: 12 Khai báo Class theo cú pháp sau: class ([parentclass]): def init (self): ix LỜI CẢM ƠN GVHD: Th.S Hồ Trung Mỹ Tính toán màu sắc đối tượng (màu sắc đối tượng quy định điều kiện chiếu sáng, texture đối tượng, mơ hình xây dựng kết hợp yếu tố đó) Biến đổi mơ tả tốn học đối tượng thông tin màu sắc thành pixel hình (quá trình gọi resterization) 2.2 Cấu trúc tập lệnh OpenGL sử dụng tiền tố gl từ viết hoa chữ đầu để tạo nên tên lệnh theo hình thức gl{tên hàm}[{số tham số}{loại tham số}] Ví dụ: glClearColor(), glColor3f() Tương tự, OpenGL đặt tên số bắt đầu GL_ từ tiếp sau viết hoa cách dấu ‘_’ Ví dụ: GL_COLOR_BUFFER_BIT Bên cạnh đó, với số lệnh, để ám số lượng kiểu tham số truyền, số hậu tố sử dụng bảng sau: xiv LỜI CẢM ƠN GVHD: Th.S Hồ Trung Mỹ Ví dụ: glVertex2i(1,3) tương ứng với xác định điểm (x,y) với x, y nguyên (integer) Tuy nhiên có thứ mà OpenGL khơng hỗ trợ sẵn Bản thân OpenGL khơng có sẵn hàm nhập xuất hay thao tác window OpenGL khơng có sẵn hàm cấp cao để xây dựng mô hình đối tượng, thay vào đó,người dùng phải tự xây dựng từ thành phần hình học Để khắc phục nhược điểm OpenGL, GLUT tạo với với nhiều hàm hỗ trợ Quản lý window Display callback Nhập xuất (bàn phím, chuột, ) Vẽ số đối tượng 3D phức tạp (mặt cầu, khối hộp, ) Tên hàm GLUT có tiền tố glut 2.3 Ứng dụng OpenGL 2.3.1 Vẽ đối tượng hình học Trong OpenGL có loại buffer phổ biến nhất, lần vẽ, nên xóa buffer glClearColor(0.0, 0.0, 0.0, 0.0); /* xác định màu để xóa color buffer (màu đen) */ glClearDepth(1.0); /* xác định giá trị để xóa depth buffer */ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); /* xóa color buffer depth buffer */ Color buffer: buffer chứa màu pixel cần thể Depth buffer (hay gọi z-buffer): buffer chứa chiều sâu pixel, đo khoảng cách đến mắt Mục đích buffer loại bỏ phần đối tượng nằm sau đối tượng khác Khi vẽ đối tượng, OpenGL tự động sử dụng màu xác định trước Do đó, để vẽ đối tượng với màu sắc theo ý mình, cần phải thiết lập lại màu vẽ sau: glColor3f(0.0, 0.0, 0.0); // black xv LỜI CẢM ƠN GVHD: Th.S Hồ Trung Mỹ glColor3f(1.0, 0.0, 0.0); // red glColor3f(0.0, 1.0, 0.0); // green glColor3f(1.0, 1.0, 0.0); // yellow glColor3f(0.0, 0.0, 1.0); // blue glColor3f(1.0, 0.0, 1.0); // magenta glColor3f(0.0, 1.0, 1.0); // cyan glColor3f(1.0, 1.0, 1.0); // white OpenGL khơng có sẵn hàm để xây dựng đối tượng hình học phức tạp, người dùng phải tự xây dựng chúng từ đối tượng hình học mà OpenGL hỗ trợ: điểm, đoạn thẳng, đa giác Khi khai báo điểm ta dùng hàm glVertexXY với X số chiều (2, 3, 4), Y kiểu liệu Việc xây dựng đối tượng hình học khác thực sau glBegin(mode); /* xác định tọa độ màu sắc điểm hình */ glEnd(); mode giá trị sau: xvi LỜI CẢM ƠN GVHD: Th.S Hồ Trung Mỹ Một số tính chất điểm đoạn cần quan tâm thiết lập qua hàm: Kích thước điểm: void glPointSize(GLfloat size) Độ rộng đoạn thẳng: void glLineWidth(GLfloat width) Kiểu vẽ 2.3.2 Thao tác ModelView Trước thực thao tác ModelView, cần gọi hàm glMatrixMode(GL_MODELVIEW); OpenGL hỗ trợ sẵn hàm biến đổi affine sau Tịnh tiến: void glTranslate{fd}(TYPEx, TYPE y, TYPEz); Quay quanh trục nối gốc tọa độ với điểm (x,y,z) void glRotate{fd}(TYPE angle, TYPE x, TYPE y, TYPE z); Tỉ lệ (tâm tỉ lệ gốc tọa độ) xvii LỜI CẢM ƠN GVHD: Th.S Hồ Trung Mỹ void glScale{fd}(TYPEx, TYPE y, TYPEz); Ví dụ: thực phép quay quanh trục z góc α tịnh tiến đoạn theo vector(trx, try, trz), bước thực là: Giống chụp hình, thiết lập view thiết lập vị trí góc, hướng camera GLUT cómột hàm giúp thiết lập view cách nhanh chóng void gluLookAt(GLdouble eyex, GLdouble eyey, GLdouble eyez, Gldoublecenterx, GLdouble centery, GLdouble centerz, GLdouble upx, GLdoubleupy, GLdouble upz) (eyex, eyey, eyez) vị trí đặt view, (centerx, centery, centerz) điểm nằm đường thẳng xuất phát từ tâm view hướng rangoài, (upx, upy, upz) vector hướng lên view 2.3.3 Thao tác Projection Trước thực thao tác chiếu, gọi hàm xviii LỜI CẢM ƠN GVHD: Th.S Hồ Trung Mỹ glMatrixMode(GL_PROJECTION); glLoadIdentity(); Chiếu phối cảnh (Perspective Projection) Đặc điểm phép chiếu đối tượng lùi xa trơng nhỏ Để thiết lập phép chiếu này, OpenGL có hàm void glFrustum(GLdouble left, GLdouble right, GLdouble bottom,GLdoubletop, GLdouble near, GLdouble far); Chiếu trực giao (Orthogonal Projection) Trong phép chiếu này, khoảng cách vật tới camera không ảnh hưởng tới độ lớn vật hiển thị Để thiết lập phép chiếu này, OpenGL có hàm void glOrtho(GLdouble left, GLdouble right, GLdouble bottom, GLdoubletop, GLdouble near, GLdouble far); xix LỜI CẢM ƠN GVHD: Th.S Hồ Trung Mỹ 2.3.4 Thao tác Viewport OpenGL có hàm để thiết lập viewport void glViewport(GLint x, GLint y, GLsizei width, GLsizei height); (x,y) vị trí điểm trái-trên cửa sổ vẽ, width, height chiều rộng cao củaviewport Mặc định (x,y,width,height) = (0,0,winWidth, winHeight) (chiếm toàn cửa sổ) 2.3.5 Thiết lập mơ hình shading OpenGL hỗ trợ chế độ màu: RGBA Color-Index Trong chế độ màu RGBA, RGB thể màu Red, Green, Blue Còn thành phần A (tứcalpha) không thực ảnh hưởng trực tiếp lên màu pixel, người ta dùng thành phần A đểxác định độ suốt hay thơng số cần quan tâm xx LỜI CẢM ƠN GVHD: Th.S Hồ Trung Mỹ Để thiết lập màu vẽ hành chế độ RGBA, sử dụng hàm sau void glColor3{b s i f d ub us ui} (TYPEr, TYPEg, TYPEb); void glColor4{b s i f d ub us ui} (TYPEr, TYPEg, TYPEb, TYPEa); void glColor3{b s i f d ub us ui}v (const TYPE*v); void glColor4{b s i f d ub us ui}v (const TYPE*v); đó, tham số số thực thành phần màu tương ứng nằm đoạn [0,1],ngược lại chuyển đổi bảng sau Một đoạn thẳng tơ màu đồng (chế độ flat) hay nhiều màu sắc khácnhau (chế độ smooth) Để thiết lập chế độ shading phù hợp, sử dụng hàm sau: void glShadeModel (GLenum mode); mode chế độ mong muốn, nhận giá trị GL_SMOOTH GL_FLAT 2.3.6 Tương tác với người dùng xxi LỜI CẢM ƠN GVHD: Th.S Hồ Trung Mỹ Việc cho phép người dùng chọn đối tượng cách click chuột cửa sổ yêu cầu thiếtyếu ứng dụng tương tác Để thực chức vậy, trongOpenGL có sẵn chế độ Selection.Có công đoạn lớn cần phải làm Công đoạn thao tác để biến đổi đối tượng không gian pixel sau đóhiển thị lên hình Cơng đoạn 2, gần ngược lại, chương trình xác định xem pixel màngười dùng tương tác (ví dụ nhấn chuột trái) thuộc đối tượng Để chuyển đổi qua lại công đoạn (hay chế độ), dùng hàm GLint glRenderMode(GLenum mode); mode GL_RENDER GL_SELECT Trước tiên cần kích hoạt chế độ selection glRenderMode(GL_SELECT) Việc xác định vùng chọn tương tự việc xác định khối nhìn, tức thao tác trênphép chiếu Thao tác tổng quát sau glMatrixMode (GL_PROJECTION); glPushMatrix (); xxii LỜI CẢM ƠN GVHD: Th.S Hồ Trung Mỹ glLoadIdentity (); gluPickMatrix ( ); gluPerspective, glOrtho, gluOrtho2D, or glFrustum /* */ glPopMatrix(); Trong đó, void gluPickMatrix(GLdouble x, GLdouble y, GLdouble width, GLdoubleheight, GLint viewport[4]); hàm xác định vùng quan tâm viewport (ví dụ xung quanh vùng click chuột) với: (x, y, width, height) tham số xác định quan tâm viewport viewport[4] mảng phần tử chứa tham số viewport, dùng hàmglGetIntegerv(GL_VIEWPORT, GLint *viewport) để lấy OpenGL có stack giúp thao tác tên đối tượng, với hàm void glInitNames(void) khởi tạo stack (stack lúc rỗng) void glPushName(GLuint name) đặt tên đối tượng cần xét vào stack void glPopName(void) lấy tên nằm đỉnh stack khỏi stack void glLoadName(GLuint name) thay nội dung đỉnh stack Việc sử dụng stack giúp cho mục đích thứ – xây dựng tên mang tính phân cấp Mỗi lầnthực thi glPushName(name) glLoadName(name) chương trình hiểu đối tượngđược vẽ dòng lệnh sau có tên name chúng thành phần phận đối tượng cótên đặt đỉnh stack Để truy vấn xem đối tượng chọn, OpenGL xử lý sau trước tiên đánh dấu đối tượng có vùng giao với vùng chọn, sau đó, với đối tượng có vùng giao, tên giá trị z nhỏ nhất, z lớn xxiii LỜI CẢM ƠN GVHD: Th.S Hồ Trung Mỹ vùng giao lưu hit records truy vấn đối tượng chọn thực hit records Để khởi tạo hit records, cần phải gọi hàm void glSelectBuffer(GLsizei size, GLuint *buffer) buffer mảng chứa hit records Chú ý: thủ thục phải gọi trước chuyển sang chế độ GL_SELECT MỘT SỐ DEMO CƠ BẢN 3.1 Vẽ khối lập phương xoay Example1 xxiv LỜI CẢM ƠN GVHD: Th.S Hồ Trung Mỹ 3.2 Tương tác với chuột bàn phím Example2 xxv LỜI CẢM ƠN GVHD: Th.S Hồ Trung Mỹ 3.3 Thao tác với Model View thư viện Random Example3 xxvi LỜI CẢM ƠN GVHD: Th.S Hồ Trung Mỹ xxvii LỜI CẢM ƠN GVHD: Th.S Hồ Trung Mỹ ĐỀ XUẤT CÁC ĐỀ TÀI LIÊN QUAN OpenGL nơi gần CPU (cái mà - developer - chạy ứng dụng ngơn ngữ lập trình) GPU (chip xử lý đồ họa) Vì OpenGL cần phải hỗ trợ nhà sản xuất card đồ họa (VD: NVidia) cài đặt đối tác phát triển hệ điều hành (giống Apple hay Microsoft) cuối OpenGL cho API thống để làm việc Ngày nay, ta thấy logo OpenGL (hoặc OpenGL ES) nhiều trò chơi, ứng dụng 3D, 2D nhiều phần mềm khác (đặc biệt phần mềm 3D) OpenGL ES dùng PlayStation, Android, Nintendo 3DS, Nokia, Samsung, Symbian tất nhiên Apple với MacOS iOS Bằng việc sử dụng thư viện OpenGL, mở rộng thành đề tài chẳng hạn vẽ hình không gian ba chiều hay sử dụng thư viện OpenGl để vẽ đường cong mặt cong Benzier, B-SPLINE… Bên cạnh OpenGL cơng cụ hỗ trợ lập trình game điện tử làm việc với tảng khác từ PC/Mac, hệ máy consoles PS3, PS4, XBox 360, Xbox One, thiết bị mobile Android,… TÀI LIỆU THAM KHẢO [1] Allen B Downey, “Think Python 2e”, greenteapress.com/thinkpython2/html/index.html [2] Dave Shreiner, Graham Sellers, John M Kessenich, “OpenGL Programming Guide: The Official Guide to Learning OpenGL” [3] Lê Phong, “Tìm hiểu thư viện đồ họa OpenGL”, Đề tài tốt nghiệp, 2016 [4] Võ Duy Tuấn, “Python bản”, Nhà xuất Đại Học Quốc Gia Hà Nội, 2018 [5] opengl.org/resources/libraries/glut [6] pythonprogramming.net/opengl-pyopengl-python-pygame-tutorial [7] github.com/id-Software/Quake PHỤ LỤC Source code cho example: drive.google.com/drive/folders/19phBc1JPGOP0tVR4wj9Z6cBbXGz0v1QS?usp=sharing xxviii ... NGÔN NGỮ PYTHON 1.1 Giới thiệu Python 1.1.1 Đặc điểm Python ngơn ngữ lập trình bậc cao cho mục đích lập trình đa năng, Guido van Rossum tạo lần đầu mắt vào năm 1991 tại Viện tốn-tin Hà Lan Python. .. gần đây, tên Python liên tục nhắc đến công cụ hữu ích lĩnh vực cơng nghệ thơng tin 1.1.2 Ưu điểm - Python ngôn ngữ bậc cao dễ dàng sử dụng Python có số lượng từ khóa hơn, cấu trúc Python đơn giản... Python đơn giản cú pháp Python định nghĩa rõ ràng Tất điều Python thực trở thành ngôn ngữ thân thiện với lập trình viên - Phần code Python định nghĩa rõ ràng rành mạch - Python có thư viện chuẩn