Danh sách đối số dòng lệnh Python

Chúng ta sẽ sử dụng lập trình trong bài học này để cố gắng giải câu đố Cách lấy danh sách làm đối số dòng lệnh trong Python. Điều này được thể hiện bằng đoạn mã sau

>>> input = "[2,3,4,5]"
>>> map[float, input.strip['[]'].split[',']]
[2.0, 3.0, 4.0, 5.0]
>>> A = map[float, input.strip['[]'].split[',']]
>>> print[A, type[A]]
[[2.0, 3.0, 4.0, 5.0], ]

Sử dụng nhiều ví dụ, chúng ta đã học được cách giải quyết vấn đề Cách lấy danh sách làm đối số dòng lệnh trong Python

Chúng ta có thể chuyển danh sách dưới dạng đối số trong Python không?

Bạn có thể gửi bất kỳ loại dữ liệu nào của đối số tới một hàm [chuỗi, số, danh sách, từ điển, v.v. ] và nó sẽ được coi là cùng kiểu dữ liệu bên trong hàm

Làm cách nào để bạn chuyển các phần tử danh sách dưới dạng tham số trong Python?

Trong Python, bạn có thể giải nén list , tuple , dict [từ điển] và chuyển các phần tử của nó để hoạt động dưới dạng đối số bằng cách thêm * vào danh sách hoặc tuple và ** vào từ điển khi gọi hàm. 24-Jun-2019

Làm cách nào để bạn cung cấp cho tập lệnh Python một đầu vào dòng lệnh?

Để lấy đầu vào [hoặc đối số] từ dòng lệnh, cách đơn giản nhất là sử dụng một mô-đun mặc định khác của Python. hệ thống. Cụ thể, bạn quan tâm đến sys. argv, một danh sách các từ [được phân tách bằng dấu cách] được nhập vào cùng thời điểm bạn khởi chạy tập lệnh. 17-Mar-2017

Làm cách nào để chuyển danh sách đối tượng trong Python?

Chúng ta có thể tạo danh sách đối tượng trong Python bằng cách thêm các thể hiện của lớp vào danh sách. Bằng cách này, mọi chỉ mục trong danh sách có thể trỏ đến các thuộc tính và phương thức thể hiện của lớp và có thể truy cập chúng. Nếu bạn quan sát kỹ, một danh sách các đối tượng hoạt động giống như một mảng các cấu trúc trong C. 29-Dec-2020

* args Python là gì?

*args cho phép chúng tôi chuyển một số lượng đối số không phải từ khóa khác nhau cho hàm Python. Trong hàm, chúng ta nên sử dụng dấu hoa thị [ * ] trước tên tham số để truyền số lượng đối số thay đổi. 23-Mar-2022

Làm cách nào để gọi một hàm từ danh sách trong Python?

trong dòng. trình bao bọc def [func, * args]. Dấu * bên cạnh args có nghĩa là “lấy phần còn lại của các tham số đã cho và đặt chúng vào danh sách có tên là args“. Dấu * bên cạnh args ở đây có nghĩa là “lấy danh sách này có tên là args và 'unwrap' nó vào phần còn lại của các tham số. 03-May-2009

__ str __ trong Python là gì?

Python __str__[] Phương thức này trả về biểu diễn chuỗi của đối tượng. Phương thức này được gọi khi hàm print[] hoặc str[] được gọi trên một đối tượng. Phương thức này phải trả về đối tượng String. 03-Aug-2022

Làm thế nào để bạn truy cập một phần tử danh sách trong Python?

Python có một loại danh sách tích hợp tuyệt vời có tên là “danh sách”. Danh sách chữ được viết trong dấu ngoặc vuông [ ]. Danh sách hoạt động tương tự như chuỗi — sử dụng hàm len[] và dấu ngoặc vuông [ ] để truy cập dữ liệu, với phần tử đầu tiên ở chỉ mục 0. 08-Aug-2022

3 loại danh sách trong Python là gì?

Bộ sưu tập Python [Mảng]

  • Danh sách là một bộ sưu tập được sắp xếp theo thứ tự và có thể thay đổi. Cho phép các thành viên trùng lặp
  • Tuple là một bộ sưu tập được sắp xếp và không thể thay đổi
  • Set là một bộ sưu tập không có thứ tự, không thể thay đổi* và không được lập chỉ mục
  • Từ điển là một bộ sưu tập được sắp xếp theo thứ tự ** và có thể thay đổi

