Hướng dẫn how do you create a function from a table in python? - làm thế nào để bạn tạo một hàm từ một bảng trong python?

Cách sử dụng chức năng Tabulation để tạo các bảng được định dạng độc đáo trong Python

Ảnh của Fotis Fotopoulos trên unplash

Có thể nhanh chóng tổ chức dữ liệu của chúng tôi thành một định dạng dễ đọc hơn, chẳng hạn như khi dữ liệu gây tranh cãi, có thể cực kỳ hữu ích để phân tích dữ liệu và lập kế hoạch cho các bước tiếp theo. Python cung cấp khả năng dễ dàng biến các loại dữ liệu bảng nhất định thành các bảng văn bản đơn giản được định dạng độc đáo và đó là chức năng bảng.tabulate function.

Cài đặt bảng

Trước tiên chúng tôi cài đặt thư viện Tabulation bằng cách cài đặt PIP trong dòng lệnh:tabulate library using pip install in the command line:

pip install tabulate

Nhập chức năng bảng

Sau đó, chúng tôi nhập chức năng Tabulation từ thư viện Tabulation trong mã của chúng tôi:tabulate function from the tabulate library in our code:

from tabulate import tabulate

Và bây giờ chúng tôi đã sẵn sàng để sử dụng chức năng Tabulation!tabulate function!

Các loại dữ liệu bảng được hỗ trợ bởi Tabulation

Hàm Tabulation có thể chuyển đổi bất kỳ điều nào sau đây thành một bảng văn bản đơn giản dễ đọc: (từ tài liệu Tabulation)tabulate function can transform any of the following into an easy to read plain-text table: (from the tabulate documentation)

  • Danh sách danh sách hoặc một số khác của Iterables
  • Danh sách hoặc một điều khác có thể đi được của Dicts (phím là cột)
  • Dict of Iterables (phím làm cột)
  • Mảng numpy hai chiều
  • Mảng bản ghi Numpy (tên dưới dạng cột)
  • pandas.DataFrame

Danh sách danh sách

Ví dụ: nếu chúng ta có danh sách danh sách sau:

table = [['First Name', 'Last Name', 'Age'], ['John', 'Smith', 39], ['Mary', 'Jane', 25], ['Jennifer', 'Doe', 28]]

Chúng ta có thể biến nó thành một bảng văn bản đơn giản dễ đọc hơn bằng cách sử dụng hàm bảng:tabulate function:

print(tabulate(table))

Vì danh sách đầu tiên trong danh sách danh sách chứa tên của các cột là các phần tử của nó, chúng ta có thể đặt nó thành tên cột hoặc tên tiêu đề bằng cách truyền ‘firstrow, làm đối số cho tham số tiêu đề:headers parameter:

print(tabulate(table, headers='firstrow'))

Hàm Tabulation cũng chứa tham số bảng, cho phép chúng tôi cải thiện sự xuất hiện của bảng của chúng tôi bằng cách sử dụng giả đồ giả:tabulate function also contains a tablefmt parameter, which allows us to improve the appearance of our table using pseudo-graphics:

print(tabulate(table, headers='firstrow', tablefmt='grid'))

Tôi thích sử dụng đối số ‘Fancy_Grid cho bảng điều khiển:tablefmt:

print(tabulate(table, headers='firstrow', tablefmt='fancy_grid'))

Từ điển của Iterables

Chúng ta có thể tạo cùng một bảng ở trên bằng cách sử dụng từ điển:

info = {'First Name': ['John', 'Mary', 'Jennifer'], 'Last Name': ['Smith', 'Jane', 'Doe'], 'Age': [39, 25, 28]}

Trong trường hợp của một từ điển, các phím sẽ là các tiêu đề cột và các giá trị sẽ là các phần tử của các cột đó. Chúng tôi chỉ định rằng các phím sẽ là các tiêu đề bằng cách truyền ‘phím, làm đối số cho tham số tiêu đề:keys will be the column headers, and the values will be the elements of those columns. We specify that the keys will be the headers by passing ‘keys’ as the argument for the headers parameter:

________số 8

Và tất nhiên chúng ta có thể sử dụng tham số bảng để cải thiện sự xuất hiện của bảng:tablefmt parameter to improve the table’s appearance:

