Python从入门到摔门(4):Python中 sys.argv[]的用法简明解释

python

sys.argv[]说白了就是一个从程序外部获取参数的桥梁,这个“外部”很关键,所以那些试图从代码来说明它作用的解释一直没看明白。因为我们从外部取得的参数可以是多个,所以获得的是一个列表(list),也就是说sys.argv其实可以看作是一个列表,所以才能用[]提取其中的元素。其第一个元素是程序本身,随后才依次是外部给予的参数。

  • 下面我们通过一个极简单的test.py程序的运行结果来说明它的用法。
1 #test.py
2 
3 import sys
4 a=sys.argv[0]
5 print(a)
  • 将test.py保存在c盘的根目录下。
在程序中找到 ‘运行’->点击->输入"cmd"->回车键 进入控制台命令窗口(如下图),先输入cd c:\

(作用是将命令路径改到c盘根目录),然后输入test.py运行我们刚刚写的程序:

TEST

得到的结果是C:\test.py,这就是0指代码(即此.py程序)本身的意思。

然后我们将代码中0改为1 :

a=sys.argv[1]

保存后,再从控制台窗口运行,这次我们加上一个参数,输入:test.py what

test

得到的结果就是我们输入的参数what,看到这里你是不是开始明白了呢。

那我们再把代码修改一下:

a=sys.argv[2:]

保存后,再从控制台窗台运行程序,这次多加几个参数,以空格隔开:

test.py a b c d e f

test

得到的结果为[‘b’, ’c’, ’d’, ’e’, ’f’]

应该大彻大悟了吧。Sys.argv[ ]其实就是一个列表,里边的项为用户输入的参数,关键就是要明白这参数是从程序外部输入的,而非代码本身的什么地方,要想看到它的效果就应该将程序保存了,从外部来运行程序并给出参数。

点赞关注.jpg

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏小夜博客

LNMP1.3 安装 fileinfo 组件

40090
来自专栏河湾欢儿的专栏

常用的dos命令

11520
来自专栏逸鹏说道

【开源】简单4步搞定QQ登录,无需什么代码功底【无语言界限】

说17号发超简单的教程就17号,qq核审通过后就封装了这个,现在放出来~~ 这个是我封装的一个开源项目:https://github.com/dunitian/...

27430
来自专栏有趣的django

10.socket网络编程

套接字工作流程 ? 先从服务器端说起。服务器端先初始化Socket,然后与端口绑定(bind),对端口进行监听(listen),调用accept阻塞,等待客户端...

40270
来自专栏林德熙的博客

git subtree pull 错误 Working tree has modifications

git subtree 是不错的东西,用于 git 管理子项目。 本文记录我遇到问题和翻译网上的答案。

17410
来自专栏ytkah

dedecms建的网站如何去掉/index.html

DEDECMS建立的网站,www.abc.com/index.html和www.abc.com两个都可以访问,而且两个页面都是一样的,这样就会造成重复页面,对搜...

37660
来自专栏吴裕超

atom编辑器启动后文件不能编辑的解决办法

今天更新了atom,并且安装了很多插件,突然发现所有页面不能编辑了,如图 ? 这个光标块会自动跳到单词后面,后来发现按一下键盘的字母a就变成正常光标了,至于原因...

28470
来自专栏Java后端技术

解决jetty7.0.pre5启动时报ClassNotFoundException: javax.interceptor.InvocationContext异常的问题

一.背景介绍:最近项目在使用maven命令行运行jetty服务器时出现ClassNotFoundException: javax.interceptor.Inv...

8110
来自专栏不想当开发的产品不是好测试

iTerm2连接远程-中文乱码问题

ssh 到Linux 服务器上查看一些文件时,中文乱码。 
这种情况一般是终端和服务器的字符集不匹配,MacOSX下默认的是utf8字符集。

50730
来自专栏维C果糖

史上最简单的 MySQL 教程(七)「中文数据问题」

由于计算机仅识别二进制数据,而且人类则更倾向于识别字符(符号),因此就需要一个二进制与字符的对应关系,也就是字符集。

39150

扫码关注云+社区

领取腾讯云代金券