1. Trang chủ
  2. » Giáo Dục - Đào Tạo

KỸ THUẬT LẬP TRÌNH đề tài phần mềm quét cổng sử dụng sockets trong python

34 21 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Kỹ Thuật Lập Trình Đề Tài Phần Mềm Quét Cổng Sử Dụng Sockets Trong Python
Tác giả Phạm Duy Anh
Trường học Trường Đại Học Điện Lực
Chuyên ngành Điện Tử Viễn Thông
Thể loại đề tài
Năm xuất bản 2021
Thành phố Hà Nội
Định dạng
Số trang 34
Dung lượng 4,45 MB

Cấu trúc

  • I) Phần mở đầu (0)
  • II) Phần Kỹ thuật lập trình Python Điện tử Viễn thông (0)
    • 1. Cú pháp cơ bản của Python (4)
    • 2. Lập trình hàm trong Python (9)
    • 3. Các kiểu dữ liệu tập hợp (Collections) (11)
    • 4. Thiết kế module (28)
    • 5. Phần mềm quét cổng sử dụng Sockets trong Python (32)

Nội dung

Phần Kỹ thuật lập trình Python Điện tử Viễn thông

Cú pháp cơ bản của Python

Trong Python, một định danh (identifier) là tên dùng để nhận diện biến, hàm, lớp hoặc đối tượng Định danh bắt đầu bằng chữ cái (A-Z, a-z) hoặc dấu gạch dưới (_), sau đó có thể theo sau bởi nhiều ký tự, dấu gạch dưới hoặc chữ số (0-9).

Python không cho phép sử dụng các ký tự đặc biệt như @, $ và % trong các định danh Ngôn ngữ lập trình Python phân biệt chữ hoa và chữ thường, vì vậy "viettuts" và "Viettuts" được coi là hai định danh khác nhau Dưới đây là một số quy tắc cần tuân thủ khi đặt tên cho các định danh trong Python.

- Một định danh là một dãy ký tự hoặc chữ số

-Không có ký tự đặc biệt nào được sử dụng (ngoại trừ dấu gạch dưới) như một định danh

Ký tự đầu tiên có thể là chữ cái, dấu gạch dưới, nhưng không được sử dụng chữ số làm ký tự đầu tiên

- Từ khóa không nên được sử dụng như là một tên định danh (phần dưới sẽ trình bày về khác từ khóa này)

- Tên lớp bắt đầu với một chữ cái hoa Tất cả định danh khác bắt đầu với một chữ cái thường

- Bắt đầu một định danh với một dấu gạch dưới đơn chỉ rằng định danh đó là private

- Bắt đầu một định danh với hai dấu gạch dưới chỉ rằng định danh đó thực sự là private

- Nếu định danh cũng kết thúc với hai dấu gạch dưới, thì định danh này là một tên đặc biệt được định nghĩa bởi ngôn ngữ

In Python, keywords are special reserved words used for defining variable types and syntax commands It is important to avoid using these keywords in your code, as they include terms such as "and," "exec," "not," "assert," "finally," "or," "break," "for," "pass," "class," "from," "print," "continue," "global," "raise," "def," "if," "return," "del," "import," "try," "elif," "in," "while," "else," "is," "with," "except," "lambda," and "yield."

Nếu bạn đã học C, C++ hoặc tìm hiểu về Java, bạn sẽ nhận thấy rằng các ngôn ngữ lập trình này sử dụng dấu ngoặc nhọn { } để xác định các khối mã Tuy nhiên, trong Python, các khối lệnh được phân biệt thông qua thụt lề Điều này làm cho việc thụt lề trong Python trở nên cực kỳ quan trọng; nếu thụt lề không đúng hoặc thò lề sai, bạn sẽ ngay lập tức gặp phải lỗi.

Một khối code, thường là các lệnh trong hàm hoặc vòng lặp, bắt đầu bằng việc thụt lề và kết thúc khi gặp dòng đầu tiên không thụt lề Độ thụt lề có thể tùy ý nhưng cần phải nhất quán trong toàn bộ khối code, nghĩa là tất cả các lệnh trong cùng một khối phải có độ thụt lề giống nhau.

Comment, hay còn gọi là chú thích, được sử dụng để giải thích các dòng code, giúp người đọc và người viết code sau này dễ dàng hiểu được mã nguồn Các ký tự và đoạn code trong comment không ảnh hưởng đến kết quả của chương trình.

Trong Python có 2 loại comment là comment trên một dòng và comment trên nhiều dòng

- Về comment trên một dòng: Comment trên 1 dòng sẽ được bắt đầu với ký tự #