print(tabulate(info, headers='keys', tablefmt='fancy_grid'))

thêm một chỉ mục

Chúng tôi cũng có thể thêm một chỉ mục vào bảng của mình với tham số ShowIndex:index to our table with the showindex parameter:

Chúng ta có thể thêm một chỉ mục tùy chỉnh bằng cách chuyển trong một tham số ShowIndex. Ví dụ: nếu chúng ta muốn chỉ mục bắt đầu ở mức 1, chúng ta có thể chuyển trong một đối tượng phạm vi như đối số:showindex parameter. For example, if we want the index to start at 1, we can pass in a range object as the argument:

giá trị bị mất

Nếu chúng tôi xóa ‘Jennifer, khỏi từ điển thông tin trên, bảng của chúng tôi sẽ chứa một trường trống:info dictionary, our table will contain an empty field:

from tabulate import tabulate0

Nếu có bất kỳ giá trị còn thiếu nào trong bảng của chúng tôi, chúng tôi có thể chọn những gì cần điền chúng bằng cách sử dụng tham số còn thiếu. Giá trị mặc định cho thiếu là một chuỗi trống. Nếu chúng ta thay đổi nó thành N/A, thì đây là những gì mà bảng của chúng ta sẽ trông như thế nào:missing values in our table, we can choose what to fill them in with using the missingval parameter. The default value for missingval is an empty string. If we change it to ‘N/A’, this is what what our table will look like:

from tabulate import tabulate1

Tôi hy vọng hướng dẫn này về cách dễ dàng tạo các bảng được định dạng độc đáo bằng cách sử dụng chức năng Tabulation là hữu ích. Cảm ơn bạn đã đọc!

8. Chức năng và bảng#Functions and Tables#

Chúng tôi đang xây dựng một bản kiểm kê các kỹ thuật hữu ích để xác định các mẫu và chủ đề trong một dữ liệu được đặt bằng cách sử dụng các chức năng đã có sẵn trong Python. Bây giờ chúng tôi sẽ khám phá một tính năng cốt lõi của ngôn ngữ lập trình Python: Định nghĩa chức năng.

Chúng tôi đã sử dụng các chức năng rộng rãi đã có trong văn bản này, nhưng không bao giờ xác định được một chức năng của chính chúng tôi. Mục đích của việc xác định hàm là đặt tên cho một quy trình tính toán có thể được áp dụng nhiều lần. Có nhiều tình huống trong tính toán yêu cầu tính toán lặp đi lặp lại. Ví dụ, thường là trường hợp chúng tôi muốn thực hiện cùng một thao tác trên mọi giá trị trong một cột của bảng.

Xác định một chức năng

Định nghĩa của hàm table = [['First Name', 'Last Name', 'Age'], ['John', 'Smith', 39], ['Mary', 'Jane', 25], ['Jennifer', 'Doe', 28]]6 bên dưới chỉ đơn giản là tăng gấp đôi số.

from tabulate import tabulate2

Chúng tôi bắt đầu bất kỳ định nghĩa chức năng bằng cách viết table = [['First Name', 'Last Name', 'Age'], ['John', 'Smith', 39], ['Mary', 'Jane', 25], ['Jennifer', 'Doe', 28]]7. Dưới đây là sự cố của các phần khác (cú pháp) của hàm nhỏ này:

Khi chúng tôi chạy ô ở trên, không có số cụ thể nào được nhân đôi và mã bên trong phần thân của table = [['First Name', 'Last Name', 'Age'], ['John', 'Smith', 39], ['Mary', 'Jane', 25], ['Jennifer', 'Doe', 28]]6 chưa được đánh giá. Về mặt này, chức năng của chúng tôi tương tự như một công thức. Mỗi lần chúng tôi làm theo các hướng dẫn trong một công thức, chúng tôi cần bắt đầu với các thành phần. Mỗi lần chúng tôi muốn sử dụng chức năng của mình để tăng gấp đôi một số, chúng tôi cần chỉ định một số.

