Cú pháp cơ bản của Python. Python - nó là gì? Ngôn ngữ lập trình cấp cao

Hãy chuyển sang phần lý thuyết và thực hành và bắt đầu với định nghĩa phiên dịch viên là gì.

Thông dịch viên

Thông dịch viên là một chương trình thực thi các chương trình khác. Khi bạn viết một chương trình bằng Python, trình thông dịch sẽ đọc chương trình của bạn và thực hiện các hướng dẫn trong đó. Trong thực tế, trình thông dịch là một lớp logic chương trình giữa mã chương trình và phần cứng máy tính của bạn.

Tùy thuộc vào phiên bản Python bạn đang sử dụng, bản thân trình thông dịch có thể được triển khai dưới dạng chương trình C, dưới dạng một tập hợp các lớp Java hoặc dưới một số dạng khác, nhưng sẽ nói thêm về điều đó sau.

Chạy tập lệnh trong bảng điều khiển

Hãy chạy trình thông dịch trong bảng điều khiển:

Bây giờ nó đang chờ nhập lệnh, hãy nhập hướng dẫn sau vào đó:

In "xin chào thế giới!"

yay, chương trình đầu tiên của chúng tôi! :D

Chạy tập lệnh từ một tập tin

Tạo một tệp "test.py", với nội dung:

# print "hello world" print "hello world" # in 2 lũy thừa 10 in 2 ** 10

và thực thi tập tin này:

# python /path/to/test.py

Biên dịch động và mã byte

Sau khi bạn chạy tập lệnh, trước tiên nó sẽ biên dịch nguồn tập lệnh thành mã byte cho máy ảo. biên soạn chỉ đơn giản là một bước dịch và mã byte là sự thể hiện cấp độ thấp, độc lập với nền tảng của văn bản nguồn của chương trình. Python dịch từng lệnh trong mã nguồn tập lệnh thành các nhóm hướng dẫn mã byte để cải thiện tốc độ thực thi chương trình vì mã byte thực thi nhanh hơn nhiều. Sau khi biên dịch thành mã byte, một tệp sẽ được tạo với phần mở rộng ".pyc" bên cạnh văn bản script gốc.

Lần tiếp theo bạn chạy chương trình, trình thông dịch sẽ bỏ qua giai đoạn biên dịch và tạo ra một tệp đã biên dịch có phần mở rộng ".pyc" để thực thi. Tuy nhiên, nếu bạn thay đổi nguồn chương trình của mình, bước biên dịch sang mã byte sẽ xảy ra lần nữa vì Python tự động theo dõi ngày sửa đổi của tệp mã nguồn.

Nếu Python không thể ghi tệp mã byte, chẳng hạn như do thiếu quyền ghi vào đĩa, thì chương trình sẽ không bị ảnh hưởng, mã byte sẽ chỉ được thu thập trong bộ nhớ và bị xóa khỏi đó khi chương trình thoát.

Máy ảo Python (PVM)

Sau khi quá trình biên dịch diễn ra, mã byte được chuyển tới một cơ chế gọi là máy ảo, sẽ thực thi các hướng dẫn từ mã byte. Máy ảo là một cơ chế thời gian chạy, nó luôn hiện diện trong hệ thống Python và là một thành phần cực đoan của hệ thống được gọi là “Trình thông dịch Python”.

Để củng cố những gì chúng ta đã học, hãy làm rõ tình huống một lần nữa: quá trình biên dịch thành mã byte được thực hiện tự động và PVM chỉ là một phần của hệ thống Python mà bạn đã cài đặt cùng với trình thông dịch và trình biên dịch. Mọi thứ diễn ra một cách minh bạch với người lập trình và bạn không phải thực hiện các thao tác này một cách thủ công.

Hiệu suất

Các lập trình viên có kinh nghiệm về các ngôn ngữ như C và C++ có thể nhận thấy một số khác biệt trong mô hình thực thi Python. Đầu tiên là không có bước xây dựng hoặc gọi tiện ích "make"; các chương trình Python có thể chạy ngay sau khi viết mã nguồn. Điểm khác biệt thứ hai là mã byte không phải là mã máy nhị phân (ví dụ: hướng dẫn cho bộ vi xử lý Intel), nó là biểu diễn bên trong của chương trình Python.

Vì những lý do này, các chương trình trong Python không thể thực thi nhanh như trong C/C++. Các hướng dẫn được truyền qua bởi hệ thống ảo chứ không phải bộ vi xử lý và để thực thi mã byte cần có sự diễn giải bổ sung, các hướng dẫn này mất nhiều thời gian hơn các hướng dẫn máy của bộ vi xử lý.

Tuy nhiên, mặt khác, không giống như các trình thông dịch truyền thống, chẳng hạn như trong PHP, có một giai đoạn biên dịch bổ sung - trình thông dịch không cần phải phân tích văn bản nguồn của chương trình mỗi lần.

Kết quả là hiệu năng của Python nằm giữa các ngôn ngữ lập trình biên dịch truyền thống và ngôn ngữ lập trình phiên dịch truyền thống.

Triển khai Python thay thế

Những gì đã nói ở trên về trình biên dịch và máy ảo là điển hình cho việc triển khai Python tiêu chuẩn, cái gọi là CPython (triển khai trong ANSI C). Tuy nhiên, cũng có những triển khai thay thế như Jython và IronPython, sẽ được thảo luận ngay bây giờ.

Đây là cách triển khai Python tiêu chuẩn và nguyên bản, được đặt tên như vậy vì nó được viết bằng ANSI C. Đây là những gì chúng tôi đã cài đặt khi chọn gói Python hoạt động hoặc được cài đặt từ BSD miễn phí cổng. Vì đây là một triển khai tham khảo nên nhìn chung hoạt động nhanh hơn, ổn định hơn và tốt hơn hơn các triển khai thay thế.

Jython

Tên gốc JPython, mục đích chính - tích hợp chặt chẽ với ngôn ngữ lập trình Java. Việc triển khai Jython bao gồm các lớp Java biên dịch mã Python thành mã byte Java và sau đó truyền mã byte kết quả Máy ảo Java (JVM).

Mục tiêu của Jython là cho phép các chương trình Python kiểm soát các ứng dụng Java, giống như CPython có thể kiểm soát các thành phần C/C++. Việc triển khai này có sự tích hợp liền mạch với Java. Vì mã Python được dịch sang mã byte Java nên nó hoạt động chính xác như một chương trình Java thực trong thời gian chạy. Các chương trình Jython có thể hoạt động như các applet và servlet, tạo giao diện đồ họa bằng cơ chế Java, v.v. Hơn nữa, Jython còn cung cấp hỗ trợ cho khả năng nhập và sử dụng các lớp Java trong mã Python.

Tuy nhiên, do việc triển khai Jython chậm hơn và kém mạnh mẽ hơn CPython nên các nhà phát triển Java cần một ngôn ngữ kịch bản lệnh làm giao diện cho mã Java rất quan tâm.

Việc triển khai được thiết kế để cung cấp khả năng tích hợp các chương trình Python với các ứng dụng được xây dựng để chạy trên Microsoft .NET Framework của hệ điều hành Windows, cũng như Mono, mã nguồn mở tương đương với Linux. .NET framework và thời gian chạy C# được thiết kế để cho phép khả năng tương tác giữa các đối tượng phần mềm—bất kể ngôn ngữ lập trình được sử dụng—theo tinh thần của mô hình COM trước đây của Microsoft.

IronPython cho phép các chương trình Python hoạt động như cả thành phần máy khách và máy chủ có thể truy cập được từ các ngôn ngữ lập trình .NET khác. Bởi vì việc phát triển được thực hiện bởi Microsoft, người ta sẽ mong đợi sự tối ưu hóa hiệu suất đáng kể từ IronPython, cùng với những thứ khác.

Công cụ tối ưu hóa tốc độ thực thi

Có các triển khai khác, bao gồm trình biên dịch động Tâm thần và trình dịch Shedskin C++, cố gắng tối ưu hóa mô hình thực thi cơ bản.

Trình biên dịch động Psyco

Hệ thống tâm lý là thành phần mở rộng mô hình thực thi mã byte, cho phép các chương trình chạy nhanh hơn. Tâm thần là một phần mở rộng PVM, thu thập và sử dụng thông tin loại để dịch các phần mã byte của chương trình thành mã máy nhị phân thực sự, thực thi nhanh hơn nhiều. Bản dịch này không yêu cầu thay đổi mã nguồn hoặc biên dịch bổ sung trong quá trình phát triển.