- Về comment trên nhiều dòng: Comment trên nhiều dòng trong ngôn ngữ lập trình

Python sẽ bắt đầu bằng 3 dấu nháy đơn (''') hoặc 3 dấu nháy kép (""") và kết thúc cũng bằng 3 dấu nháy đơn (''') hoặc 3 dấu nháy kép (""")

Python không yêu cầu sử dụng dấu chấm phẩy, vì mỗi dòng mới tự động được coi là một tuyên bố mới Tuy nhiên, để cải thiện tính dễ đọc, đôi khi người lập trình có thể muốn chia một câu lệnh thành nhiều dòng.

- Dấu gạch chéo ngược (\) ở cuối mỗi dòng để biểu thị rõ ràng sự tiếp tục của dòng

- Các câu lệnh có trong dấu ngoặc [], {} hoặc () không cần sử dụng ký tự (\) ký tự tiếp tục của dòng

Trích dẫn đơn ('), kép (") và trích dẫn tam (''' hoặc """) để biểu thị các hằng chuỗi, miễn là các trích dẫn này có cùng kiểu mở và đóng

1.7) Sử dụng dòng trống trong Python

Một dòng chỉ có khoảng trống trắng hoặc chứa một chú thích sẽ được coi là dòng trống và Python sẽ hoàn toàn bỏ qua nó.

Trong một phiên thông dịch trong chế độ tương tác, bạn phải nhập một dòng trống để kết thúc một lệnh đa dòng

1.8) Các lệnh đa dòng trên một dòng đơn trong Python

Dấu chấm phảy (;) cho phép xuất hiện nhiều lệnh trên một dòng đơn Tất cả các lệnh được cung cấp này không bắt đầu một khối code mới

1.9) Các nhóm lệnh đa dòng ( suite ) trong Python

Trong Python, một nhóm các lệnh đơn tạo thành một khối mã được gọi là suite Các lệnh phức tạp như if, while, def và class yêu cầu có một dòng header đi kèm với một suite.

Các dòng header bắt đầu bằng từ khóa và kết thúc bằng dấu hai chấm (:), sau đó là một hoặc nhiều dòng để tạo thành một bộ.

Lập trình hàm trong Python

Lập trình hàm là một mô hình lập trình trong đó các hàm thể hiện mối quan hệ giữa các đối tượng, tương tự như trong toán học Do đó, sự xuất hiện của các hàm (functions) là rất phổ biến trong phương pháp này.

Mô hình lập trình hàm có thể được triển khai bằng nhiều ngôn ngữ khác nhau, trong đó một số ngôn ngữ như Closure, Erlang và Haskell đã được phát triển dựa trên nguyên tắc của mô hình này.

Nhưng cũng có nhiều ngôn ngữ khác cũng hỗ trợ lập trình hàm như: C ++, C#, Java, Python, JavaScript và các ngôn ngữ khác

2.1) Pure functions Định nghĩa: Là hàm thuần tuý

- Hàm bình thường: Trả về cùng một kết quả nếu cung cấp cùng một đối số

- Không có tác dụng khác

Một hàm không thuần túy khi nó sử dụng đối tượng từ phạm vi cao hơn, số ngẫu nhiên, hoặc tương tác với các tệp, vì kết quả của hàm không chỉ phụ thuộc vào các đối số đầu vào mà còn vào các yếu tố bên ngoài khác.

Một hàm sửa đổi các đối tượng bên ngoài phạm vi của nó, ghi vào tệp, in ra console, v.v., có tác dụng khác cũng có thể không thuần túy

Các hàm thuần túy không sử dụng đối tượng từ các phạm vi bên ngoài, giúp tránh trạng thái chia sẻ Điều này không chỉ đơn giản hóa chương trình mà còn giảm thiểu nguy cơ mắc phải lỗi.

2.2) Anonymous functions ( Lambda ) Định nghĩa: Là hàm ẩn danh

- Thuận tiên cho các cấu trúc lập trình hàm

- Trong python, tạo 1 hàm ẩn danh với từ khoá lambda

Đệ quy trong Python, hay còn gọi là recursion, là một thuật toán giải quyết bài toán bằng cách gọi lại chính thuật toán đó cho đến khi đạt được điều kiện dừng Hàm đệ quy trong Python cho phép chương trình tự gọi lại chính nó và ngừng khi gặp điều kiện dừng Về bản chất, đệ quy cũng giống như một loại vòng lặp đặc biệt, thể hiện hiệu quả trong việc xử lý các bài toán phức tạp.

Chương trình đệ quy cần có điều kiện dừng để tránh việc tạo ra vòng lặp đệ quy vô hạn, tương tự như cách hoạt động của vòng lặp while trong Python.

