CHƯƠNG 1: TÌM HIỂU NGÔN NGỮ LẬP TRÌNH PYTHON 1. Giới thiệu ngôn ngữ lập trình Python 1. Lịch sử phát triển - Ngôn ngữ Python được Guido van Rossum tạo ra và được phát hành lần đầu tiên vào tháng 2 năm 1991. - Python khá giống Perl, Ruby, Scheme, Smalltalk và Tcl.
- Python được phát triển trong một dự án mã mở do một tổ chức phi lợi nhuận Python Software Foundation quản lý. - Python được phát triển để chạy trên nền Unix. Nhưng theo thời gian, nó đã "bành trướng" sang mọi hệ điều hành từ MS-DOS đến MAC OS, OS/2, Windows, Linux và một số điều hành khác thuộc họ Unix. - Python là ngôn ngữ bậc cao (high-level), có hình thức sáng sủa, cấu trúc rõ ràng, thuận tiện cho người mới học lập trình.
Cho phép người sử dụng viết mã với số lần gõ phím tối thiểu. - Python cũng là một trong những ngôn ngữ phổ biến nhất thế giới. - Python không phải được đặt theo tên của con rắn thần Python trong thần thoại Hy Lạp đâu. Rossum là fan của một sê-ri chương trình hài cuối những năm 1970, và cái tên “Python” được lấy từ tên một phần trong sê-ri đó “Monty Python’s Flying Circus”.
Phiên bản Bảng 1.1 các phiên bản Python đã phát hành Phiên bản Ngày phát hành Python 1.x cuối cùng) 05/09/2000 Python 2.x cuối cùng) 03/07/2010 Python 3.1 các phiên bản Python đã phát hành Phiên bản Ngày phát hành Python 3. Một số điểm khác nhau giữa phiên bản 3x và 2x 1. Sự khác biệt ở hàm PRINT - Ở 2x print ‘a’,’b’ dễ gây hiểu lầm với kiểu dữ liệu Tuple khi ta truyền nhiều đối số vào parantheses. - Ở phiên bản 3x hàm print dùng ().
Python 2x Python 3x print 'Hello, World!' print ('Hello, World!') print ('Hello, World!') print 'Hello, World!' >>> Hello, World! >>> Hello, Word! File "<ipython-input-3-139a7c5835bd>", line 2 >>> Hello, Word! print 'Hello, World!' ^ SyntaxError: invalid syntax 2 1. Toán tử DIV - Ở Python 2x toán tử chia (/) có một ý nghĩa mơ hồ cho các đối số ‘số’: nó trả về sàn của kết quả toán học của phép chia nếu các đối số là kiểu ints hoặc long, nhưng nó trả về một xấp xỉ hợp lý của kết quả phân chia nếu các đối số là kiểu float hoặc phức. Vấn đề này lại được giải quyết ở bản 3x. Python 2x Python 3x print '3 / 2 =', 3 / 2 print ('3 / 2 =', 3 / 2) print '3 // 2 =', 3 // 2 print ('3 // 2 =', 3 // 2) print '3 / 2.
Kiểu STRING mặc định - Python 2x có các kiểu str () thuộc kiểu ASCII, riêng biệt unicode (), nhưng không có kiểu byte. - Python 3x có các chuỗi Unicode (utf-8) và 2 lớp byte: byte và bytearrays. Python 2x Python 3x print type(unicode(‘Chuỗi này giống kiểu print('strings are now utf-8 str ở Python 3’)) \u03BCnico\u0394é!') >>> <type 'unicode'> >>> strings are now utf-8 μnicoΔé! print type(b‘Đây giống như một chuỗi str print(sys.version,' has', type(b' bytes for do không có kiểu byte ở 2x’) storing data')) >>> <type 'str'> 3 >>> 3.1916 32 bit (Intel)] has <class 'bytes'> print '2 chuỗi này' + b'giống nhau' print('note that we cannot add a string' + >>> 2 chuỗi này giống nhau b'bytes for data') >>> Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: can only concatenate str (not "bytes") to str 1. Loại bỏ hàm XRANGE() ở bản 3x - Việc sử dụng xrange() rất phổ biến trong Python 2.x để tạo một đối tượng có thể lặp lại.
- Ở python 3x đã loại bỏ hàm XRANGE() thay vào đó là sử dụng hàm RANGE(). Nhưng hàm range() ở bản 3x đã được tích hợp cơ chế ‘lazy avaluation’ cơ chế giải phóng bộ nhớ đã chiếm dụng của xrange() (bản 2x). Xử lý ngoại lệ - Trong Python 3x yêu cầu xử dụng từ khóa as để xử lý ngoại lệ. Python 2x Python 3x try: try: let_us_cause_a_NameError let_us_cause_a_NameError except NameError, err: except NameError as err: print err, '--> our error message' print(err, '--> our error message') >>>name >>>name 'let_us_cause_a_NameError' 'let_us_cause_a_NameError' is not is not defined --> our error message defined --> our error message 4 1.
Banker’s Round - Python 3 đã áp dụng cách làm tròn số thập phân chuẩn mới hiện nay khi kết quả là hòa (0,5) ở các chữ số có nghĩa cuối cùng. Bây giờ, trong Python 3, số thập phân được làm tròn đến số chẵn gần nhất. - Mặc dù đó là một sự bất tiện cho tính di động của mã, nhưng nó được cho là cách làm tròn tốt hơn so với làm tròn cũ vì nó tránh được sự thiên vị đối với số lượng lớn. Python 2x Python 3x round(15.
Ordering Comparisons - Python 3.0 đã đơn giản hóa các quy tắc của toán tử so sánh: - Các toán tử so sánh thứ tự ( < , <= , > = , > ) đưa ra một ngoại lệ TypeError khi các toán hạng không có thứ tự tự nhiên có ý nghĩa. Do đó, các biểu thức như 1 < '' , 0 > Không có hoặc len <= len không còn hợp lệ và ví dụ: Không < Không làm tăng TypeError thay vì trả về Sai. Đặc điểm của Python - Python là ngôn ngữ lập trình hướng đối tượng, bậc cao, mạnh mẽ. Ngoài ra, học Python là khá đơn giản và dễ dàng.
Python cũng là một ngôn ngữ thông dịch, tức là ngôn ngữ không cần phải biên dịch ra file chạy mà đọc code đến đâu thì chạy đến đó. Khi chạy lệnh Python ta sẽ có một giao diện dòng lệnh giống của Unix, có thể chạy từng dòng code ngay trực tiếp tại đây. - Python có rất nhiều ưu điểm để khiến cho các nhà lập trình web yêu thích và sử dụng nó cho ngôn ngữ lập trình đầu tiên của mình đó là: Đơn giản: Cú pháp đơn giản giúp cho người lập trình dễ dàng đọc và tìm hiểu. Tốc độ: Python có tốc độ xử lý nhanh hơn so với ngôn ngữ PHP.
5 Tương tác: Chế độ tương tác cho phép người lập trình thử nghiệm tương tác sửa lỗi của các đoạn mã. Chất lượng: Thư viện có tiêu chuẩn cao, Python có khối cơ sở dữ liệu khá lớn nhằm cung cấp giao diện cho tất cả các CSDL thương mại lớn. Thuận tiện: Python được biên dịch và chạy trên tất cả các nền tảng lớn hiện nay. Mở rộng: Với tính năng này, Python cho phép người lập trình có thể thêm hoặc tùy chỉnh các công cụ nhằm tối đa hiệu quả có thể đạt được trong công việc.
Có trên tất cả các nền tảng hệ điều hành từ UNIX, MS – DOS, Mac OS, Windows và Linix và các OS khác thuộc họ Unix. Tương thích mạnh mẽ với Unix, hardware, thirt-party software với số lượng thư viện khổng lồ (400 triệu người sử dụng) Python với tốc độ xử lý cực nhanh, python có thể tạo ra những chương trình từ những script siêu nhỏ tới những phần mềm cực lớn như Blender 3D. Hướng dẫn cài đặt bằng Anaconda/Miniconda 1. Giới thiệu Ananconda/Miniconda và cài đặt - Anaconda là một Distribution miễn phí và mã nguồn mở của Python và R giúp đơn giản hóa việc cài đặt, quản lý và triển khai packages (numpy, scipy, tensorflow,.
- Anaconda phục vụ cho nhiều mục địch, đặc biệt trong Data Science (Khoa học dữ liệu), Machine learnig (Máy học), Big Data (Dữ liệu lớn), Image Processing (Xử lý ảnh),. - Anaconda hiện nay đã có hơn 20 triệu người dùng và hơn 7500 packages khoa học dữ liệu dành cho Windows, Linux và MacOS. - Trong khi đó Spyder là 1 trong những IDE (môi trường tích hợp dùng để phát triển phần mềm) tốt nhất cho data science và quang trọng hơn là nó được cài đặt khi bạn cài đặt Anaconda. Download Anaconda/Miniconda và hướng dẫn cài đặt 1.
Các bước cài đặt - Yêu cầu phần cứng và phần mềm: Hệ điều hành: Win 7, Win 8/8.1, Win 10, Red Hat Enterprise Linux/CentOS 6. 6 Ram tối thiểu 4GB. Ổ cứng trống tối thiểu 3GB để tải và cài đặt. Cài đặt: - Bước 1: truy cập vào trang web https://www.1 Trang chủ ananconda.com Chọn xuống mục download: và chọn tải phiên bản thích hợp, ở đây em chọn hệ điều hành windows bản python 3.7 và 64-bit Graphical.2 Download bản cài đặt - Bước 2: Chạy file cài đặt với quyền admin 7 Hình 1.3 tiến hình cài đặt - Bước 3: Chấp nhập các yêu cầu thiết lập và tiến hình cài đặt Hình 1.4 Giao diện cài đặt - Bước 4: Chọn tài khoản và vị trí để cài đặt.
Ở đây em chọn recommended và ổ C:/ Hình 1.5 Chọn tài khoản và vị trí để cài đặt - Bước 5: Giao diện Anaconda khi cài đặt xong 8 Hình 1.6 Giao diện của phần mền Anaconda - Bước 6: Kiểm tra lại phiên bản phần mềm Anaconda Hình 1.7 Giao diện home của Anaconda Chọn Launch ở Environments base(root) để mở CMD ở môi trường conda để kiểm tra lại phiên bản cài đặt bằng lệnh: conda -V 9 Hình 1.8 kiểm tra phiên bản conda Hình 1.9 kiểm tra phiên bản python 1. Quản lý môi trường - Với Anaconda có nhiều packages khoa học phụ thuộc vào các phiên bản cụ thể của các packages khác. Các nhà khoa học dữ liệu thường sử dụng nhiều phiên bản của nhiều package và sử dụng nhiều môi trường để phân tách các phiên bản khác nhau này. - Chương trình dòng lệnh (command-line program conda) vừa là trình quản lý các package vừa là trình quản lý môi trường (environment manager).
Điều này giúp các nhà khoa học dữ liệu đảm bảo rằng mỗi phiên bản của mỗi package có tất cả các phụ thuộc mà nó yêu cầu và hoạt động chính xác. - Anaconda Navigator cung cấp cho người dùng một giao diện đồ họa để quản lý các environment (môi trường) và package. Ta sẽ có environment mặc định là base (root) chứa các package cơ bản. 10 - Ở ngăn giao diện Home là nơi quản lý các Application (ứng dụng) tại một environment (trong vòng đỏ).10 Giao diện environment 3 1 2 Hình 1.11 các ngăn của giao diện Environments - Vùng số 1 là danh sách các environment ta đã tạo.
- Vùng số 2 là nút để tạo environment mới, sau nhấp chuột vào ta sẽ có giao diện như hình 1. Chúng ta chọn version của Python và đặt tên cho môi trường. 11 - Tương tự Clone là để sao chép một bản environment với các package giống một environment đã tạo. Import dùng để tạo environment bằng file có sẵn.
- Vùng thứ 3 dùng để tìm kiếm và cài đặt các package trong environment bạn đã chọn trong vùng thứ nhất. - Ví dụ tạo mới một environment imgprocess.12 tạo mới một environment imgprocess Hình 1.13 environment imgprocess đã được tạo thành công 12 1. Hướng dẫn cài thêm thư viện bằng conda 1. Các thư viện sử dụng - Tạo một environment finalexam để cài các thư viện hỗ trợ cho CHƯƠNG 3.