Trong quá trình thực hiện chương trình, Psyco thu thập thông tin về các loại đối tượng và thông tin này sau đó được sử dụng để tạo mã máy hiệu quả cao được tối ưu hóa cho loại đối tượng đó. Mã máy được tạo ra sau đó sẽ thay thế các phần mã byte tương ứng, từ đó tăng tốc độ thực thi.

Lý tưởng nhất là một số phần mã chương trình dưới sự kiểm soát của Psyco có thể chạy nhanh như mã C đã biên dịch.

Psyco cung cấp tốc độ tăng từ 2 đến 100 lần, nhưng thường là 4 lần, khi sử dụng trình thông dịch Python chưa sửa đổi. Nhược điểm duy nhất của Psyco là hiện tại nó chỉ có khả năng tạo mã máy cho kiến ​​trúc Intel x86.

Psyco không đạt tiêu chuẩn; nó phải được tải xuống và cài đặt riêng. Ngoài ra còn có một dự án PyPy, đại diện cho một nỗ lực để viết lại PVMđể tối ưu hóa mã như trong Tâm thần, dự án PyPy sẽ hấp thụ nhiều hơn của dự án Tâm thần.

Trình dịch Shedskin C++

Lột da là một hệ thống chuyển đổi mã nguồn Python thành mã nguồn C++, sau đó có thể được biên dịch thành mã máy. Ngoài ra, hệ thống còn triển khai cách tiếp cận độc lập với nền tảng để thực thi mã Python.

Mã nhị phân đông lạnh

Đôi khi bạn cần tạo các tệp thực thi độc lập từ các chương trình Python của mình. Điều này là cần thiết cho việc đóng gói và phân phối các chương trình.

Các tệp nhị phân cố định kết hợp mã byte, PVM của chương trình và các tệp hỗ trợ mà chương trình cần vào một tệp gói duy nhất. Kết quả là một tệp thực thi duy nhất, chẳng hạn như tệp có phần mở rộng ".exe" dành cho Windows.

Ngày nay có ba công cụ chính để tạo "các tệp nhị phân cố định":

  • py2exe- nó có thể tạo các chương trình độc lập cho Windows sử dụng thư viện Tkinter, PMW, wxPython và PyGTK để tạo giao diện đồ họa, các chương trình sử dụng phần mềm tạo trò chơi PyGame, chương trình máy khách win32com và nhiều chương trình khác;
  • Trình cài đặt Py- giống py2exe, nhưng cũng chạy trên Linux và UNIX và có khả năng tạo các tệp thực thi tự cài đặt;
  • đông cứng- phiên bản gốc.

Bạn cần tải xuống các công cụ này riêng biệt với Python, chúng miễn phí.

Các tệp nhị phân cố định khá lớn vì chúng chứa PVM, nhưng chúng vẫn không lớn bất thường theo tiêu chuẩn hiện đại. Vì trình thông dịch Python được tích hợp trực tiếp vào các tệp nhị phân cố định nên không cần phải cài đặt nó để chạy các chương trình ở đầu nhận.

Bản tóm tắt

Đó là tất cả cho ngày hôm nay, trong bài viết tiếp theo, tôi sẽ nói về các kiểu dữ liệu tiêu chuẩn trong Python và trong các bài viết tiếp theo, chúng ta sẽ xem xét từng loại riêng biệt, cũng như các hàm và toán tử để làm việc với các kiểu này.

Python là một ngôn ngữ kịch bản phổ biến và mạnh mẽ mà bạn có thể làm bất cứ điều gì bạn muốn. Ví dụ: bạn có thể thu thập dữ liệu các trang web và thu thập dữ liệu từ chúng, tạo mạng và công cụ, thực hiện tính toán, lập trình cho Raspberry Pi, phát triển chương trình đồ họa và thậm chí cả trò chơi điện tử. Trong Python, bạn có thể \\ viết các chương trình hệ thống độc lập với nền tảng.

Trong bài viết này, chúng ta sẽ xem xét những kiến ​​thức cơ bản về lập trình Python, chúng tôi sẽ cố gắng đề cập đến tất cả các tính năng cơ bản mà bạn cần để bắt đầu sử dụng ngôn ngữ này. Chúng ta sẽ xem xét việc sử dụng các lớp và phương thức để giải quyết các vấn đề khác nhau. Giả định rằng bạn đã quen thuộc với những điều cơ bản và cú pháp của ngôn ngữ.

Python là gì?

Tôi sẽ không đi sâu vào lịch sử hình thành và phát triển của ngôn ngữ, các bạn có thể dễ dàng tìm hiểu qua video sẽ đính kèm bên dưới. Điều quan trọng cần lưu ý là Python là ngôn ngữ kịch bản. Điều này có nghĩa là mã của bạn được kiểm tra lỗi và được thực thi ngay lập tức mà không cần biên dịch hoặc làm lại thêm. Cách tiếp cận này còn được gọi là có thể giải thích được.

Điều này làm giảm năng suất nhưng lại rất thuận tiện. Có một trình thông dịch trong đó bạn có thể nhập lệnh và xem ngay kết quả của chúng. Công việc tương tác như vậy giúp ích rất nhiều cho việc học.

Làm việc trong phiên dịch viên

Chạy trình thông dịch Python rất dễ dàng trên mọi hệ điều hành. Ví dụ: trên Linux, chỉ cần gõ lệnh python trong terminal:

Trong lời nhắc trình thông dịch mở ra, chúng ta thấy phiên bản Python hiện đang được sử dụng. Ngày nay, hai phiên bản Python 2 và Python 3 đều rất phổ biến vì phiên bản đầu tiên có nhiều chương trình và thư viện được phát triển và phiên bản thứ hai có nhiều tính năng hơn. Do đó, các bản phân phối bao gồm cả hai phiên bản. Theo mặc định, phiên bản thứ hai được khởi chạy. Nhưng nếu bạn cần phiên bản 3 thì bạn cần làm:

Đây là phiên bản thứ ba sẽ được xem xét trong bài viết này. Bây giờ hãy xem các tính năng chính của ngôn ngữ này.

Hoạt động chuỗi

Chuỗi trong Python là bất biến; bạn không thể thay đổi một trong các ký tự trong chuỗi. Mọi thay đổi về nội dung đều yêu cầu tạo một bản sao mới. Mở trình thông dịch và làm theo các ví dụ được liệt kê bên dưới để hiểu rõ hơn mọi nội dung được viết:

1. Nối chuỗi

str = "chào mừng" + "đến với trăn"
in(str)

2. Phép nhân chuỗi

str = "Mất" * 2
in(str)

3. Hợp nhất với sự biến đổi

Bạn có thể nối một chuỗi với một số hoặc một giá trị boolean. Nhưng đối với điều này, bạn cần phải sử dụng một phép biến đổi. Có một hàm str() cho việc này:

str = "Đây là số kiểm tra" + str(15)
in(str)

4. Tìm kiếm chuỗi con

Bạn có thể tìm thấy một ký tự hoặc chuỗi con bằng phương thức find:

str = "Chào mừng đến với trang web"
print(str.find("site"))

Phương thức này hiển thị vị trí xuất hiện đầu tiên của trang chuỗi con nếu nó được tìm thấy; nếu không tìm thấy gì thì giá trị -1 sẽ được trả về. Hàm bắt đầu tìm kiếm ở ký tự đầu tiên, nhưng bạn có thể bắt đầu ở ký tự thứ n, ví dụ 26:

str = "Chào mừng đến với trang web"
print(str.find("losst",26))

Trong biến thể này, hàm sẽ trả về -1 vì không tìm thấy chuỗi.

5. Lấy chuỗi con

Chúng ta đã có được vị trí của chuỗi con mà chúng ta đang tìm kiếm, nhưng bây giờ làm cách nào để lấy được chính chuỗi con đó và điều gì xảy ra sau chuỗi đó? Để làm điều này, hãy sử dụng cú pháp này [bắt đầu:kết thúc], chỉ cần xác định hai số hoặc chỉ số đầu tiên:

str = "Một hai ba"
in(str[:2])
in(str)
in(str)
in(str[-1])

Dòng đầu tiên sẽ in một chuỗi con từ ký tự đầu tiên đến ký tự thứ hai, dòng thứ hai - từ ký tự thứ hai đến cuối. Xin lưu ý rằng việc đếm ngược bắt đầu từ số 0. Để đếm ngược, hãy sử dụng số âm.

