python位置参数ppt_argparse模块的位置参数和可选(必选)参数
argparse是python标准库中提供的用来解析命令行参数的模块,非常强大!在深入学习argparse模块之前,需要先搞清楚命令行位置参数和可选参数的概念。
位置参数
基于位置的参数,参数的出现不需要前缀(以 - 或 -- 开头的),而且是必须配置的参数。定义argparse模块的位置参数,参数名称不要有前缀(- 或 --),argparse模块使用这个前缀来判断是位置参数,还是可选参数。
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('echo')
args = parser.parse_args()
print(args.echo)
这个代码定义了一个位置参数echo,由于是必须出现的位置参数,程序后面在打印echo参数的值的时候,不需要判断是否配置了这个参数。因为如果没有配置,parser.parse_args()这个函数就会报错。
$ python3 arg.py
usage: arg.py [-h] echo
arg.py: error: the following arguments are required: echo
$ python3 arg.py abcde
abcde
$ python3 arg.py 'abcde 12345'
abcde 12345
$ python3 arg.py -h
usage: arg.py [-h] echo
positional arguments:
echo
optional arguments:
-h, --help show this help message and exit
如果参数中有空格,参数需要使用引号括起来。
位置参数在命令行中的出现和配置顺序,与代码中参数的定义顺序是对应的。如果定义了多个位置参数,命令行输入参数的时候,顺序要与多个参数的定位顺序保持一致!
位置参数在命令使用时,直接输入参数。
可选(必选)参数
凡是用 - 或者 -- 开头定义的命令行参数,都属于可选参数。
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('-s','--sn')
args = parser.parse_args()
if args.sn: print(args.sn)
else: print('no argument')
这里有一个约定俗成的惯例:单个字母只是用一个 - ,多个字母使用两个 - (--)。python也支持一个 - 后面跟多个字母,不过看起来有关怪异。上面的定义 -s 显然是 --sn 的简写。(Linux命令行参数风格)
我们也可以只定义 -s 简写,或者之定义 --sn 这种,代码直接去掉一个参数即可。在两者都有的情况下,后面的代码引用参数的值,需要使用 -- 后面的那个词。
$ python3 arg.py
no argument
$ python3 arg.py -s 123
123
$ python3 arg.py --sn abc
abc
其实,可选参数也可以变成必选参数!必选参数跟位置参数还不一样,必选参数的位置可以比较灵活。
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('-s', required=True)
parser.add_argument('-e','--echo')
args = parser.parse_args()
if args.s: print(args.s)
if args.echo: print(args.echo)
这段代码 -s 参数是必须参数,但是它出现的位置是灵活的。
$ python3 arg.py -h
usage: arg.py [-h] -s S [-e ECHO]
optional arguments:
-h, --help show this help message and exit
-s S
-e ECHO, --echo ECHO
$ python3 arg.py -s 123
123
$ python3 arg.py -s 123 -e abc
123
abc
$ python3 arg.py -e abc
usage: arg.py [-h] -s S [-e ECHO]
arg.py: error: the following arguments are required: -s
$ python3 arg.py -e abc -s 123
123
abc
-e 和 -s 出现的位置可以调换,而且 -s 必须要有。
由可选参数变化而来的必选参数,有的时候比位置固定的参数更好用。就是因为它必须出现,而且位置灵活。位置参数的位置是固定的。argparse模块功能非常强大,几乎你需要的关于命令行参数解析的功能,它都能提供。本文只是蜻蜓点水,仅仅介绍两个基本概念。
-- EOF --
python位置参数ppt_argparse模块的位置参数和可选(必选)参数相关推荐
- Python 3.X | 一文看懂不懵圈:位置参数(必选参数)、默认参数、可变参数、关键字参数、形参、实参...
Win 10+Python 3.6.3 不管是什么参数,它们身处环境是:函数(function).参数让函数如虎添翼,灵活.强大. 1.概念释义: def func(x, y=2, *arg, *, ...
- PowerShell的参数集,可选和必选参数,位置参数,参数值,通用参数之简介
参数集,即是powershell的语法, 可使用其中的一个参数集,各参数集的参数不能混用,若各参数集有公有参数,运行时只指定一个公有参数时,默认运行第一个含有该参数的参数集.如Get-EventLog ...
- python 函数参数 (必选参数、默认参数、可选参数、关键字参数)
默认参数增加 (x=None), if x: 能选择是否执行对x的操作 参考文章:python 函数参数(必选参数.默认参数.可选参数.关键字参数)
- python中可选参数是什么意思_【IT专家】python 函数参数(必选参数、默认参数、可选参数、关键字参数)...
本文由我司收集整编,推荐下载,如有疑问,请与我司联系 python 函数参数 ( 必选参数.默认参数.可选参数.关键字参数 ) 2015/09/01 30797 参考: liaoxuefeng/wik ...
- python中可选参数是什么意思_什么是python的必选参数
函数的必选参数,指的是函数调用的时候必须传入的参数 import math def cal (n): return n * n var = cal(2) print(var) # 4 上面的函数是计算 ...
- python 函数参数(必选参数、默认参数、可选参数、关键字参数)
参考: http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/0013747384493 ...
- python 函数教程:必选参数与默认参数
必选参数 位置参数须以正确的顺序传入函数.调用时的数量必须和声明时的一样. def power(x, n):s = 1while n > 0:n = n - 1s = s * xreturn s ...
- python函数参数之必选参数,默认参数,可变参数,关键字参数
Python的函数定义非常简单,但灵活度却非常大.除了正常定义的必选参数外,还可以使用默认参数.可变参数和关键字参数, 1 默认参数 定义形式:def calc(para1,para2=None):其 ...
- Python - 在定义函数时,为什么默认参数不能放在必选参数前面?
分享一个大牛的人工智能教程.零基础!通俗易懂!风趣幽默!希望你也加入到人工智能的队伍中来!请点击http://www.captainbed.net 我们尝试直接定义这样的函数,看看Python解释器会 ...
最新文章
- 数学知识--Levenberg-Marquardt算法浅谈
- oracle函数,oracle编写函数
- ueditor 1.4.3 JSP 配置
- 解决安装linux时未挂载文件而导致的重启失败
- DCASE三次挑战赛概览
- 关于递归和斐波那契数列
- java日期格式正则表达式_Java-日期 正则表达式
- 阶段3 1.Mybatis_06.使用Mybatis完成DAO层的开发_5 Mybatis中使用Dao实现类的执行过程分析-查询方法1...
- UOS LINUX的开发测试,从来没有编译过什么应用?
- WPE 过滤器 滤镜 用法
- 声事件识别之时域短时过零率
- Win 10 Edge不能上网,微软商店打不开的问题
- _itemmod_extract_enchant
- 开心网kaixin001状告kaixin,停用“开心网”名称,赔偿1000万元
- Cisco交换机产品线和主要产品--- 型号说明
- 华为鸿蒙源代码在哪里下载,华为鸿蒙正式开源!源码地址公布,对外开放下载...
- 小程序战局最新动态!这些你应该知道
- 对坐标的曲线积分求做功_曲线积分与曲面积分(前篇 曲线积分-坐标曲线积分-格林公式)...
- GAN学习总结一 GAN基本概念理解
- 计算机辅助审计技术实训心得体会,审计实训心得体会(精选3篇)
热门文章
- K8s——kubernetes集群中ceph集群使用【上】
- 黑客也看《人民的名义》:把手机卡扔马桶有 bug
- storm trident mysql,Storm Trident(一)官方Tutorial
- 如何判断Android app退后台、进前台
- iphone微信长按二维码识别不了
- 跨域请求(使用jsonp实现跨域请求)百度地图api证逆地址解析获取周边信息(pois)
- Portable Chrome 32/64
- 计算机网络基础知识满昌勇,-精选版《计算机网络》说课课件.ppt
- 编写程序实现乐手弹奏乐器。乐手可以弹奏不同的乐器从而发出不同的声音。可以弹奏的乐器包括二胡、钢琴和琵琶。
- 经典智力题:飞机加油问题