argv和raw_input()有什么区别?

argv和raw_input()有什么区别?它们的区别在于要求用户输入的位置不同。如果你想让用户在命令行输入你的参数,你应该使用argv .,如果你希望用户在脚本执行的过程中输入参数,那就就要用到raw_input() 。下面我们写一个可以接收参数的脚本,来具体认识一下argv和raw_input()。
argv和raw_input()有什么区别?
 

from sys import argv

script, first, second, third = argv

print "The script is called:", script

print "Your first variable is:", first

print "Your second variable is:", second

print "Your third variable is:", third

 

第一行代码中,我们用到一个 import 语句,这是将Python的功能模块加入你自己脚本的方法。Python 不会一下子将它所有的功能提供给你,而是让你需要什么就调用什么。这样可以让你的程序更加精简,而后面的程序员看到你的代码的时候,这些“import”语句可以作为提示,让他们明白你的代码用到了哪些功能。

 

argv 就是所谓的“参数变量”,它是一个非常标准的编程术语。在其他的编程语言里你也可以看到它。这个变量包含了你传递给 Python 的参数。

 

代码的第3行将 argv 进行“解包(unpack)”,与其将所有参数放到同一个变量下面,我们将每个参数赋予一个变量名: script, first, second, 以及 third。这也许看上去有些奇怪,不过”解包”可能是最好的描述方式了。它的含义很简单:“把argv中的东西解包,将所有的参数依次赋予左边的变量名”。

 

前面使用import让程序实现更多的功能,我们把import称为功能,它们的真正名称其实是模块。像下面的示例一样将你的脚本运行起来:

 

$ python ex13.py first 2nd 3rd

The script is called: ex13.py

Your first variable is: first

Your second variable is: 2nd

Your third variable is: 3rd

 

如果你每次输入的参数不一样,那你看到的输出结果也会略有不同:

 

$ python ex13.py stuff things that

The script is called: ex13.py

Your first variable is: stuff

Your second variable is: things

Your third variable is: that

$$

python ex13.py apple orange grapefruit

The script is called: ex13.py

Your first variable is: apple

Your second variable is: orange

Your third variable is: grapefruit

 

你可以将 first , 2nd , 和 3rd 替换成任意你喜欢的3个参数。如果你没有运行对,你可能会看到的错误信息:

 

$ python ex13.py first 2nd

Traceback (most recent call last):

File "ex13.py", line 3, in <module>

script, first, second, third = argv

ValueError: need more than 3 values to unpack
argv和raw_input()的区别就讲到这里了,大家都弄明白了吗?如果还有关于Python方面的学习疑问,欢迎大家加扣裙<60 61 15 02 7>一起交流学习,报名Python在线免费直播课程~