6. Thay thế chuỗi con

Bạn có thể thay thế một phần của chuỗi bằng phương thức thay thế:

str = "Trang web này nói về Linux"
str2 = str.replace("Linux", "Windows")
in(str2)

Nếu có nhiều lần xuất hiện thì bạn chỉ có thể thay thế lần đầu tiên:

str = "Đây là trang web về Linux và tôi đã đăng ký trang này"
str2 = str.replace("trang", "trang",1)
in(str2)

7. Làm sạch dây

Bạn có thể xóa khoảng trắng thừa bằng chức năng dải:

str = "Đây là trang web về Linux"
print(str.strip())

Bạn cũng có thể xóa các khoảng trắng thừa chỉ ở phía bên phải bằng rstrip hoặc chỉ ở phía bên trái bằng lstrip.

8. Thay đổi sổ đăng ký

Có các chức năng đặc biệt để thay đổi kiểu chữ:

str="Chào mừng đến với Lost"
print(str.upper())
print(str.low())

9. Chuyển đổi chuỗi

Có một số hàm để chuyển đổi một chuỗi thành các kiểu số khác nhau, đó là int(), float(), long() và các hàm khác. Hàm int() chuyển đổi thành số nguyên và float() chuyển đổi thành số dấu phẩy động:

str="10"
str2="20"
in(str+str2)
in(int(str)+int(str2))

10. Độ dài của dòng

Bạn có thể sử dụng các hàm min(), max(), len() để tính số ký tự trong một chuỗi:

str="Chào mừng đến với trang web Losst"
in(phút(str))
in(max(str))
in(len(str))

Cái đầu tiên hiển thị kích thước ký tự tối thiểu, cái thứ hai là kích thước tối đa và cái thứ ba là tổng chiều dài của dòng.

11. Lặp lại một chuỗi

Bạn có thể truy cập từng ký tự của chuỗi riêng lẻ bằng vòng lặp for:

str="Chào mừng đến với trang web"
cho tôi trong phạm vi(len(str)):
in(str[i])

Để giới hạn vòng lặp, chúng tôi đã sử dụng hàm len(). Hãy chú ý đến vết lõm. Lập trình Python dựa trên điều này, không có dấu ngoặc đơn để sắp xếp các khối, chỉ thụt lề.

Các thao tác với số

Các số trong Python khá dễ khai báo hoặc sử dụng trong các phương thức. Bạn có thể tạo số nguyên hoặc số dấu phẩy động:

số 1 ​​= 15
số2 = 3,14

1. Làm tròn số

Bạn có thể làm tròn một số bằng hàm round, chỉ cần xác định số chữ số bạn muốn để lại:

a=15,5652645
in(vòng(a,2))

2. Tạo số ngẫu nhiên

Bạn có thể nhận số ngẫu nhiên bằng mô-đun ngẫu nhiên:

nhập khẩu ngẫu nhiên
in(random.random())

Theo mặc định, số được tạo từ phạm vi 0,0 đến 1,0. Nhưng bạn có thể đặt phạm vi của riêng mình:

nhập khẩu ngẫu nhiên
số=
print(random.choice(số))

Các thao tác với ngày và giờ

Ngôn ngữ lập trình Python có mô-đun DateTime cho phép bạn thực hiện nhiều thao tác khác nhau với ngày và giờ:

nhập ngày giờ
cur_date = datetime.datetime.now()
in(cur_date)
in(cur_date.year)
in(cur_date.day)
print(cur_date.weekday())
in(cur_date.month)
in(cur_date.time())

Ví dụ cho thấy cách trích xuất giá trị mong muốn từ một đối tượng. Bạn có thể nhận được sự khác biệt giữa hai đối tượng:

nhập ngày giờ
time1 = datetime.datetime.now()
time2 = datetime.datetime.now()
thời gian = time2 - time1
in (timediff.microseconds)

Bạn có thể tự tạo các đối tượng ngày tháng với một giá trị tùy ý:

time1 = datetime.datetime.now()
time2 = datetime.timedelta(ngày=3)
thời gian3=thời gian1+thời gian2
in(time3.date())

1. Định dạng ngày giờ

Phương thức strftime cho phép bạn thay đổi định dạng ngày và giờ tùy theo định dạng chuẩn hoặc được chỉ định đã chọn. Dưới đây là các ký tự định dạng cơ bản:

  • %Một- ngày trong tuần, tên viết tắt;
  • %MỘT- ngày trong tuần, tên đầy đủ;
  • %w- số ngày trong tuần, từ 0 đến 6;
  • %d- Ngày trong tháng;
  • %b- tên viết tắt của tháng;
  • %B- tên đầy đủ của tháng;
  • %m- số tháng;
  • %Y- số năm;
  • %H- giờ trong ngày ở định dạng 24 giờ;
  • %l- giờ trong ngày ở định dạng 12 giờ;
  • %P- Sáng hoặc chiều;
  • %M- phút;
  • %S- thứ hai.

nhập ngày giờ
date1 = datetime.datetime.now()
print(date1.strftime("%d. %B %Y %I:%M%p"))

2. Tạo ngày từ một chuỗi

Bạn có thể sử dụng hàm strptime() để tạo đối tượng ngày từ một chuỗi:

nhập ngày giờ
date1=datetime.datetime.strptime("21-11-2016", "%Y-%m-%d")
date2=datetime.datetime(năm=2015, tháng=11, ngày=21)
in (ngày 1);
in (ngày2);

Hoạt động của hệ thống tập tin

Quản lý tệp rất dễ dàng bằng ngôn ngữ lập trình Python, đây là ngôn ngữ tốt nhất để làm việc với tệp. Và nhìn chung, có thể nói Python là ngôn ngữ đơn giản nhất.

1. Sao chép tập tin

Để sao chép tập tin, bạn cần sử dụng các chức năng từ mô-đun subutil:

nhập khẩu
new_path = Shutil.copy("file1.txt", "file2.txt")

new_path = Shutil.copy("file1.txt", "file2.txt", follow_symlinks=False)

2. Di chuyển tập tin

Việc di chuyển tập tin được thực hiện bằng chức năng di chuyển:

Shutil.move("file1.txt", "file3.txt")

Chức năng đổi tên từ mô-đun os cho phép bạn đổi tên tệp:

hệ điều hành nhập khẩu
os.rename("file1.txt", "file3.txt")

3. Đọc và ghi file văn bản

Bạn có thể sử dụng các hàm dựng sẵn để mở tệp, đọc hoặc ghi dữ liệu vào chúng:

fd = open("file1.txt")
nội dung = fd.read()
in (nội dung)

Đầu tiên bạn cần mở file để làm việc bằng chức năng open. Để đọc dữ liệu từ file, hãy sử dụng chức năng đọc, văn bản đã đọc sẽ được lưu vào một biến. Bạn có thể chỉ định số byte cần đọc:

fd = open("file1.txt")
nội dung = fd.read(20)
in (nội dung)

Nếu tệp quá lớn, bạn có thể chia nó thành các dòng và xử lý như sau:

nội dung = fd.readlines()
in (nội dung)

Để ghi dữ liệu vào một tập tin, trước tiên nó phải được mở để ghi. Có hai chế độ hoạt động - ghi đè và thêm vào cuối tệp. Chế độ ghi âm:

fd = open("file1.txt","w")

Và thêm vào cuối tập tin:

fd = open("file1.txt","a")
nội dung = fd.write("Nội dung mới")

4. Tạo thư mục

Để tạo thư mục, hãy sử dụng hàm mkdir từ mô-đun os:

hệ điều hành nhập khẩu
os.mkdir("./thư mục mới")

5. Lấy thời gian sáng tạo

Bạn có thể sử dụng các hàm getmtime(), getatime() và getctime() để biết thời gian được sửa đổi, truy cập và tạo lần cuối. Kết quả sẽ xuất ra ở định dạng Unix nên cần phải chuyển đổi sang dạng có thể đọc được:

hệ điều hành nhập khẩu
nhập ngày giờ
tim=os.path.getctime("./file1.txt")
print(datetime.datetime.fromtimestamp(tim))

6. Danh sách tập tin

Với hàm listdir() bạn có thể lấy danh sách các tệp trong một thư mục:

hệ điều hành nhập khẩu
files= os.listdir(".")
in (tập tin)