args có phải là một tuple không?

Nó nhận một bộ chứa các đối số vị trí ngoài danh sách tham số chính thức. Vì vậy, args là một tuple. 03-Jun-2012

Làm việc trong một dự án học máy có nghĩa là chúng ta cần thử nghiệm. Có một cách để định cấu hình tập lệnh của bạn một cách dễ dàng sẽ giúp bạn di chuyển nhanh hơn. Trong Python, chúng tôi có một cách để điều chỉnh mã từ một dòng lệnh. Trong hướng dẫn này, chúng ta sẽ xem cách chúng ta có thể tận dụng các đối số dòng lệnh cho tập lệnh Python để giúp bạn làm việc tốt hơn trong dự án máy học của mình

Sau khi kết thúc hướng dẫn này, bạn sẽ học

  • Tại sao chúng tôi muốn kiểm soát tập lệnh Python trong dòng lệnh
  • Làm thế nào chúng ta có thể làm việc trong một dòng lệnh một cách hiệu quả

Bắt đầu dự án của bạn với cuốn sách mới Python for Machine Learning của tôi, bao gồm các hướng dẫn từng bước và các tệp mã nguồn Python cho tất cả các ví dụ

Bắt đầu nào

Đối số dòng lệnh cho tập lệnh Python của bạn. Ảnh của insung yoon. Một số quyền được bảo lưu

Tổng quan

Hướng dẫn này gồm ba phần;

  • Chạy tập lệnh Python trong dòng lệnh
  • Làm việc trên dòng lệnh
  • Thay thế cho đối số dòng lệnh

Chạy Tập lệnh Python trong Dòng lệnh

Có nhiều cách để chạy tập lệnh Python. Ai đó có thể chạy nó như một phần của sổ ghi chép Jupyter. Ai đó có thể chạy nó trong IDE. Nhưng trong tất cả các nền tảng, luôn có thể chạy tập lệnh Python trong dòng lệnh. Trong Windows, bạn có dấu nhắc lệnh hoặc PowerShell [hoặc tốt hơn nữa là Windows Terminal]. Trong macOS hoặc Linux, bạn có Terminal hoặc xterm. Chạy tập lệnh Python trong dòng lệnh rất hiệu quả vì bạn có thể chuyển các tham số bổ sung vào tập lệnh

Đoạn script sau cho phép chúng ta chuyển các giá trị từ dòng lệnh vào Python

1

2

3

4

nhập sys

 

n = int[sys.argv[1]]

in[n+1]

Chúng tôi lưu vài dòng này vào một tệp và chạy nó trong dòng lệnh với một đối số

Vỏ bọc

1

2

dòng lệnh $ python. py 15

16

Sau đó, bạn sẽ thấy nó lấy đối số của chúng ta, chuyển đổi nó thành một số nguyên, thêm một số vào nó và in ra. Danh sách sys.argv chứa tên tập lệnh của chúng tôi và tất cả các đối số [tất cả các chuỗi], trong trường hợp trên, là ["commandline.py", "15"]

Khi bạn chạy một dòng lệnh với một tập hợp các đối số phức tạp hơn, sẽ mất một số nỗ lực để xử lý danh sách sys.argv. Do đó, Python đã cung cấp thư viện argparse để giúp. Điều này giả định kiểu GNU, có thể được giải thích bằng ví dụ sau

1

rsync -a -v --exclude="*. pyc" -B 1024 --ignore-hiện có 192. 168. 0. 3. /tmp/. /

Các đối số tùy chọn được giới thiệu bởi “-” hoặc “--“, trong đó một dấu gạch ngang sẽ mang một ký tự đơn “tùy chọn ngắn” [chẳng hạn như -a-B-v ở trên] và hai dấu gạch ngang dành cho nhiều ký tự “tùy chọn dài” . Các đối số tùy chọn có thể có các tham số bổ sung, chẳng hạn như trong ["commandline.py", "15"]1 hoặc ["commandline.py", "15"]2 các ["commandline.py", "15"]3 và ["commandline.py", "15"]4 là các tham số tương ứng với -B và sys.argv0. Ngoài ra, chúng tôi cũng có thể có các đối số bắt buộc mà chúng tôi chỉ đưa vào dòng lệnh. Phần ["commandline.py", "15"]7 và ["commandline.py", "15"]8 ở trên là ví dụ. Thứ tự của các đối số bắt buộc là quan trọng. Ví dụ: lệnh ["commandline.py", "15"]9 ở trên sẽ sao chép tệp từ ["commandline.py", "15"]7 sang ["commandline.py", "15"]8 thay vì ngược lại

