Python命令行参数转编号列表:Twilioquest任务代码调试求助
解决Twilioquest Pythonic Temple关卡命令行参数处理问题
你的问题出在对sys.argv的处理上:
- 当前代码里
str(sys.argv.pop())仅取最后一个命令行参数,并把它转成字符串,遍历字符串时自然会拆分出单个字符 - 而测试用的
names2是完整的参数列表,所以能正常输出编号格式
修改方法很简单,直接获取除脚本文件名外的所有命令行参数即可,因为sys.argv本身就是一个列表,第一个元素是脚本名,从索引1开始的才是用户传入的参数:
修改后的完整代码:
import sys # 获取用户传入的所有命令行参数(排除脚本自身文件名) names = sys.argv[1:] print('these are your future leaders:') for index, item in enumerate(names, start=1): string_to_print = f'{index}. {item}' print(string_to_print)
关键修改说明
- 用
sys.argv[1:]切片替代原代码的str(sys.argv.pop()),直接得到包含所有用户参数的列表,结构和测试用的names2完全一致 - 不需要额外的类型转换,
sys.argv本身就是字符串组成的列表,切片后可直接被enumerate遍历
内容的提问来源于stack exchange,提问作者Nixy
相关产品推荐
相关产品推荐