Chúng ta có thể gọi table = [['First Name', 'Last Name', 'Age'], ['John', 'Smith', 39], ['Mary', 'Jane', 25], ['Jennifer', 'Doe', 28]]6 giống hệt như cách chúng ta gọi là các chức năng khác. Mỗi lần chúng tôi làm điều đó, mã trong cơ thể được thực thi, với giá trị của đối số với tên print(tabulate(table))0.

Hai biểu thức ở trên đều là biểu thức gọi. Trong phần thứ hai, giá trị của biểu thức print(tabulate(table))1 được tính toán và sau đó được chuyển làm đối số có tên print(tabulate(table))0 cho hàm table = [['First Name', 'Last Name', 'Age'], ['John', 'Smith', 39], ['Mary', 'Jane', 25], ['Jennifer', 'Doe', 28]]6. Mỗi cuộc gọi Expresson dẫn đến cơ thể của table = [['First Name', 'Last Name', 'Age'], ['John', 'Smith', 39], ['Mary', 'Jane', 25], ['Jennifer', 'Doe', 28]]6 được thực thi, nhưng với giá trị khác nhau là print(tabulate(table))0.

Cơ thể của table = [['First Name', 'Last Name', 'Age'], ['John', 'Smith', 39], ['Mary', 'Jane', 25], ['Jennifer', 'Doe', 28]]6 chỉ có một dòng duy nhất:

print(tabulate(table))7

Thực hiện câu lệnh print(tabulate(table))8 này hoàn thành việc thực thi hàm table = [['First Name', 'Last Name', 'Age'], ['John', 'Smith', 39], ['Mary', 'Jane', 25], ['Jennifer', 'Doe', 28]]6 cơ thể và tính toán giá trị của biểu thức cuộc gọi.

Đối số của table = [['First Name', 'Last Name', 'Age'], ['John', 'Smith', 39], ['Mary', 'Jane', 25], ['Jennifer', 'Doe', 28]]6 có thể là bất kỳ biểu thức nào, miễn là giá trị của nó là một số. Ví dụ, nó có thể là một cái tên. Hàm table = [['First Name', 'Last Name', 'Age'], ['John', 'Smith', 39], ['Mary', 'Jane', 25], ['Jennifer', 'Doe', 28]]6 không biết hoặc quan tâm đến cách tính toán hoặc lưu trữ đối số của nó; Công việc duy nhất của nó là thực hiện cơ thể của chính mình bằng cách sử dụng các giá trị của các đối số được truyền cho nó.

from tabulate import tabulate3

Đối số cũng có thể là bất kỳ giá trị nào có thể được nhân đôi. Ví dụ, toàn bộ một mảng số có thể được truyền như một đối số cho table = [['First Name', 'Last Name', 'Age'], ['John', 'Smith', 39], ['Mary', 'Jane', 25], ['Jennifer', 'Doe', 28]]6 và kết quả sẽ là một mảng khác.

from tabulate import tabulate4

Tuy nhiên, các tên được xác định bên trong một hàm, bao gồm các đối số như ____ ____ 26 ____ print(tabulate(table))0, chỉ có một sự tồn tại thoáng qua. Chúng chỉ được xác định trong khi chức năng được gọi và chúng chỉ có thể truy cập bên trong phần thân của hàm. Chúng ta có thể đề cập đến print(tabulate(table))0 bên ngoài cơ thể của table = [['First Name', 'Last Name', 'Age'], ['John', 'Smith', 39], ['Mary', 'Jane', 25], ['Jennifer', 'Doe', 28]]6. Thuật ngữ kỹ thuật là print(tabulate(table))0 có phạm vi địa phương.

Do đó, tên print(tabulate(table))0 được nhận ra bên ngoài cơ thể của chức năng, mặc dù chúng tôi đã gọi table = [['First Name', 'Last Name', 'Age'], ['John', 'Smith', 39], ['Mary', 'Jane', 25], ['Jennifer', 'Doe', 28]]6 trong các ô trên.

from tabulate import tabulate5

