zoukankan      html  css  js  c++  java
  • python基础之编写带参数的程式

    第一种方法:sys.argv。获取的是参数列表。在使用过程中,最好先用 len(sys.argv) 判断参数的个数,再用sys.argv[0]下标的方式获取参数,获取的参数类型都是str

    import sys
    
    
    if __name__ == '__main__':
        print(sys.argv)

    sys.argv返回的是参数列表,第一个参数是当前py文件的绝对路径,后面的参数就是自己传递的参数内容。

    第二种方法:argparse。此方法可以帮助生成帮助文档usage,并且可以规定参数类型,以及帮助不符合规定的参数报错。

    先看一个例子:

    #!/usr/bin/env python
    # _*_ coding: UTF-8 _*_
    """=================================================
    @Project -> File    : paramter_re.py
    @IDE     : PyCharm
    @Author  : zihan
    @Date    : 2021/12/23 11:06
    @Desc    :
    ================================================="""
    import argparse
    
    
    if __name__ == '__main__':
        parser = argparse.ArgumentParser()  # 创建ArgumentParser对象
        # 默认参数是一个str
        # parser.add_argument('integers')
        # 必须传入整型数据,否则报错paramter_re.py: error: argument integers: invalid int value: 'a'
        # parser.add_argument('integers', type=int)
        # usage 提示变为N -- usage: paramter_re.py [-h] N
        # parser.add_argument('integers', metavar='N', type=int)
        # 参数为-h时会把help的信息提示给N参数
        # parser.add_argument('integers', metavar='N', type=int, help='It must be a integer')
        # 参数是一个列表,可以是1个或多个整数,传参的话用空格隔开就好,会自动判断多少个整数然后生成整数列表
        # 如果有两个argument都是整数列表的话,会将最后一个整数给到第二个参数
        # parser.add_argument('integers', metavar='N', type=int, nargs='+', help='It must be a integer list')
        # 加了-代表是可选参数,default代表默认是1
        parser.add_argument('-integers', metavar='N', type=int, nargs='+', default=1, help='It must be a integer list')
        args = parser.parse_args()
        print(type(args.integers))
        print(args.integers)
        parser.print_help()

    输出:

    <class 'int'>
    1
    usage: paramter_re.py [-h] [-integers N [N ...]]
    
    optional arguments:
      -h, --help           show this help message and exit
      -integers N [N ...]  It must be a integer list

    如果带了'-'的话,表示是可选参数,如果要传值的话就必须是 -integers 1 ,如果没有带'-'表示是必须的参数,可以直接传值1。

  • 相关阅读:
    error MSB8031(将vs2010的工程用vs2013打开时出的错)
    MFC如何使控件大小随着对话框大小自动调整
    基于MFC对话框程序中添加菜单栏 (CMenu)
    mfc改变对话框窗口大小
    MFC设置对话框大小
    uart与usart区别
    uart接口介绍和认识
    USB引脚属性
    使用百度云服务器BCC搭建网站,过程记录
    linux下文件的复制、移动与删除命令为:cp,mv,rm
  • 原文地址:https://www.cnblogs.com/smart-zihan/p/15727116.html
Copyright © 2011-2022 走看看