Learn Python The Hard Way学习(13) - 参数,解包,变量

本文详细解析了Python脚本如何通过参数接收外部输入,并介绍了如何利用import语句导入所需的功能模块。通过实例演示了解包参数的过程及运行结果的变化,同时提供了额外练习和实践代码,帮助读者深入理解Python脚本的参数处理与模块导入机制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

下面的练习我们将传递一个变量给脚本,你知道为什么你输入python ex13.py去执行ex13.py文件吗?在命令后面的ex13.py其实是一个“参数”,我们下面写一个能接受参数的脚本。
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功能库中导入功能的方法,不是导入所有的功能,而是导入你想导入的,这样能保持程序的简洁,方便其他程序员阅读。

argv是“参数变量”,一个非常标准的变量名,在其他程序语言中也能看到。这个变量保存了你运行脚本时的所有参数。

第3行的作用是解包变量argv,分别分配给四个变量:script,first,second,third。

等一下,特征还有另外一个名字
“features"真正的名称是:modules。当然也有人叫”libraries“,不过我们就叫模块吧。

运行结果
不同的运行参数会产生不同的结果。
root@he-desktop:~/mystuff# python ex13.py first 2nd 3nd
The script is called: ex13.py
Your first variable is: first
Your second variable is: 2nd
Your third variable is: 3nd
root@he-desktop:~/mystuff# python ex13.py cheese apples bread
The script is called: ex13.py
Your first variable is: cheese
Your second variable is: apples
Your third variable is: bread
root@he-desktop:~/mystuff# python ex13.py Zed A. Shaw
The script is called: ex13.py
Your first variable is: Zed
Your second variable is: A.
Your third variable is: Shaw

你可以任意改变后面的三个参数值。但是如果你只输入了两个参数,那么会报如下的错误:
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
就是提示你参数的个数不满足3个。

加分练习
1. 尝试输入少于3个参数,看看错误是什么样的?
错误如上

2. 写一个更少参数的脚本和一个更多参数的脚本,给解包的变量一个好理解的名字。

3. 结合raw_input和argv写一个脚本。
from sys import argv


script, first = argv


print "How %s are your?" % first
write = raw_input()
print "Your %s is %s." % (first, write)

输出:
root@he-desktop:~/mystuff# python ex13.py old
How old are your?
25
Your old is 25.

4. 记住modules为我们提供功能,稍后会用到。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值