Các kiểu dữ liệu tập hợp (Collections)

Trong Python, danh sách được biểu diễn dưới dạng một chuỗi các giá trị, phân cách bởi dấu phẩy và nằm trong dấu [] Danh sách có khả năng chứa nhiều mục với các kiểu dữ liệu khác nhau, tuy nhiên, thường thì các mục trong danh sách sẽ có cùng kiểu.

List không giới hạn số lượng mục, bạn có thể có nhiều kiểu dữ liệu khác nhau trong cùng một list, như chuỗi, số nguyên, số thập phân,

Tuple là một container cũng được sử dụng rất nhiều trong các chương trình Python không thua kém gì List

Một Tuple gồm các yếu tố sau:

- Giới hạn bởi cặp ngoặc (), tất cả những gì nằm trong đó là những 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ị, đối tượng trong Python

3.2.1) Sử dụng cặp dấu ngoặc () và đặt giá trị bên trong

Cú pháp: (, , , , )

Với Tuple thì khái niệm Comprehension này không được áp dụng

Mà đó được coi là Generator Expression Đối tượng được tạo từ Generator Expression cũng là một dạng iterable

Công dụng: Giống hoàn toàn với việc bạn sử dụng constructor List Khác biệt duy nhất là constructor Tuple sẽ tạo ra một Tuple

Một số toán tử với Tuple trong Python

Các toán tử của Tuple giống với toán tử của chuỗi Toán tử của List chỉ là gần giống với toán tử của chuỗi

Indexing và cắt Tuple trong Python

Indexing và cắt Tuple hoàn toàn tương tự như với kiểu dữ liệu List

3.2.1) Thay đổi nội dung Tuple trong Python

Tuple và chuỗi đều là một dạng hash object (immutable) Do đó việc bạn muốn thay đổi nội dung của nó trên lí thuyết là không

Các phương thức của Tuple

Cú pháp: .count(value)

Công dụng: Trả về một số nguyên, chính là số lần xuất hiện của value trong Tuple

Cú pháp: .index(sub[, start[, end]])

Công dụng: Tương tự phương thức index của kiểu dữ liệu chuỗi

Dict (Từ điển) cũng là một loại container giống như List và Tuple Tuy nhiên, điểm khác biệt là các container như List và Tuple sử dụng chỉ số (index) để phân biệt các phần tử, trong khi Dict sử dụng các khóa (key) để phân biệt.

Chắc hẳn bạn đã từng sử dụng từ điển tiếng Anh để tra cứu từ vựng Trong từ điển có rất nhiều từ, nhưng mỗi từ lại mang một ý nghĩa riêng biệt Điều này tương tự như cách mà Dict (Dictionary) hoạt động trong Python, nơi mỗi khóa (key) và giá trị (value) đều có sự khác biệt nhưng vẫn có thể liên kết với nhau thông qua nghĩa.

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ững phầ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ấm (:)

- Các key buộc phải là một hash object

Cú pháp: {, , , }

Truy cập các item của dict trong Python

- Có thể truy cập các item của Dictionary bằng cách sử dụng khóa của nó, bên trong dấu ngoặc vuông

Thay đổi giá trị của một Dict trong Python

Duyệt các item của Dict trong Python

Có thể duyệt qua một Dictionary bằng cách sử dụng vòng lặp for

Kiểm tra nếu key tồn tại

- Để xác định xem một khóa (key) được chỉ định có tồn tại trong từ điển hay không, hãy sử dụng từ khóa in

Ví dụ: Độ dài của một Dict trong Python

- Để xác định có bao nhiêu item (cặp khóa-giá trị) trong Dictionary, hãy sử dụng hàm len()

Thêm các item vào Dict

- Thêm một item vào Dictionary được thực hiện bằng cách sử dụng khóa mới và gán giá trị cho nó

- Có nhiều cách để tạo một bản sao, một trong các cách đó là sử dụng hàm copy() được xây dựng trong Dictionary

Dict lồng nhau trong Python

- Một Dictionary cũng có thể chứa nhiều Dictionary, điều này được gọi là từ điển lồng nhau

- Cũng có thể sử dụng constructor dict() để tạo một Dictionary mới

3.4) Set a) Cách khởi tao Set

- Sử dụng cặp dấu ngoặc {} và đặt giá trị bên trong

Cú pháp: {, , , , }

Công dụng: Giống hoàn toàn với việc bạn sử dụng constructor List Khác biệt duy nhất là constructor Set sẽ tạo ra một Set

Ví dụ: b) Một số toán tử với Set trong Python

Cú pháp: value in