Docstrings. Mặc dù table = [['First Name', 'Last Name', 'Age'], ['John', 'Smith', 39], ['Mary', 'Jane', 25], ['Jennifer', 'Doe', 28]]6 tương đối dễ hiểu, nhiều chức năng thực hiện các nhiệm vụ phức tạp và rất khó sử dụng mà không cần giải thích. . Trong Python, điều này được gọi là một tài liệu - một mô tả về hành vi và kỳ vọng của nó về các lập luận của nó. DocString cũng có thể hiển thị các cuộc gọi ví dụ cho chức năng, trong đó cuộc gọi được đi trước bởi print(tabulate(table, headers='firstrow', tablefmt='grid'))1. Though table = [['First Name', 'Last Name', 'Age'], ['John', 'Smith', 39], ['Mary', 'Jane', 25], ['Jennifer', 'Doe', 28]]6 is relatively easy to understand, many functions perform complicated tasks and are difficult to use without explanation. (You may have discovered this yourself!) Therefore, a well-composed function has a name that evokes its behavior, as well as documentation. In Python, this is called a docstring — a description of its behavior and expectations about its arguments. The docstring can also show example calls to the function, where the call is preceded by print(tabulate(table, headers='firstrow', tablefmt='grid'))1.

Một DocString có thể là bất kỳ chuỗi nào, miễn là đó là điều đầu tiên trong cơ thể chức năng. DocStrings thường được xác định bằng cách sử dụng dấu ngoặc kép ba ở đầu và kết thúc, cho phép một chuỗi có thể kéo dài nhiều dòng. Dòng đầu tiên thường là một mô tả hoàn chỉnh nhưng ngắn về hàm, trong khi các dòng sau cung cấp hướng dẫn thêm cho người dùng tương lai của chức năng.

Dưới đây là một định nghĩa về một hàm gọi là print(tabulate(table, headers='firstrow', tablefmt='grid'))2 có hai đối số. Định nghĩa bao gồm một tài liệu.

from tabulate import tabulate6

Tương phản hàm print(tabulate(table, headers='firstrow', tablefmt='grid'))2 được xác định ở trên với hàm print(tabulate(table, headers='firstrow', tablefmt='grid'))4 được xác định dưới đây. Cái sau lấy một mảng làm đối số của nó và chuyển đổi tất cả các số trong mảng thành phần trăm trong tổng số các giá trị trong mảng. Các phần trăm đều được làm tròn đến hai vị trí thập phân, lần này thay thế print(tabulate(table, headers='firstrow', tablefmt='grid'))5 bằng print(tabulate(table, headers='firstrow', tablefmt='grid'))6 vì đối số là một mảng và không phải là một số.

from tabulate import tabulate7

Hàm print(tabulate(table, headers='firstrow', tablefmt='grid'))4 trả về một loạt các phần trăm cộng thêm tới 100 từ làm tròn.

from tabulate import tabulate8

from tabulate import tabulate9

Thật hữu ích khi hiểu các bước python thực hiện để thực hiện một hàm. Để tạo điều kiện cho điều này, chúng tôi đã đặt một định nghĩa chức năng và một cuộc gọi đến chức năng đó trong cùng một ô bên dưới.

table = [['First Name', 'Last Name', 'Age'], ['John', 'Smith', 39], ['Mary', 'Jane', 25], ['Jennifer', 'Doe', 28]]0

table = [['First Name', 'Last Name', 'Age'], ['John', 'Smith', 39], ['Mary', 'Jane', 25], ['Jennifer', 'Doe', 28]]1

Đây là những gì xảy ra khi chúng ta chạy di động đó:

Nhiều đối số

Có thể có nhiều cách để khái quát hóa một biểu thức hoặc khối mã và do đó một hàm có thể lấy nhiều đối số mà mỗi người xác định các khía cạnh khác nhau của kết quả. Ví dụ: hàm print(tabulate(table, headers='firstrow', tablefmt='grid'))4 mà chúng tôi đã xác định trước đó đã được làm tròn đến hai vị trí thập phân mỗi lần. Định nghĩa hai đối số sau đây cho phép các cuộc gọi khác nhau đến các số lượng khác nhau.

table = [['First Name', 'Last Name', 'Age'], ['John', 'Smith', 39], ['Mary', 'Jane', 25], ['Jennifer', 'Doe', 28]]2

table = [['First Name', 'Last Name', 'Age'], ['John', 'Smith', 39], ['Mary', 'Jane', 25], ['Jennifer', 'Doe', 28]]3