Phần sau sao chép ví dụ trên bằng Python bằng argparse

1

2

3

4

5

6

7

8

9

10

11

12

13

14

nhập argparse

 

trình phân tích cú pháp = argparse. Trình phân tích đối số[mô tả=",

                                  formatter_class=argparse. ArgumentDefaultsHelpFormatter]

trình phân tích cú pháp. add_argument["-a", "--archive", action="store_true", help="archive mode"]

trình phân tích cú pháp. add_argument["-v", "--verbose", action="store_true", help="increase verbosity"]

trình phân tích cú pháp. add_argument["-B", "--block-size", help="checksum blocksize"]

trình phân tích cú pháp. add_argument["--bỏ qua đối số", action="store_true", help="skip files that exist"]

trình phân tích cú pháp. add_argument["--exclude", help="files to exclude"]

trình phân tích cú pháp. add_argument["src", help="Source location"]

trình phân tích cú pháp. add_argument["dest", help="Destination location"]

args = trình phân tích cú pháp. parse_args[]

config = vars[args]

in[config]

Nếu bạn chạy đoạn script trên, bạn sẽ thấy

1

2

3

$ python argparse_example. py

cách sử dụng. argparse_example. py [-h] [-a] [-v] [-B BLOCK_SIZE] [--bỏ qua tồn tại] [--loại trừ EXCLUDE] src dest

argparse_example. py. lỗi. các đối số sau đây là bắt buộc. src, đích

Điều này có nghĩa là bạn đã không cung cấp các đối số bắt buộc cho sys.argv2 và sys.argv3. Có lẽ lý do tốt nhất để sử dụng argparse là để nhận màn hình trợ giúp miễn phí nếu bạn cung cấp ____14 hoặc sys.argv5 làm đối số, như sau

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

$ python argparse_example. py --help

cách sử dụng. argparse_example. py [-h] [-a] [-v] [-B BLOCK_SIZE] [--bỏ qua tồn tại] [--loại trừ EXCLUDE] src dest

 

Chỉ là một ví dụ

 

đối số vị trí

src Vị trí nguồn

điểm đến                   Vị trí điểm đến

 

đối số tùy chọn

-h, --help            hiển thị thông báo trợ giúp này và thoát

-a, --archive         chế độ lưu trữ [mặc định. Sai]

-v, --verbose         tăng mức độ chi tiết [mặc định. Sai]

-B BLOCK_SIZE, --kích thước khối BLOCK_SIZE

kích thước khối tổng kiểm tra [mặc định. Không có]

--ignore-current    bỏ qua các tệp tồn tại [mặc định. Sai]

--exclude EXCLUDE     tệp cần loại trừ [mặc định. Không có]

Mặc dù tập lệnh không có gì thực, nhưng nếu bạn cung cấp các đối số theo yêu cầu, bạn sẽ thấy điều này

1

2

$ python argparse_example. py -a --ignore-hiện có 192. 168. 0. 1. /tmp/ /nhà

{'lưu trữ'. Đúng, 'dài dòng'. Sai, 'block_size'. Không, 'bỏ ​​qua_hiện tại'. Đúng, 'loại trừ'. Không, 'src'. '192. 168. 0. 1. /tmp/', 'đích'. '/Trang Chủ'}

Đối tượng trình phân tích cú pháp được tạo bởi sys.argv6 có phương thức sys.argv7 đọc sys.argv và trả về một đối tượng không gian tên. Đây là một đối tượng mang các thuộc tính và chúng ta có thể đọc chúng bằng cách sử dụng sys.argv9 chẳng hạn. Nhưng thông thường, sẽ dễ xử lý hơn nếu đó là từ điển Python. Do đó, chúng tôi có thể chuyển đổi nó thành một bằng cách sử dụng argparse0

Thông thường, đối với tất cả các đối số tùy chọn, chúng tôi cung cấp tùy chọn dài và đôi khi cũng có tùy chọn ngắn. Sau đó, chúng tôi có thể truy cập giá trị được cung cấp từ dòng lệnh bằng cách sử dụng tùy chọn dài làm khóa [với dấu gạch nối được thay thế bằng dấu gạch dưới hoặc tùy chọn ngắn một ký tự làm khóa nếu chúng tôi không có phiên bản dài]. "Các đối số vị trí" không phải là tùy chọn và tên của chúng được cung cấp trong hàm argparse1