Công dụng: Kết quả trả về là True nếu value xuất hiện trong Set Ngược lại sẽ là False

Công dụng: Kết quả trả về là một Set gồm các phần tử chỉ tồn tại trong Set1 mà không tồn tại trong Set2

Công dụng: Kết quả trả về là một Set chứa các phần tử vừa tồn tại trong Set1 vừa tồn tại trong Set2

Công dụng: Kết quả trả về là một Set chứa tất cả các phần tử tồn tại trong hai Set

Công dụng: Kết quả trả về là một Set chứa tất cả các phần tử chỉ tồn tại ở một trong hai Set

Ví dụ: c) Indexing và cắt Set trong Python

- Indexing và cắt set trong Python không được hỗ trợ d) Các phương thức của Set

Công dụng: Loại bỏ hết tất cả các phần tử có trong Set

Khi sử dụng Set, kết quả trả về một giá trị được lấy ra từ Set và đồng thời loại bỏ giá trị đó khỏi Set ban đầu Lưu ý rằng nếu Set rỗng, sẽ xảy ra lỗi.

Cú pháp: .remove(value)

Công dụng: Loại bỏ giá trị value ở trong Set Nếu như value không ở trong Set, thông báo lên lỗi KeyError

Cú pháp: .discard(value)

Công dụng: Loại bỏ giá trị value ở trong Set Nếu như value không ở trong Set, thì sẽ bỏ qua

Công dụng: Trả về một bản sao của Set

Cú pháp: .add(value)

Công dụng: Thêm value vào trong set Nếu như value đã có trong Set thì bỏ qua

Thiết kế module

Module trong Python là công cụ giúp phân loại mã nguồn thành các nhóm nhỏ liên quan, từ đó tổ chức code một cách logic Việc sử dụng module không chỉ giúp bạn dễ dàng hiểu và sử dụng mã nguồn mà còn cho phép bạn tạo ra các đối tượng với các thuộc tính tùy ý, giúp việc gắn kết và tham chiếu trở nên thuận tiện hơn.

Một Module cơ bản là một file chứa các lớp, hàm và biến đã được định nghĩa Ngoài ra, Module còn có thể bao gồm mã lệnh có khả năng thực thi.

Để tạo một mô-đun trong Python, bạn chỉ cần lưu chương trình của mình vào một tệp có phần mở rộng py Ví dụ, đoạn mã dưới đây được lưu với tên là duyanh.py.

Tiếp theo tạo một file mới và sử dụng lệnh import để import module vừa tạo ở trên vào:

Khi sử dụng một chức năng từ một mô-đun, hãy sử dụng cú pháp: tên_module.tên_mục

Lưu ý: Hãy chắc chắn bạn đã gõ đúng tên module, tên hàm (phân biệt chữ hoa, chữ thường)

4.2) Cách để nhập module trong Python

Bạn có thể sử dụng bất kỳ file Python nào dưới dạng mô-đun bằng cách thực hiện câu lệnh import trong một số file Python khác

Cú pháp: import module1, module2, module3

Khi trình thông dịch gặp lệnh import, nó sẽ nhập module nếu module đó có trong đường dẫn tìm kiếm Đường dẫn tìm kiếm là danh sách các thư mục mà trình thông dịch kiểm tra trước khi nhập module Ví dụ, để nhập module math, bạn cần đặt lệnh import math ở đầu chương trình.

4.2.2) Nhập module với một tên khác

Thi thoảng có các thư viện có tên dài, và chúng ta muốn sử dụng chúng với tên ngắn hơn để thuận tiện, chúng ta sử dụng lệnh:

Cú pháp: import module as tên_khác

4.2.3) Lệnh from…import trong Python

Chúng ta có thể nhập một mục cụ thể từ module mà không cần nhập toàn bộ module như ví dụ dưới đây:

Ví dụ: Đương nhiên cùng một lúc có thể import nhiều mục khác nhau, dùng dấu ,để phân biệt các mục đó

4.2.3) Nhập tất cả mục trong module:

Ta có thể nhập tất cả mục từ một module trong python sử dụng code sau:

Phần mềm quét cổng sử dụng Sockets trong Python

Giáo dục Tin học trong kỷ nguyên cách mạng công nghiệp 4.0 đóng vai trò quan trọng, đặc biệt là việc dạy ngôn ngữ lập trình Python Ngôn ngữ này linh hoạt, đơn giản và dễ học, giúp sinh viên phát triển năng lực vận dụng, thích nghi và giải quyết vấn đề Qua đó, sinh viên có thể hình thành tư duy độc lập và khả năng chủ động trong học tập và công việc.

Ngày đăng: 10/12/2021, 19:38

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN