Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python循环参数长度,并将所有字符串保存在一个变量中_Python_Loops_Arguments - Fatal编程技术网

Python循环参数长度,并将所有字符串保存在一个变量中

Python循环参数长度,并将所有字符串保存在一个变量中,python,loops,arguments,Python,Loops,Arguments,我正在尝试为Discord Webhook编写我的第一个Python脚本,为了缩短它,C#脚本将参数传递给Python脚本(参数的长度是可变的),并且需要将所有参数连接到一个变量中 导入系统 从discord_webhook导入DiscordWebhook,DiscordEmbed argv_len=len(sys.argv) 对于范围内的x(2,argv_len): 消息+=sys.argv[x] 我得到的错误是:name错误:未定义名称“message” 我希望所有参数都保存在一个名为“m

我正在尝试为Discord Webhook编写我的第一个Python脚本,为了缩短它,C#脚本将参数传递给Python脚本(参数的长度是可变的),并且需要将所有参数连接到一个变量中

导入系统 从discord_webhook导入DiscordWebhook,DiscordEmbed argv_len=len(sys.argv) 对于范围内的x(2,argv_len): 消息+=sys.argv[x] 我得到的错误是:name错误:未定义名称“message”


我希望所有参数都保存在一个名为“message”的变量中

在引用它之前,必须初始化
message
。也就是说,由于
+=
操作符的工作方式,python不知道您在说什么。
+=
运算符但是,如果不首先定义空列表,则只有一个列表

一旦实现,您的代码应该如下所示:

导入系统 从discord_webhook导入DiscordWebhook,DiscordEmbed argv_len=len(sys.argv) 消息=[] 对于范围内的x(2,argv_len): 消息+=sys.argv[x] 另外,一个更简单的方法是。这将切断前两个参数,并将其余参数保留在一个数组中。(感谢@furas提到这一点)。这可以是:

导入系统 从discord_webhook导入DiscordWebhook,DiscordEmbed message=sys.argv[2:]
这会将前两个元素之后开始的元素一直带到列表的末尾。(包括从索引2开始,包括从列表末尾开始)

您只需在for循环外部声明变量,以便在使用for循环后在循环外部访问它,因为变量只有词法作用域

argv_len = len(sys.argv)
message = ''
for x in range(2, argv_len):
    message += sys.argv[x]
print(message)

在启动for循环之前,需要声明变量消息

如果要使用
+=
message=''的语法,请首先实例化变量。join(sys.argv[2:])
消息中的参数是否与您在命令行中提供的参数相同?