Để giải quyết vấn đề tương tự, bạn có thể sử dụng mô-đun toàn cầu:

nhập khẩu quả địa cầu
files=glob.glob("*")
in (tập tin)

7. Tuần tự hóa các đối tượng Python

nhập khẩu dưa chua
fd = open("myfile.pk", "wb")
dưa chua.dump(mydata,fd)

Sau đó để khôi phục đối tượng sử dụng:

nhập khẩu dưa chua
fd = open("myfile.pk", "rb")
mydata = dưa chua.load(fd)

8. Nén tập tin

Thư viện chuẩn Python cho phép bạn làm việc với nhiều định dạng lưu trữ khác nhau, ví dụ: zip, tar, gzip, bzip2. Để xem nội dung của một tập tin, hãy sử dụng:

nhập tệp zip
my_zip = zipfile.ZipFile("my_file.zip", mode="r")
print(file.namelist())

Và để tạo một kho lưu trữ zip:

nhập tệp zip
file=zipfile.ZipFile("files.zip","w")
file.write("file1.txt")
tập tin.close()

Bạn cũng có thể giải nén kho lưu trữ:

nhập tệp zip
file=zipfile.ZipFile("files.zip","r")
tập tin.extractall()
tập tin.close()

Bạn có thể thêm tệp vào kho lưu trữ như thế này:

nhập tệp zip
file=zipfile.ZipFile("files.zip","a")
file.write("file2.txt")
tập tin.close()

9. Phân tích tệp CSV và Excel

Sử dụng mô-đun gấu trúc, bạn có thể xem và phân tích nội dung của bảng CSV và Excel. Trước tiên, bạn cần cài đặt mô-đun bằng pip:

sudo pip cài đặt gấu trúc

Sau đó để phân tích, gõ:

