Chương trình giai thừa trong Python sử dụng đối số dòng lệnh

Tham số đối số dòng lệnh Python là các đối số được trình bày trong trình bao dòng lệnh của hệ điều hành sau tên chương trình. Python có một số phương thức để xử lý các đối số này. Mô-đun sys chứa các phương thức và biến để thao tác nhiều khía cạnh của thời gian chạy Python. Mô-đun này cấp quyền truy cập vào một số biến và chức năng của trình thông dịch. hệ thống. argv, một cấu trúc danh sách cơ bản, là một trong những biến này

Có nhiều cách khác nhau để chương trình có thể chấp nhận đầu vào từ người dùng. Cách phổ biến trong Đối số dòng lệnh Python là phương thức input[]

Bắt đầu khóa học phát triển phần mềm miễn phí của bạn

Phát triển web, ngôn ngữ lập trình, kiểm thử phần mềm và những thứ khác

Gói phát triển phần mềm tất cả trong một[hơn 600 khóa học, hơn 50 dự án]

Giá
Xem khóa học

600+ Khóa học trực tuyến. hơn 50 dự án. Hơn 3000 giờ. Giấy chứng nhận có thể kiểm chứng. Truy cập Trọn đời
4. 6 [83.908 xếp hạng]

name=input["enter your name"]
print['Hey',name]
=== RESTART:C:/Users/hp/AppData/Local/Programs/Python/Python37-32/demo.py ===
enter your name John
Hey John

Một cách khác để truyền đầu vào cho chương trình là đối số dòng lệnh. Hầu hết mọi ngôn ngữ lập trình hiện đại đều hỗ trợ đối số dòng lệnh. Theo cách tương tự, python không hỗ trợ các đối số dòng lệnh. Đây là một tính năng rất quan trọng vì nó cho phép đầu vào động từ người dùng. Trong đối số dòng lệnh, đầu vào được cung cấp cho chương trình thông qua dấu nhắc lệnh chứ không phải tập lệnh python như phương thức input[] được hiển thị ở trên

Các tùy chọn khả dụng trong Đối số dòng lệnh

Python 3 hỗ trợ bốn cách khác nhau để xử lý đối số dòng lệnh

  1. mô-đun hệ thống
  2. mô-đun getopt
  3. mô-đun argparse

1. mô-đun hệ thống

Đây là phương pháp cơ bản và lâu đời nhất để xử lý các đối số dòng lệnh trong python. Nó có cách tiếp cận khá giống với thư viện C argc/argv để truy cập các đối số. mô-đun sys thực hiện các đối số dòng lệnh thông qua cấu trúc danh sách có tên sys. argv argv là cấu trúc danh sách bên trong chứa các đối số được truyền trong dấu nhắc lệnh

sys à tên mô-đun

argv à list để xử lý các đầu vào động từ người dùng

argv[0] à tên tệp python

argv[1] àargument 1

argv[2] à đối số 2

argv[3] à đối số 3

và như thế

bước

  1. Viết chương trình python
  2. Save the python program as .py extension
  3. Mở một dấu nhắc lệnh và thay đổi thư mục thành đường dẫn chương trình python
  4. Sử dụng lệnh dưới đây để thực hiện chương trình

py < tập tin python. py > < arg1 > < arg2 > < arg3 >

Ví dụ. bản demo. py 10 20 30 40 50

Mục đầu tiên trong danh sách argv tôi. e argv[0] là tên file python à trong trường hợp này là demo. py

argv[1] là đối số đầu tiên à 10

argv[2] là đối số thứ hai à 20

argv[3] là đối số thứ ba à 30, v.v.

Theo mặc định, kiểu của argv là “Chuỗi” vì vậy chúng tôi phải đánh máy theo yêu cầu của chúng tôi

Mã số.           

# Importing argv from sys module
from sys import argv
# type of argv
print['type of argv is :',type[argv]]
# first element is the file name
print['first argument of argv :',argv[0]]
# printing the complete argv list
print["argv list is :",argv]
# traversing through the list : method 1
for x in argv:
  print['Argument',x]
# traversing through the argv list : method 2
for i in range[len[argv]]:
  print['Argument',[i+1],'-->',argv[i]]

đầu ra

Tổng các số được truyền qua input[]

Mã số

sum_num=0
# getting input from the user
a=int[input['Enter value for a ']]
b=int[input['Enter value for b ']]
c=int[input['Enter value for c ']]
# calculating sum of numbers
sum_num+=a+b+c
# displaying sum of numbers
print["Sum of entered numbers is :",sum_num]

Đây là cách cơ bản để tính một số số do người dùng nhập vào. Các đối số trong chương trình được chấp nhận thông qua phương thức input[], sau đó được chuyển thành kiểu số nguyên vì input[] trả về dữ liệu kiểu chuỗi

đầu ra

Tính toán một số số được nhập thông qua dấu nhắc lệnh

Mã số

# importing argv from sys module
from sys import argv
sum_num=0
# traversing through the list elements skipping the first element[filename]
for i in range[1,len[argv]]:
    sum_num+=int[argv[i]]
print["sum of numbers entered is:",sum_num]

đầu ra

Giải trình. hệ thống. argv được nhập khẩu. Sau đó, vòng lặp for đang được sử dụng để duyệt qua danh sách argv để tính tổng các đối số dòng lệnh. Vì các đối số thuộc loại chuỗi, chúng là kiểu đầu tiên được chuyển thành kiểu số nguyên trước phép tính tổng. Kết quả sau đó được in như trong ảnh chụp màn hình ở trên

2. mô-đun getopt

