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。

  • 相关阅读:
    .NET Interop 工具集
    关于正弦波的算法
    Windows Phone 系列 本地数据存储
    Xaml cannot create an instance of “X”
    Windows Phone 系列 使用 MVVM绑定时无法获取当前值
    Windows Phone 系列 应用程序图标无法显示
    Windows Phone 系列 WPConnect无法上网的问题
    Windows Phone 系列 使用 Windows Phone 保存铃声任务
    WP7.5提交应用
    Windows Phone 系列 动态删除ObservableCollection
  • 原文地址:https://www.cnblogs.com/smart-zihan/p/15727116.html
Copyright © 2011-2022 走看看