Tính linh hoạt của định nghĩa mới này có giá nhỏ: mỗi lần hàm được gọi, số lượng số thập phân phải được chỉ định. Các giá trị đối số mặc định cho phép một hàm được gọi với một số lượng đối số thay đổi; Bất kỳ đối số nào được chỉ định trong biểu thức cuộc gọi đều được đưa ra giá trị mặc định của nó, được nêu trong dòng đầu tiên của câu lệnh table = [['First Name', 'Last Name', 'Age'], ['John', 'Smith', 39], ['Mary', 'Jane', 25], ['Jennifer', 'Doe', 28]]7. Ví dụ: trong định nghĩa cuối cùng này của print(tabulate(table, headers='firstrow', tablefmt='grid'))4, đối số tùy chọn print(tabulate(table, headers='firstrow', tablefmt='fancy_grid'))1 được đưa ra giá trị mặc định là 2.

table = [['First Name', 'Last Name', 'Age'], ['John', 'Smith', 39], ['Mary', 'Jane', 25], ['Jennifer', 'Doe', 28]]4

table = [['First Name', 'Last Name', 'Age'], ['John', 'Smith', 39], ['Mary', 'Jane', 25], ['Jennifer', 'Doe', 28]]5

Lưu ý: Phương pháp

Các chức năng được gọi bằng cách đặt các biểu thức đối số trong ngoặc đơn sau tên hàm. Bất kỳ chức năng được xác định trong sự cô lập được gọi theo cách này. Bạn cũng đã thấy các ví dụ về các phương thức, giống như các hàm nhưng được gọi là sử dụng ký hiệu DOT, chẳng hạn như print(tabulate(table, headers='firstrow', tablefmt='fancy_grid'))2. Các chức năng mà bạn xác định sẽ luôn được gọi bằng cách sử dụng tên hàm trước, chuyển trong tất cả các đối số.

Làm thế nào để bạn tạo một chức năng trong Python?

Cú pháp cơ bản Để xác định một hàm trong Python trong Python, bạn xác định một hàm với từ khóa DEF, sau đó viết định danh chức năng (tên) theo sau là dấu ngoặc đơn và dấu hai chấm. Điều tiếp theo bạn phải làm là đảm bảo bạn thụt lề với một tab hoặc 4 khoảng trống, sau đó chỉ định những gì bạn muốn chức năng làm cho bạn.define a function with the def keyword, then write the function identifier (name) followed by parentheses and a colon. The next thing you have to do is make sure you indent with a tab or 4 spaces, and then specify what you want the function to do for you.

Làm cách nào để lấy dữ liệu từ một bảng trong Python?

Các bước để tìm nạp các hàng từ bảng cơ sở dữ liệu MySQL..
Kết nối với MySQL từ Python.....
Xác định truy vấn chọn SQL.....
Nhận đối tượng con trỏ từ kết nối.....
Thực thi truy vấn chọn bằng phương thức Execute ().....
Trích xuất tất cả các hàng từ một kết quả.....
Lặp lại mỗi hàng.....
Đóng đối tượng đối tượng con trỏ và đối tượng cơ sở dữ liệu ..

Làm thế nào để bạn tạo một danh sách từ một bảng trong Python?

Làm thế nào để dễ dàng tạo bảng trong Python..
Cài đặt bảng.Trước tiên chúng tôi cài đặt thư viện Tabulation bằng cách cài đặt PIP trong dòng lệnh: PIP Cài đặt Tabulation ..
Nhập chức năng bảng.....
Danh sách danh sách.....
Từ điển của Iterables.....
giá trị bị mất..

Chúng ta có thể tạo chức năng của riêng mình trong Python không?

Python cung cấp cho bạn khả năng tạo các chức năng tùy chỉnh của riêng bạn.Có một vài điều bạn cần hiểu, nhưng nó không khó để làm.Vậy hãy bắt đầu.Các chức năng tùy chỉnh là một cách tuyệt vời để gói mã có thể tái sử dụng độc đáo.. There are a few things you need to understand, but it's not that hard to do. So let's get started. Custom functions are a great way to nicely package reusable blocks of code.

Chủ đề