Cách tiếp cận thứ hai trong python để triển khai các đối số dòng lệnh là sử dụng mô-đun getopt. Mô-đun getopt trong Python tương tự như mô-đun C getopt[] để phân tích các tham số dòng lệnh

mô-đun getopt cung cấp hai chức năng và một ngoại lệ để hỗ trợ phân tích cú pháp đối số dòng lệnh

getopt.getopt[args,UNIX options, [long_options or gnu options]]
args  arguments list to be parsed
unix options  “ho:v”
gnu options  long options parameter  ["help", "output=", "verbose"]

Mã số

# importing standard libraries
import getopt
import sys
# extracting command line arguments excluding file name
argv = sys.argv[1:]
# parsing the argument list
try:
     opts, args = getopt.getopt[argv, 'ho:v']
     print[opts]
     print[args]
except getopt.GetoptError:
     print['Something went wrong!']
     sys.exit[2]

đầu ra

Giải trình. Thư viện tiêu chuẩn được nhập khẩu. Mô-đun sys để nhận đối số dòng lệnh và mô-đun getopt để phân tích cú pháp đối số dòng lệnh. Trích xuất các đối số từ argv bằng cách loại trừ argv[0] i. tên tập tin điện tử. Phân tích đối số bằng getopt. getopt[]. Các đối số có giá trị tương ứng được lưu trữ trong hai biến có tên là opts và args

3. mô-đun argparse

Mô-đun argparse trong Python là cách ưa thích nhất để phân tích các đối số dòng lệnh vì nó cung cấp rất nhiều tùy chọn như đối số vị trí, giá trị mặc định cho đối số, thông báo trợ giúp, v.v.

Mã số

import argparse
parser = argparse.ArgumentParser[]
args = parser.parse_args[]

Mô-đun argparse đầu tiên được nhập. Sau đó, một đối tượng của argparse. ArgumentParser[] được tạo

Trong khi thực thi chương trình trên trên dấu nhắc lệnh, không có gì xảy ra khi chúng tôi không cung cấp bất kỳ đầu vào nào. Nhưng khi chúng tôi cung cấp tham số trợ giúp tùy chọn có đầu vào, chúng tôi nhận được đầu ra bên dưới

đầu ra

Có hai loại đối số được hỗ trợ bởi argparse

  1. đối số vị trí
  2. đối số tùy chọn

Mã số

# importing argparse module
import argparse
# creating parser object
parser = argparse.ArgumentParser[]
# adding positional arguments
parser.add_argument["num1",help='number 1']
parser.add_argument["num2",help='number 2']
parser.add_argument["op",help='operation']
args = parser.parse_args[]
# type cast the arguments as default is string type
n1=int[args.num1]
n2=int[args.num2]
print["first number",n1]
print["second number",n2]
result=None
if args.op == 'add':
    result = n1 + n2
elif args.op == 'sub':
    result = n1 - n2
elif args.op == 'mul':
    result = n1 * n2
elif args.op == 'div':
    result = n1 / n2
else :
     result = 'unsupported operation'
print["result of operation",args.op,'is :',result]

đầu ra

Các ví dụ về đối số dòng lệnh Python – Cách vượt qua

  • Ví dụ dưới đây cho thấy việc sử dụng phương thức argparse

Mã số

import argparse
parser = argparse.ArgumentParser []
parser.parse_args []

  • Bằng cách sử dụng phương thức argparse, chúng tôi đã chuyển và thêm các mô tả thông báo trợ giúp như sau

Mã số

# Importing argv from sys module
from sys import argv
# type of argv
print['type of argv is :',type[argv]]
# first element is the file name
print['first argument of argv :',argv[0]]
# printing the complete argv list
print["argv list is :",argv]
# traversing through the list : method 1
for x in argv:
  print['Argument',x]
# traversing through the argv list : method 2
for i in range[len[argv]]:
  print['Argument',[i+1],'-->',argv[i]]
0

  • Ví dụ dưới đây cho thấy định nghĩa các giá trị tùy chọn bằng cách sử dụng các đối số dòng lệnh như sau

Mã số

# Importing argv from sys module
from sys import argv
# type of argv
print['type of argv is :',type[argv]]
# first element is the file name
print['first argument of argv :',argv[0]]
# printing the complete argv list
print["argv list is :",argv]
# traversing through the list : method 1
for x in argv:
  print['Argument',x]
# traversing through the argv list : method 2
for i in range[len[argv]]:
  print['Argument',[i+1],'-->',argv[i]]
0

Phần kết luận

Đó là tất cả các cách khác nhau để đọc và phân tích đối số dòng lệnh trong python. Tùy thuộc vào người dùng để quyết định cái nào là tốt nhất cho các yêu cầu cụ thể của họ

Bài viết được đề xuất

Đây là hướng dẫn về Đối số dòng lệnh Python. Ở đây chúng tôi thảo luận về phần giới thiệu, tùy chọn và Cách truyền đối số dòng lệnh python với các ví dụ. Bạn cũng có thể xem qua các bài viết liên quan khác của chúng tôi để tìm hiểu thêm –

Chương trình giai thừa trong Python là gì?

Giai thừa của một số là tích của tất cả các số nguyên từ 1 đến số đó. Ví dụ, giai thừa của 6 là 1*2*3*4*5*6 = 720. . Giai thừa của một số bằng vòng lặp

Có toán tử giai thừa nào trong Python không?

factorial[] trong Python .

Làm thế nào để tìm giai thừa của một số trong C?

Chương trình thừa số sử dụng vòng lặp .
#include.
int chính []
int i,fact=1,số;
printf["Nhập một số. "];
scanf["%d",&số];
for[i=1;i

Chủ Đề