【发布时间】:2020-11-10 01:59:03
【问题描述】:
我有以下 python 脚本,它希望将第一个参数作为字符串接收,将其反转然后打印出来
import sys
input = sys.argv[1:]
input_reversed = input[::-1]
print("The input_reversed is: " + input_reversed)
使用python test.py abcdef 之类的调用运行它会出现以下错误:
Traceback (most recent call last):
File "test.py", line 5, in <module>
print("The input_reversed is: " + input_reversed)
TypeError: cannot concatenate 'str' and 'list' objects
我哪里错了? sys.argv[1:] 不返回字符串?
我只想调用python test.py abcdef 并获得fedcba 的输出,这是abcdef 的反面。
【问题讨论】:
-
['one', 'two', 'three'][1:]是['two', 'three']-- 这是一个字符串列表,而不是字符串。 -
我只想打电话给
python test.py abcdef并得到fedcba的输出 -
啊!那不是您的代码所做的;它颠倒了参数的顺序,它不会颠倒单个参数的文本。 (因此,如果您只传递一个参数,则该列表根本无法有意义地反转,因此它保持不变。
-
假设只有一个参数并且
len> 1,您可以使用sys.argv[1][::-1]并将其保存为变量。 -
sys.argv[1]获取字符串中的第一个参数,这就是我想在这里做的。非常感谢!
标签: python command-line-arguments