Python循环参数长度,并将所有字符串保存在一个变量中
我正在尝试为Discord Webhook编写我的第一个Python脚本,为了缩短它,C#脚本将参数传递给Python脚本(参数的长度是可变的),并且需要将所有参数连接到一个变量中 导入系统 从discord_webhook导入DiscordWebhook,DiscordEmbed argv_len=len(sys.argv) 对于范围内的x(2,argv_len): 消息+=sys.argv[x] 我得到的错误是:name错误:未定义名称“message”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
我希望所有参数都保存在一个名为“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:])
消息中的参数是否与您在命令行中提供的参数相同?