在本书的一章中,我试图自学python,这是一个非常简单的问题
这是我试图运行的程序的一部分,我认为没有必要再运行了。我尝试通过在终端中键入以下内容来运行它:在本书的一章中,我试图自学python,这是一个非常简单的问题,python,Python,这是我试图运行的程序的一部分,我认为没有必要再运行了。我尝试通过在终端中键入以下内容来运行它: from sys import argv script, user_name=argv 那应该有用,对吗?我知道这很简单,但我真的被卡住了。我也不完全明白我在那里做什么。我现在用的这本书是关于参数和解包的,我还没有完全理解。一个解释就太棒了 谢谢。argv是一个包含脚本名称和每个命令行参数的列表。在运行python exl.py脚本user_name的情况下,sys.argv的长度为3(脚本(ex
from sys import argv
script, user_name=argv
那应该有用,对吗?我知道这很简单,但我真的被卡住了。我也不完全明白我在那里做什么。我现在用的这本书是关于参数和解包的,我还没有完全理解。一个解释就太棒了
谢谢。argv是一个包含脚本名称和每个命令行参数的列表。在运行
python exl.py脚本user_name
的情况下,sys.argv
的长度为3(脚本(exl.py)和两个参数(脚本和用户名)。脚本希望argv
有两个条目(脚本、用户名),而不是三个,因此失败。请尝试python exl.py user_name
下面是一个示例,您可以在交互提示下键入:
python exl.py script user_name
win32上的Python 2.6.6(r266:84297,2010年8月24日,18:46:32)[MSC v.1500 32位(英特尔)]
有关详细信息,请键入“帮助”、“版权”、“信用证”或“许可证”。
>>>L=[1,2,3]#制作一个三元素列表。
>>>a,b=L#但仅尝试解包2个元素。
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
ValueError:要解压缩的值太多
>>>a,b,c=L#现在试试三个元素
>>>a
1.
>>>b
2.
>>>c
3.
sys.argv
是一个包含脚本名称和每个命令行参数的列表。在运行python exl.py script user\u name
的情况下,sys.argv
的长度为3(脚本(exl.py)和两个参数(脚本和用户名)。您的脚本希望argv
有两个条目(脚本、用户名)而不是三个,因此失败。请尝试使用python exl.py user\u name
下面是一个示例,您可以在交互提示下键入:
python exl.py script user_name
win32上的Python 2.6.6(r266:84297,2010年8月24日,18:46:32)[MSC v.1500 32位(英特尔)]
有关详细信息,请键入“帮助”、“版权”、“信用证”或“许可证”。
>>>L=[1,2,3]#制作一个三元素列表。
>>>a,b=L#但仅尝试解包2个元素。
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
ValueError:要解压缩的值太多
>>>a,b,c=L#现在试试三个元素
>>>a
1.
>>>b
2.
>>>c
3.
sys.argv[0]
是脚本的名称(在本例中为exl.py
),不传递文本“脚本”
您可以通过测试程序轻松地尝试此操作:
Python 2.6.6 (r266:84297, Aug 24 2010, 18:46:32) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> L = [1,2,3] # make a 3-element list.
>>> a,b = L # but only try to unpack 2 elements.
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: too many values to unpack
>>> a,b,c = L # now try three elements
>>> a
1
>>> b
2
>>> c
3
sys.argv[0]
是脚本的名称(在本例中为exl.py
),不传递文本“脚本”
您可以通过测试程序轻松地尝试此操作:
Python 2.6.6 (r266:84297, Aug 24 2010, 18:46:32) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> L = [1,2,3] # make a 3-element list.
>>> a,b = L # but only try to unpack 2 elements.
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: too many values to unpack
>>> a,b,c = L # now try three elements
>>> a
1
>>> b
2
>>> c
3
argv是一个数组,因此需要执行以下操作: script=argv[1] user_name=argv[2]
请注意,argv[0]被设置为脚本名称(请参见此链接)argv是一个数组,因此需要执行以下操作: script=argv[1] user_name=argv[2]
请注意,argv[0]被设置为脚本名称(请参见此链接)您也可以尝试使用索引片
import sys
print sys.argv
基本上,argv是一个数组,它包含在命令行上传递给程序的参数。
当你解包一个数组时,你需要有一个地方来解包。在你的例子中,你只提供了两个变量来解包一个包含三个项目的数组
如果您想知道,阵列切片的工作原理如下:
a[x:y]其中a是数组,x是开始切片的索引,y是停止的位置。在上面的示例中,我从索引1(在exl.py和script之间)开始,在数组的末尾结束。您也可以尝试使用索引切片
import sys
print sys.argv
基本上,argv是一个数组,它包含在命令行上传递给程序的参数。
当你解包一个数组时,你需要有一个地方来解包。在你的例子中,你只提供了两个变量来解包一个包含三个项目的数组
如果您想知道,阵列切片的工作原理如下:
a[x:y]其中a是数组,x是开始切片的索引,y是停止的位置。在上面的示例中,我从索引1开始(在exl.py和script之间)并且在数组的末尾结束。下次您也应该发布错误消息。我猜是
ValueError:太多值无法解包
下次您也应该发布错误消息。我猜是ValueError:太多值无法解包