Có nhiều loại lập luận. Đối với các đối số tùy chọn, đôi khi chúng tôi sử dụng chúng làm cờ Boolean, nhưng đôi khi chúng tôi mong đợi chúng mang lại một số dữ liệu. Ở phần trên, chúng tôi sử dụng argparse2 để đặt tùy chọn đó thành argparse3 theo mặc định và chuyển thành argparse4 nếu được chỉ định. Đối với tùy chọn khác, chẳng hạn như -B ở trên, theo mặc định, tùy chọn này sẽ có thêm dữ liệu theo sau tùy chọn đó

Chúng ta có thể yêu cầu thêm một đối số là một loại cụ thể. Ví dụ: trong tùy chọn -B ở trên, chúng ta có thể làm cho nó mong đợi dữ liệu số nguyên bằng cách thêm argparse7 như sau

1

trình phân tích cú pháp. add_argument["-B", "--block-size", type=int, help="checksum blocksize"]

Và nếu chúng tôi cung cấp sai loại, argparse sẽ giúp chấm dứt chương trình của chúng tôi với một thông báo lỗi đầy đủ thông tin

1

2

3

python argparse_example. py -a -B xin chào --ignore-hiện có 192. 168. 0. 1. /tmp/ /nhà

cách sử dụng. argparse_example. py [-h] [-a] [-v] [-B BLOCK_SIZE] [--bỏ qua tồn tại] [--loại trừ EXCLUDE] src dest

argparse_example. py. lỗi. đối số -B/--block-size. giá trị int không hợp lệ. 'xin chào'

Làm việc trên dòng lệnh

Trao quyền cho tập lệnh Python của bạn bằng các đối số dòng lệnh có thể đưa nó lên một cấp độ mới về khả năng sử dụng lại. Trước tiên, hãy xem một ví dụ đơn giản về việc khớp mô hình ARIMA với chuỗi thời gian GDP. Ngân hàng Thế giới thu thập dữ liệu GDP lịch sử từ nhiều quốc gia. Chúng ta có thể sử dụng gói argparse8 để đọc dữ liệu. Nếu chưa cài đặt, bạn có thể sử dụng argparse9 [hoặc -0 nếu bạn đã cài đặt Anaconda] để cài đặt gói

1

pip cài đặt pandas_datareader

Mã cho dữ liệu GDP mà chúng tôi sử dụng là -1;

1

2

3

từ pandas_datareader. wb nhập WorldBankReader

 

gdp = WorldBankReader["NY. GDP. MKTP. CN", "SE", bắt đầu=1960, end=2020].đọc[]

Sau đó, chúng ta có thể dọn dẹp DataFrame một chút bằng cách sử dụng các công cụ do gấu trúc cung cấp

1

2

3

4

5

6

7

8

9

nhập gấu trúc as pd

 

# Xoá tên quốc gia khỏi chỉ mục

gdp = gdp. cấp độ giảm[cấp độ=0, axis=0]

# Sắp xếp dữ liệu theo trình tự thời gian và đặt điểm dữ liệu vào cuối năm

gdp. chỉ mục = pd. to_datetime[gdp. chỉ mục]

gdp = gdp. sort_index[]. lấy mẫu lại["y"].lần cuối[]

# Chuyển đổi Khung dữ liệu gấu trúc thành Sê-ri gấu trúc

gdp = gdp["NY. GDP. MKTP. CN"]

Lắp mô hình ARIMA và sử dụng mô hình để dự đoán không khó. Trong phần sau, chúng tôi điều chỉnh nó bằng cách sử dụng 40 điểm dữ liệu đầu tiên và dự báo cho 3 điểm tiếp theo. Sau đó so sánh dự báo với thực tế về sai số tương đối

1

2

3

4

5

6

7

nhập mô hình thống kê. api as sm

 

mô hình = sm. tsa. ARIMA[endog=gdp . [:40], đặt hàng= . [1,1,1]].phù hợp[]

dự báo = mô hình. dự báo[các bước=3]

so sánh = pd. Khung dữ liệu[{"thực tế":gdp, "dự báo". dự báo}]. dropna[]

so sánh["lỗi liên quan"] =

Chủ Đề