运行环境: Python 3.6 32bit、Windows 10 PowerShell
几乎各个编程语言都有函数/方法参数的传递,总结起来就是在程序内部进行参数的传递。后来想能否直接将参数传递给程序,例如我们经常用于测试网络连通性的ping
程序。
ping 192.168.1.1 #检查我的电脑与路由器之间的连通性
ping www.baidu.com #检查外网连通性
其中IP和域名都是作为参数传递给程序ping
我们需要引入sys.argv
这个功能来实现,我们先看看sys.argv
在调用时返回什么内容。
import sys
print(sys.argv)
运行结果:
我们试着传递两个参数进我们编写好的程序,两个参数分别为a,b
。
运行结果
我们可以发现返回值是一个列表,并且列表中第一个参数是该py文件名,第二个是参数a
,第三个是参数b
。故我们可以直接把sys.argv当作一个列表来进行处理。
此时我们编写一个程序,传入参数为数字,求其平方和。
import sys
print('该程序名为:%s' % sys.argv[0])
print('传入参数为:%s' % str(sys.argv[1:]), end = ' ')
sum = 0
for i in sys.argv[1:]:
sum = sum + int(i) ** 2
print('其平方和为:%d' % sum)
运行结果