nhập khẩu gấu trúc
data=pandas.read_csv("file.csv)

Theo mặc định, pandas sử dụng cột đầu tiên cho tiêu đề của mỗi hàng. Bạn có thể chỉ định một cột cho chỉ mục bằng tham số index_col hoặc chỉ định Sai nếu không cần thiết. Để ghi các thay đổi vào một tệp, hãy sử dụng hàm to_csv:

data.to_csv("file.csv)

Bạn có thể phân tích tệp Excel theo cách tương tự:

dữ liệu = pd.read_excel("file.xls", sheetname="Sheet1")

Nếu bạn cần mở tất cả các bảng, hãy sử dụng:

dữ liệu = pd.ExcelFile("file.xls")

Sau đó, bạn có thể viết lại tất cả dữ liệu:

data.to_excel("file.xls", sheet="Sheet1")

Kết nối mạng trong Python

Lập trình Python 3 thường liên quan đến kết nối mạng. Thư viện chuẩn Python bao gồm các khả năng ổ cắm để truy cập mạng cấp thấp. Điều này là cần thiết để hỗ trợ nhiều giao thức mạng.

ổ cắm nhập khẩu
máy chủ = "192.168.1.5"
cổng = 4040
my_sock = socket.create_connection((máy chủ, cổng))

Mã này kết nối với cổng 4040 trên máy 192.168.1.5. Khi ổ cắm mở, bạn có thể gửi và nhận dữ liệu:

my_sock.sendall(b"Xin chào thế giới")

Chúng ta cần viết ký tự b trước dòng vì cần truyền dữ liệu ở chế độ nhị phân. Nếu tin nhắn quá lớn, bạn có thể lặp lại:

msg = b"Tin nhắn dài hơn ở đây"
mesglen = len(tin nhắn)
tổng cộng = 0
trong khi tổng cộng< msglen:
đã gửi = my_sock.send(tin nhắn)
tổng cộng = tổng cộng + đã gửi

Để nhận dữ liệu, bạn cũng cần mở socket nhưng sử dụng phương thức my_sock_recv:

data_in = my_sock.recv(2000)

Ở đây chúng tôi chỉ ra số lượng dữ liệu cần nhận - 20000, dữ liệu sẽ không được chuyển sang biến cho đến khi nhận được 20000 byte dữ liệu. Nếu tin nhắn lớn hơn thì để nhận được nó, bạn cần tạo một vòng lặp:

bộ đệm = bytearray(b" " * 2000)
my_sock.recv_into(bộ đệm)

Nếu bộ đệm trống, tin nhắn nhận được sẽ được ghi vào đó.

Làm việc với thư

Thư viện chuẩn Python cho phép bạn nhận và gửi email.

1. Nhận thư từ máy chủ POP3

Để nhận tin nhắn, chúng tôi sử dụng máy chủ POP:

nhập getpass, poplib
pop_serv = poplib.POP3("192.168.1.5")
pop_serv.user("myuser")
pop_serv.pass_(getpass.getpass())

Mô-đun getpass cho phép bạn lấy mật khẩu của người dùng một cách an toàn để nó không hiển thị trên màn hình. Nếu máy chủ POP sử dụng kết nối an toàn thì bạn cần sử dụng lớp POP3_SSL. Nếu kết nối thành công, bạn có thể tương tác với máy chủ:

msg_list = pop_serv.list() # để liệt kê các tin nhắn
msg_count = pop_serv.msg_count()

Để hoàn thành công việc sử dụng:

2. Nhận thư từ máy chủ IMAP

Để kết nối và làm việc với máy chủ IMAP, hãy sử dụng mô-đun imaplib:

nhập imaplib, getpass
my_imap = imaplib.IMAP4("imap.server.com")
my_imap.login("myuser", getpass.getpass())

Nếu máy chủ IMAP của bạn sử dụng kết nối an toàn, bạn cần sử dụng lớp IMAP4_SSL. Để có được danh sách tin nhắn, hãy sử dụng:

data = my_imap.search(Không có, "TẤT CẢ")

Sau đó, bạn có thể lặp qua danh sách đã chọn và đọc từng tin nhắn:

msg = my_imap.fetch(email_id, "(RFC822)")

Tuy nhiên, đừng quên đóng kết nối:

my_imap.close()
my_imap.logout()

3. Gửi thư

Để gửi thư, giao thức SMTP và mô-đun smtplib được sử dụng:

nhập smtplib, getpass
my_smtp = smtplib.SMTP(smtp.server.com")
my_smtp.login("myuser", getpass.getpass())

Như trước đây, hãy sử dụng SMTP_SSL để có kết nối an toàn. Khi kết nối được thiết lập, bạn có thể gửi tin nhắn:

từ_addr = " [email được bảo vệ]"
to_addr = " [email được bảo vệ]"
tin nhắn = "Từ: [email được bảo vệ]\r\nTới: [email được bảo vệ]\r\n\r\nXin chào, đây là tin nhắn kiểm tra"
my_smtp.sendmail(from_addr, to_addr, msg)

Làm việc với các trang web

Lập trình Python thường được sử dụng để viết các tập lệnh khác nhau để làm việc với web.

1. Thu thập thông tin trên web

Mô-đun urllib cho phép bạn truy vấn các trang web theo nhiều cách khác nhau. Để gửi một yêu cầu thông thường, hãy sử dụng lớp yêu cầu. Ví dụ: hãy thực hiện một yêu cầu trang bình thường:

nhập urllib.request
my_web = urllib.request.urlopen("https://www.google.com")
in(my_web.read())

2. Sử dụng phương thức POST

Nếu cần gửi biểu mẫu web, bạn phải sử dụng yêu cầu POST thay vì GET:

nhập urllib.request
mydata = b"Dữ liệu của bạn ở đây"
my_req = urllib.request.Request("http://localhost", data=mydata,method="POST")
my_form = urllib.request.urlopen(my_req)
in(my_form.status)

3. Tạo một máy chủ web

Bằng cách sử dụng lớp Socket, bạn có thể chấp nhận các kết nối đến, nghĩa là bạn có thể tạo một máy chủ web với khả năng tối thiểu:

ổ cắm nhập khẩu
máy chủ = ""
cổng = 4242
my_server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
my_server.bind((máy chủ, cổng))
my_server.listen(1)

Khi máy chủ được tạo. bạn có thể bắt đầu chấp nhận kết nối:

addr = my_server.accept()
print("Đã kết nối từ máy chủ", addr)
dữ liệu = conn.recv(1024)

Và đừng quên đóng kết nối:

Đa luồng

Giống như hầu hết các ngôn ngữ hiện đại, Python cho phép bạn chạy nhiều luồng song song, điều này có thể hữu ích khi bạn cần thực hiện các phép tính phức tạp. Thư viện chuẩn có một mô-đun luồng chứa lớp Therad:

nhập luồng
def print_message():
print("Thư được in từ thread khác")
my_thread = threading.Thread(target=print_message)
my_thread.start()

Nếu hàm chạy quá lâu, bạn có thể kiểm tra xem mọi thứ có ổn không bằng cách sử dụng hàm is_alive(). Đôi khi chủ đề của bạn cần truy cập tài nguyên toàn cầu. Khóa được sử dụng cho việc này:

nhập luồng
số = 1
my_lock = threading.Lock()
định nghĩa my_func():
số toàn cầu, my_lock
my_lock.acquire()
tổng = số + 1
in (tổng)
my_lock.release()
my_thread = threading.Thread(target=my_func)
my_thread.start()

kết luận

Trong bài viết này, chúng tôi đã trình bày những điều cơ bản về lập trình python. Bây giờ bạn đã biết hầu hết các hàm thường dùng và có thể sử dụng chúng trong các chương trình nhỏ của mình. Bạn sẽ thích lập trình bằng Python 3, nó rất dễ dàng! Nếu bạn có bất kỳ câu hỏi nào, hãy hỏi trong phần bình luận!

Để kết thúc bài viết, có một bài giảng rất hay về Python:

(Dịch)

Một bài báo đã được xuất bản trên trang web Poromenos Stuff, trong đó, ở dạng ngắn gọn, họ nói về những điều cơ bản của ngôn ngữ Python. Tôi cung cấp cho bạn bản dịch của bài viết này. Tôi đã cố gắng giải thích chi tiết hơn một số. những điểm có thể không rõ ràng.

Nếu bạn đang có ý định học ngôn ngữ Python nhưng chưa tìm được hướng dẫn phù hợp thì bài viết này sẽ rất hữu ích với bạn! Trong một thời gian ngắn, bạn sẽ có thể làm quen với những điều cơ bản của ngôn ngữ Python. Mặc dù bài viết này thường dựa vào việc bạn đã có kinh nghiệm lập trình nhưng tôi hy vọng ngay cả những người mới bắt đầu cũng sẽ thấy tài liệu này hữu ích. Đọc từng đoạn một cách cẩn thận. Do tài liệu cô đọng nên một số chủ đề được thảo luận một cách hời hợt nhưng lại chứa đựng đầy đủ tài liệu cần thiết.

Các tính chất cơ bản

Python không yêu cầu khai báo rõ ràng các biến và là ngôn ngữ hướng đối tượng phân biệt chữ hoa chữ thường (biến var không tương đương với Var hoặc VAR - chúng là ba biến khác nhau).

Cú pháp

Đầu tiên, cần lưu ý một tính năng thú vị của Python. Thay vào đó, nó không chứa dấu ngoặc toán tử (bắt đầu..kết thúc trong pascal hoặc (..) trong C). các khối được thụt vào: dấu cách hoặc tab và việc nhập khối câu lệnh được thực hiện bằng dấu hai chấm. Nhận xét một dòng bắt đầu bằng dấu thăng "#", nhận xét nhiều dòng bắt đầu và kết thúc bằng ba dấu ngoặc kép """".

Để gán giá trị cho một biến, hãy sử dụng dấu “=” và “==” để so sánh. Để tăng giá trị của một biến hoặc thêm vào một chuỗi, hãy sử dụng toán tử “+=” và “-=” để giảm giá trị đó. Tất cả các thao tác này có thể tương tác với hầu hết các loại, bao gồm cả chuỗi. Ví dụ

>>> myvar = 3

>>> myvar += 2

>>> myvar -= 1

"""Đây là bình luận nhiều dòng

Các chuỗi nằm trong ba dấu ngoặc kép sẽ bị bỏ qua"""

>>> mystring = "Xin chào"

>>> mystring += "thế giới."

>>> in chuỗi bí ẩn

Chào thế giới.

# Dòng tiếp theo thay đổi

Giá trị của các biến được hoán đổi. (Chỉ một dòng thôi!)

>>> myvar, mystring = mystring, myvar

Cấu trúc dữ liệu

Python chứa các cấu trúc dữ liệu như danh sách, bộ dữ liệu và từ điển). Danh sách tương tự như mảng một chiều (nhưng bạn có thể sử dụng Danh sách chứa danh sách - mảng nhiều chiều), bộ dữ liệu là danh sách bất biến, từ điển cũng là danh sách, nhưng chỉ mục có thể thuộc bất kỳ loại nào, không chỉ là số. "Mảng" trong Python có thể chứa dữ liệu thuộc bất kỳ loại nào, nghĩa là một mảng có thể chứa các loại dữ liệu số, chuỗi và các loại dữ liệu khác. Mảng bắt đầu ở chỉ mục 0 và phần tử cuối cùng có thể được truy cập ở chỉ mục -1. Bạn có thể gán hàm cho các biến và sử dụng chúng cho phù hợp.

>>> sample = , ("a", "tuple")] #Danh sách bao gồm một số nguyên, một danh sách khác và một bộ dữ liệu

>>> mylist = ["List item 1", 2, 3.14] #Danh sách này chứa một chuỗi, một số nguyên và một phân số

>>> mylist = "Liệt kê lại mục 1" #Thay đổi phần tử đầu tiên (không) của trang tính mylist

>>> mylist[-1] = 3.14 #Thay đổi phần tử cuối cùng của trang tính

>>> mydict = ("Key 1": "Value 1", 2: 3, "pi": 3.14) #Tạo từ điển có chỉ số số và số nguyên

>>> mydict["pi"] = 3.15 #Thay đổi thành phần từ điển trong chỉ mục "pi".

>>> mytuple = (1, 2, 3) #Chỉ định một bộ

>>> myfunction = len #Python cho phép khai báo từ đồng nghĩa hàm theo cách này

>>> in chức năng của tôi (danh sách của tôi)

Bạn có thể sử dụng một phần của mảng bằng cách chỉ định chỉ mục đầu tiên và cuối cùng được phân tách bằng dấu hai chấm ://. Trong trường hợp này, bạn sẽ nhận được một phần của mảng, từ chỉ mục đầu tiên đến chỉ mục thứ hai, không bao gồm. Nếu phần tử đầu tiên không được chỉ định thì việc đếm bắt đầu từ đầu mảng và nếu phần tử cuối cùng không được chỉ định thì mảng sẽ được đọc đến phần tử cuối cùng. Giá trị âm xác định vị trí của phần tử từ cuối. Ví dụ:

>>> mylist = ["Danh sách mục 1", 2, 3.14]

>>> print mylist[:] #Tất cả các phần tử mảng đều được đọc

["Danh sách mục 1", 2, 3.1400000000000001]

>>> print mylist #Phần tử thứ 0 và đầu tiên của mảng được đọc.

["Danh sách mục 1", 2]

>>> print mylist[-3:-1] #Các phần tử từ 0 (-3) đến giây (-1) đều được đọc (không bao gồm)

["Danh sách mục 1", 2]

>>> print mylist #Elements được đọc từ đầu đến cuối

Dây

Chuỗi trong Python được phân tách bằng dấu ngoặc kép """ hoặc dấu ngoặc đơn """. Dấu ngoặc kép có thể chứa dấu ngoặc đơn hoặc ngược lại. Ví dụ: dòng “Anh ấy đã nói xin chào!” sẽ được hiển thị là "Anh ấy đã nói xin chào!". Nếu bạn cần sử dụng một chuỗi gồm nhiều dòng thì dòng này phải bắt đầu và kết thúc bằng ba dấu ngoặc kép """". Bạn có thể thay thế các phần tử từ một bộ hoặc từ điển vào mẫu chuỗi. và bộ dữ liệu thay thế các ký tự trong chuỗi “%s” thành một phần tử bộ dữ liệu. Từ điển cho phép bạn chèn một phần tử tại một chỉ mục nhất định vào một chuỗi. Để thực hiện việc này, hãy sử dụng cấu trúc “%(index)s” trong chuỗi. Trong trường hợp này, thay vì “%(index)s”, giá trị từ điển tại chỉ mục đã cho sẽ được thay thế.

>>>in "Tên: %s\nSố: %s\nChuỗi: %s" % (myclass.name, 3, 3 * "-")

Tên: Poromenos

Số 3

Sợi dây: ---

strString = """Văn bản này nằm ở

trên nhiều dòng"""

>>> in "%(động từ)s này là %(danh từ)s." %("danh từ": "kiểm tra", "động từ": "là")

Đây là một bài kiểm tra.

Toán tử

Các câu lệnh while, if và for cấu thành các toán tử di chuyển. Không có câu lệnh nào tương đương với câu lệnh chọn, vì vậy bạn sẽ phải thực hiện với if . Câu lệnh for tạo ra sự so sánh biến và danh sách. Để có được danh sách các chữ số lên đến một số - sử dụng phạm vi (hàm ). Đây là một ví dụ về việc sử dụng toán tử

rangelist = range(10) #Lấy danh sách mười chữ số (từ 0 đến 9)

>>> in danh sách phạm vi

đối với số trong danh sách phạm vi: #Miễn là biến số (được tăng thêm một lần mỗi lần) nằm trong danh sách...

# Kiểm tra xem biến có được đưa vào không

# số thành một bộ số (3, 4, 7, 9)

Nếu số trong (3, 4, 7, 9): #Nếu số nằm trong bộ (3, 4, 7, 9)...

# Thao tác "break" cung cấp

# thoát khỏi vòng lặp bất cứ lúc nào

Phá vỡ

Khác:

# "tiếp tục" thực hiện "cuộn"

# vòng. Điều này không bắt buộc ở đây, vì sau thao tác này

# trong mọi trường hợp, chương trình sẽ quay lại xử lý vòng lặp

Tiếp tục

khác:

# "khác" là tùy chọn. Điều kiện được đáp ứng

# nếu vòng lặp không bị gián đoạn bởi lệnh "break".

Đạt # Không làm gì cả

nếu danh sách phạm vi == 2:

In "Mục thứ hai (danh sách dựa trên 0) là 2"

nhà phân tích Elif == 3:

In "Mục thứ hai (danh sách dựa trên 0) là 3"

khác:

In "Không biết"

trong khi danh sách phạm vi == 1:

Vượt qua

Chức năng

Để khai báo một hàm, sử dụng từ khóa "def". Các đối số của hàm được đặt trong dấu ngoặc đơn sau tên hàm. Bạn có thể chỉ định các đối số tùy chọn, đặt cho chúng một giá trị mặc định. Các hàm có thể trả về các bộ dữ liệu, trong trường hợp đó bạn cần viết các giá trị trả về được phân tách bằng dấu phẩy. Từ khóa "lambda" được sử dụng để khai báo các hàm cơ bản.

# arg2 và arg3 là các đối số tùy chọn, lấy giá trị được khai báo theo mặc định,

# trừ khi bạn cung cấp cho chúng một giá trị khác khi gọi hàm.

def myfunction(arg1, arg2 = 100, arg3 = "test"):

Trả về arg3, arg2, arg1

#Hàm được gọi với giá trị của đối số đầu tiên - "Đối số 1", đối số thứ hai - theo mặc định và đối số thứ ba - "Đối số được đặt tên".

>>>ret1, ret2, ret3 = myfunction("Đối số 1", arg3 = "Đối số được đặt tên")

# ret1, ret2 và ret3 lần lượt lấy các giá trị "Đối số được đặt tên", 100, "Đối số 1"

>>> in ret1, ret2, ret3

Đối số được đặt tên 100 Đối số 1

# Giá trị sau tương đương với def f(x): return x + 1

hàmvar = lambda x: x + 1

>>> hàm invar(1)

Các lớp học

Ngôn ngữ Python bị hạn chế về tính đa kế thừa trong các lớp. Các biến nội bộ và các phương thức lớp nội bộ bắt đầu bằng hai dấu gạch dưới "__" (ví dụ "__myprivatevar"). Chúng ta cũng có thể gán giá trị cho biến lớp từ bên ngoài. Ví dụ:

lớp Myclass:

Chung = 10

định nghĩa __init__(tự):

Tự.myvariable = 3

Def myfunction(self, arg1, arg2):

Trả về self.myvariable

# Ở đây chúng ta đã khai báo lớp Myclass. Hàm __init__ được gọi tự động khi các lớp được khởi tạo.

>>> classinstance = Myclass() # Chúng ta đã khởi tạo lớp và myvariable có giá trị 3 như đã nêu trong phương thức khởi tạo

>>> classinstance.myfunction(1, 2) #Phương thức myfunction của lớp Myclass trả về giá trị của biến myvariable

# Biến chung được khai báo ở tất cả các lớp

>>> classinstance2 = Myclass()

>>> classinstance.common

>>> classinstance2.common

# Vậy nếu chúng ta thay đổi giá trị của nó trong lớp Myclass thì nó sẽ thay đổi

# và các giá trị của nó trong các đối tượng được khởi tạo bởi lớp Myclass

>>> Myclass.common = 30

>>> classinstance.common

>>> classinstance2.common

# Và ở đây chúng ta không thay đổi biến lớp. Thay vì điều này

# chúng ta khai báo nó trong một đối tượng và gán cho nó một giá trị mới

>>> classinstance.common = 10

>>> classinstance.common

>>> classinstance2.common

>>> Myclass.common = 50

# Bây giờ việc thay đổi biến lớp sẽ không ảnh hưởng

# đối tượng biến của lớp này

>>> classinstance.common

>>> classinstance2.common

# Lớp sau là hậu duệ của lớp Myclass

# bằng cách kế thừa các thuộc tính và phương thức của nó, ai có thể tạo lớp đó

# kế thừa từ nhiều lớp, trong trường hợp này là mục

# như thế này: class Otherclass(Myclass1, Myclass2, MyclassN)

lớp Otherclass(Myclass):

Def __init__(self, arg1):

Tự.myvariable = 3

In arg1

>>> classinstance = Otherclass("xin chào")

Xin chào

>>> classinstance.myfunction(1, 2)

# Lớp này không có bài kiểm tra thuộc tính, nhưng chúng ta có thể

# khai báo một biến như vậy cho một đối tượng. Hơn thế nữa

# biến này sẽ chỉ là thành viên của classinstance.

>>> classinstance.test = 10

>>> classinstance.test

Ngoại lệ

Các ngoại lệ trong Python có cấu trúc try -ngoại trừ:

def một số chức năng():

Thử:

# Chia cho 0 gây ra lỗi

10 / 0

Ngoại trừ ZeroDivisionError:

# Nhưng chương trình không "Thực hiện thao tác bất hợp pháp"

# Và xử lý khối ngoại lệ tương ứng với lỗi “ZeroDivisionError”

In "Rất tiếc, không hợp lệ."

>>> fnngoại trừ()

Rất tiếc, không hợp lệ.

Nhập khẩu

Các thư viện bên ngoài có thể được kết nối bằng quy trình "nhập", trong đó có tên của thư viện được kết nối. Bạn cũng có thể sử dụng lệnh "from import" để có thể sử dụng một hàm từ thư viện:

nhập ngẫu nhiên #Nhập thư viện "ngẫu nhiên"

from time import clock #Và đồng thời chức năng “đồng hồ” từ thư viện “thời gian”

ngẫu nhiên = ngẫu nhiên.randint(1, 100)

>>>in ngẫu nhiên

Làm việc với hệ thống tập tin

Python có nhiều thư viện tích hợp. Trong ví dụ này, chúng tôi sẽ cố gắng lưu cấu trúc danh sách vào tệp nhị phân, đọc nó và lưu chuỗi vào tệp văn bản. Để chuyển đổi cấu trúc dữ liệu chúng ta sẽ sử dụng thư viện chuẩn “pickle”:

nhập khẩu dưa chua

mylist = ["Cái này", "là", 4, 13327]

# Mở file C:\binary.dat để ghi. ký hiệu "r"

# ngăn chặn việc thay thế các ký tự đặc biệt (chẳng hạn như \n, \t, \b, v.v.).

myfile = file(r"C:\binary.dat", "w")

dưa chua.dump(mylist, myfile)

myfile.close()

myfile = file(r"C:\text.txt", "w")

myfile.write("Đây là một chuỗi mẫu")

myfile.close()

myfile = file(r"C:\text.txt")

>>> in myfile.read()

"Đây là một chuỗi mẫu"

myfile.close()

# Mở file để đọc

myfile = file(r"C:\binary.dat")

danh sách đã tải = Pickle.load(myfile)

myfile.close()

>>> in danh sách đã tải

["Cái này", "là", 4, 13327]

Đặc thù

  • Điều kiện có thể được kết hợp. 1 < a < 3 выполняется тогда, когда а больше 1, но меньше 3.
  • Sử dụng toán tử "del" để xóa các biến hoặc phần tử mảng.
  • Python mang đến những cơ hội tuyệt vời cho làm việc với danh sách. Bạn có thể sử dụng các toán tử khai báo cấu trúc danh sách. Toán tử for cho phép bạn chỉ định các thành phần trong danh sách theo một trình tự cụ thể và toán tử if cho phép bạn chọn các thành phần dựa trên một điều kiện.

>>> lst1 =

>>> lst2 =

>>> in

>>> in

# Toán tử "bất kỳ" trả về true nếu mặc dù

# nếu một trong các điều kiện trong đó được thỏa mãn.

>>> bất kỳ(i % 3 cho i in )

ĐÚNG VẬY

# Thủ tục sau đây đếm số

# phần tử phù hợp trong danh sách

>>> tổng(1 cho i trong if i == 3)

>>> del lst1

>>> in lst1

>>> del lst1

  • Biến toàn cụcđược khai báo bên ngoài các hàm và có thể được đọc mà không cần khai báo. Nhưng nếu bạn cần thay đổi giá trị của một biến toàn cục từ một hàm thì bạn cần khai báo nó ở đầu hàm với từ khóa “global”, nếu không làm điều này thì Python sẽ khai báo một biến đó là chỉ có thể truy cập được với chức năng đó.

số = 5

định nghĩa myfunc():

# Đầu ra 5

Số in

def anotherfunc():

# Điều này tạo ra một ngoại lệ vì biến toàn cục

# không được gọi từ một hàm. Python trong trường hợp này tạo ra

# biến có cùng tên bên trong hàm này và có thể truy cập được

# chỉ dành cho người vận hành hàm này.

Số in

Số = 3

def yetanotherfunc():

Số toàn cầu

# Và chỉ từ hàm này giá trị của biến mới được thay đổi.

Số = 3

Lời kết

Tất nhiên, bài viết này không mô tả hết các tính năng của Python. Tôi hy vọng bài viết này sẽ giúp ích cho bạn nếu bạn muốn tiếp tục học ngôn ngữ lập trình này.

Lợi ích của Python

  • Tốc độ thực thi của các chương trình viết bằng Python rất cao. Điều này là do các thư viện Python chính
    được viết bằng C++ và mất ít thời gian hơn để hoàn thành nhiệm vụ so với các ngôn ngữ cấp cao khác.
  • Vì điều này, bạn có thể viết các mô-đun Python của riêng mình bằng C hoặc C++
  • Trong thư viện Python tiêu chuẩn, bạn có thể tìm thấy các công cụ để làm việc với email, giao thức
    Internet, FTP, HTTP, cơ sở dữ liệu, v.v.
  • Các tập lệnh được viết bằng Python chạy trên hầu hết các hệ điều hành hiện đại. Tính di động này cho phép Python được sử dụng trong nhiều lĩnh vực khác nhau.
  • Python phù hợp với mọi giải pháp lập trình, có thể là chương trình văn phòng, ứng dụng web, ứng dụng GUI, v.v.
  • Hàng nghìn người đam mê từ khắp nơi trên thế giới đã làm việc để phát triển Python. Sự hỗ trợ cho các công nghệ hiện đại trong các thư viện tiêu chuẩn có thể là do Python được mở cho tất cả mọi người.

Chương trình là một tập hợp các thuật toán đảm bảo rằng các hành động cần thiết được thực hiện. Thông thường, một người bình thường có thể được lập trình theo cách tương tự bằng cách viết các lệnh chính xác, chẳng hạn như chuẩn bị trà. Nếu tùy chọn thứ hai sử dụng giọng nói tự nhiên (tiếng Nga, tiếng Ukraina, tiếng Anh, tiếng Hàn, v.v.), thì máy tính sẽ cần một ngôn ngữ lập trình đặc biệt. Python là một trong số đó. Môi trường lập trình sau đó sẽ dịch các lệnh sang và mục tiêu của con người mà thuật toán được tạo ra sẽ được hoàn thành. Python có cú pháp riêng, sẽ được thảo luận dưới đây.

Lịch sử của ngôn ngữ

Sự phát triển bắt đầu từ những năm 1980 và kết thúc vào năm 1991. Ngôn ngữ Python được tạo ra bởi Guido van Rossum. Mặc dù biểu tượng chính của Python là con rắn nhưng nó lại được đặt tên theo một chương trình hài kịch của Mỹ.

Khi tạo ngôn ngữ, nhà phát triển đã sử dụng một số lệnh mượn từ Pascal, C và C++ hiện có. Sau khi phiên bản chính thức đầu tiên được tung lên mạng, cả một nhóm lập trình viên đã tham gia tinh chỉnh và cải tiến nó.

Một trong những yếu tố giúp Python trở nên khá nổi tiếng chính là thiết kế của nó. Ông được nhiều chuyên gia rất thành công công nhận là một trong những người giỏi nhất.

Đặc điểm của Python

Ngôn ngữ lập trình Python sẽ là giáo viên xuất sắc cho người mới bắt đầu. Nó có một cú pháp khá đơn giản. Bạn sẽ dễ hiểu mã vì nó không bao gồm nhiều yếu tố phụ trợ và cấu trúc đặc biệt của ngôn ngữ sẽ dạy bạn cách thụt lề. Tất nhiên, một chương trình được thiết kế tốt với một số lượng lệnh nhỏ sẽ có thể hiểu được ngay lập tức.

Nhiều hệ thống cú pháp được tạo ra bằng cách sử dụng lập trình hướng đối tượng. Python cũng không ngoại lệ. Chính xác thì tại sao anh ấy lại được sinh ra? Nó sẽ giúp những người mới bắt đầu học dễ dàng hơn và sẽ giúp những nhân viên đã có trình độ ghi nhớ một số yếu tố.

Cú pháp ngôn ngữ

Như đã đề cập, mã này khá dễ đọc và đơn giản. Python có các lệnh tuần tự được thực thi chính xác. Về nguyên tắc, các toán tử được sử dụng sẽ không khó ngay cả với những người mới bắt đầu. Đây là điều làm cho Python trở nên khác biệt. Cú pháp của nó rất dễ dàng và đơn giản.

Các toán tử truyền thống:

  • Khi đặt điều kiện, bạn nên sử dụng cấu trúc if-else. Nếu có quá nhiều dòng như vậy, bạn có thể nhập lệnh elif.
  • Lớp học là để hiểu lớp học.
  • Một trong những toán tử đơn giản là pass. Nó không làm gì cả, phù hợp với các khối trống.
  • Các lệnh tuần hoàn là while và for.
  • Hàm, phương thức và trình tạo được xác định nhờ def.

Ngoài các từ đơn lẻ, ngôn ngữ lập trình Python cho phép bạn sử dụng các biểu thức làm toán tử. Bằng cách sử dụng chuỗi chuỗi, bạn có thể giảm số lượng lệnh và dấu ngoặc đơn riêng biệt. Cái gọi là tính toán lười biếng cũng được sử dụng, tức là những tính toán chỉ được thực hiện khi điều kiện yêu cầu. Chúng bao gồm và và hoặc.

Quá trình viết chương trình

Trình thông dịch hoạt động theo một cơ chế duy nhất: khi bạn viết một dòng (sau đó bạn nhấn “Enter”), nó sẽ được thực thi ngay lập tức và một người có thể thấy một số kết quả. Điều này sẽ hữu ích và khá thuận tiện cho người mới bắt đầu hoặc những người muốn thử nghiệm một đoạn mã nhỏ. Trong môi trường được biên dịch, trước tiên bạn phải viết toàn bộ chương trình, sau đó mới chạy nó và kiểm tra lỗi.

Ngôn ngữ lập trình Python (dành cho người mới bắt đầu, như đã nói rõ, ngôn ngữ này lý tưởng) trong hệ điều hành Linux cho phép bạn làm việc trực tiếp trong chính bảng điều khiển. Bạn nên viết tên mã Python bằng tiếng Anh trên dòng lệnh. Sẽ không khó để tạo chương trình đầu tiên của bạn. Trước hết, cần lưu ý rằng trình thông dịch có thể được sử dụng ở đây như một máy tính. Vì các chuyên gia trẻ và mới làm quen thường không thoải mái với cú pháp, bạn có thể viết thuật toán theo cách này:

Sau mỗi dòng bạn phải gõ “Enter”. Câu trả lời sẽ được hiển thị ngay sau khi bạn nhấp vào nó.

Dữ liệu được Python sử dụng

Dữ liệu mà máy tính (và ngôn ngữ lập trình) sử dụng có nhiều loại và điều này khá rõ ràng. Các số có thể là phân số, số nguyên, có thể gồm nhiều chữ số hoặc có thể khá đồ sộ do phần phân số. Để giúp thông dịch viên làm việc với họ dễ dàng hơn và hiểu được những gì mình đang giải quyết, cần chỉ định một loại cụ thể. Hơn nữa, các con số cần phải vừa với ô nhớ được phân bổ.

Các kiểu dữ liệu phổ biến nhất được ngôn ngữ lập trình Python sử dụng là:

  • Số nguyên. Chúng ta đang nói về các số nguyên có cả giá trị âm và dương. Zero cũng được bao gồm trong loại này.
  • Để trình thông dịch hiểu rằng nó đang làm việc với các phần phân số, kiểu này phải được đặt thành dấu phẩy động. Theo quy định, nó được sử dụng khi sử dụng các số có điểm khác nhau. Cần nhớ rằng khi viết chương trình, bạn cần tuân theo ký hiệu “3,25” và không sử dụng dấu phẩy “3,25”.
  • Trong trường hợp thêm chuỗi, ngôn ngữ lập trình Python cho phép bạn thêm loại chuỗi. Thông thường các từ hoặc cụm từ được đặt dưới dạng đơn hoặc

Nhược điểm và ưu điểm

Trong vài thập kỷ qua, mọi người quan tâm nhiều hơn đến việc dành nhiều thời gian hơn để làm chủ dữ liệu và dành ít thời gian hơn cho việc xử lý dữ liệu bằng máy tính. Ngôn ngữ chỉ có những điều tích cực là mã cao nhất.

Python hầu như không có nhược điểm. Nhược điểm nghiêm trọng duy nhất là sự chậm trễ trong việc thực hiện thuật toán. Đúng, nếu bạn so sánh nó với “C” hoặc “Java”, thì nói thẳng ra thì nó là một con rùa. Điều này được giải thích bởi thực tế là đây

Nhà phát triển đảm bảo bổ sung những thứ tốt nhất vào Python. Vì vậy, khi sử dụng, bạn có thể nhận thấy nó đã hấp thụ những tính năng tốt nhất của các ngôn ngữ lập trình cao hơn khác.

Trong trường hợp ý tưởng mà người phiên dịch triển khai không ấn tượng thì có thể hiểu được điều này gần như ngay lập tức sau khi viết vài chục dòng. Nếu chương trình có giá trị thì phần quan trọng có thể được cải thiện bất cứ lúc nào.

Hiện tại, có nhiều nhóm lập trình viên đang nỗ lực cải thiện Python, vì vậy việc mã viết bằng C++ sẽ tốt hơn mã được viết bằng Python không phải là sự thật.

Phiên bản nào tốt hơn để làm việc với?

Ngày nay, hai phiên bản của hệ thống cú pháp như ngôn ngữ Python được sử dụng rộng rãi. Đối với người mới bắt đầu, việc lựa chọn giữa chúng sẽ khá khó khăn. Cần lưu ý rằng 3.x vẫn đang được phát triển (mặc dù đã được phát hành rộng rãi), trong khi 2.x là phiên bản hoàn chỉnh. Nhiều người khuyên nên sử dụng 2.7.8 vì nó thực tế không bị lag hay sập. Không có thay đổi căn bản nào trong phiên bản 3.x, vì vậy bạn có thể chuyển mã của mình sang môi trường lập trình có bản cập nhật bất kỳ lúc nào. Để tải xuống chương trình cần thiết, bạn nên truy cập trang web chính thức, chọn hệ điều hành của mình và đợi cho đến khi quá trình tải xuống hoàn tất.

Ngôn ngữ thông dịch không được biên dịch thành mã máy: các hướng dẫn được thực hiện đơn giản khi chương trình tiến triển.

Ưu điểm của ngôn ngữ thông dịch so với ngôn ngữ biên dịch:

  • Đa nền tảng (Bạn không cần phải biên dịch chương trình cho mọi thứ. Sau khi viết, mã sẽ hoạt động trên mọi thứ).
  • Gõ động (các biến tự xác định loại mong muốn).
  • Suy ngẫm và xem xét nội tâm (khả năng tự sửa đổi của chương trình).
  • Và nhiều hơn thế nữa sẽ là thừa trong bài viết này.

Vâng, những nhược điểm:

  • Năng suất thấp hơn (đôi khi nhiều).
  • Sự cần thiết của một chương trình - một thông dịch viên.

Chà, những ưu điểm của Python 3:

  • Cú pháp đơn giản và đẹp mắt.
  • Một số lượng lớn các chức năng tích hợp và có sẵn.
  • Do tính phổ biến của nó nên có rất nhiều thông tin có sẵn.

Chà, chúng ta đã tìm hiểu ngắn gọn về Python là gì và các tính năng đặc biệt của nó.

Cú pháp

Mặc dù bây giờ chúng tôi sẽ hiển thị các toán tử và công trình mà bạn có thể không biết, nhưng để tìm hiểu thêm, tốt hơn hết bạn nên biết trước về chúng.

Vì vậy, cú pháp Python cực kỳ đơn giản và nằm gọn trong một đoạn văn nhỏ:

  • Cuối dòng - kết thúc hướng dẫn.
  • Các hướng dẫn lồng nhau được phân tách khỏi các hướng dẫn chính bằng cách thụt lề, tức là. số lượng khác nhau của chúng.
  • Các lệnh lồng nhau luôn được viết sau lệnh chính, được phân tách bằng dấu hai chấm.

Dưới đây là một ví dụ về tất cả những điều trên:

print("Xin chào, tôi là Python!") # xuất chuỗi Xin chào, tôi là Python! nếu 3,14< 1592: # условный оператор (будет рассмотрен в след. уроках) print("good") # и опять выводим сообщение print("work") # и еще

Vâng, một vài trường hợp đặc biệt:

  • Bạn có thể viết nhiều hướng dẫn trên một dòng. Tuy nhiên, điều này làm giảm khả năng đọc:

    x = 1,14; y = 2,0014; in(x + y)

    x = 1,14; y = 2,0014 ; in (x + y)

  • Bạn có thể viết một lệnh trên nhiều dòng. Để làm điều này, bạn cần đặt nó trong một cặp dấu ngoặc tròn, vuông hoặc cong:

    nếu (5 > 1 và 1< 2 and 8 == 8 and "good" != "bad"): print("it is true")

Bây giờ hãy viết chương trình đầu tiên của chúng ta!

Chương trình đầu tiên:

Để viết chương trình bằng Python IDLE bạn cần:

  1. Mở Python IDLE.
  2. Chọn Tệp -> Tệp mới.
  3. Viết chương trình (mã bên dưới).
  4. Lưu Ctrl + s.
  5. Nhấn F5 để chạy.

Đầu tiên, chúng ta sẽ viết và chạy mã bên dưới, sau đó phân tích nó:

s = input("Tên bạn là gì?") print("Xin chào, ", s,"! Chào mừng đến với thế giới khám phá! Chào mừng đến với Python!")

Ở dòng này, biến s được gán giá trị của hàm input() với tham số "Tên bạn là gì?\n" . Nếu bạn không hiểu mọi thứ, đừng lo lắng, mọi thứ sẽ được giải thích chi tiết trong các bài viết sau.

Hiện tại, điều quan trọng là phải hiểu rằng hàm input() nhận chuỗi được nhập từ bàn phím, tức là. là toán tử đầu vào và s nhận giá trị của input() . Chúng ta thấy rằng lệnh nằm trên một dòng theo quy tắc của ngôn ngữ Python. Nhân tiện, ký tự "\n" là ký tự đặc biệt và biểu thị một dòng mới.

print("Xin chào, ", s,"! Chào mừng đến với thế giới khám phá! Chào mừng đến với Python!")

print("Xin chào", s, "! Chào mừng đến với thế giới khám phá! Chào mừng đến với Python!")

Trên dòng này chúng ta chỉ có hàm print(), đây là toán tử đầu ra trong Python. Như chúng ta có thể thấy, hàm có nhiều tham số khác nhau cần được xuất ra (chúng được biểu thị bằng dấu phẩy).

Chúng ta hãy xem xét một hoạt động chương trình điển hình.