我想在用户输入数据时获取第二个和第三个元素。 这三个选项是前n个编辑器,前n个编辑和前n个文章。 (n是数字)。 为了识别大写和小写,我降低了用户输入的任何输入,然后尝试检索第二个元素(数字)和第三个元素以继续执行适当的功能。 我一直试图通过一个简单的测试程序来实现这个目标:
user_input = input('Input command:')
input_lower = user_input.lower()
for line in user_input:
line_lst = line.strip().split()
print(line_lst[1])
但是当我这样做时,例如我输入" Hello there world",它只打印:列表索引超出范围,但如果我将其更改为print(line_lst [0]),则打印: d
我对这一切都很陌生,所以,谢谢你耐心等待我的无知!
答案 0 :(得分:1)
问题在于:
for line in user_input:
此时user_input
是一个字符串,当你遍历一个字符串时,你逐个字符地执行。因此,对于“Hello there world”中的每个字符,您执行<char>.strip().split()
,然后将[<char>]
分配给line_lst
。由于d
是最后一个字符,因此最终设置为line_lst
。由于它只有一个项目,因此当您尝试打印第二个项目时会出错。
所以,摆脱循环:
user_input = input('Input command:')
input_lower = user_input.lower()
line_lst = input_lower.strip().split()
if len(line_lst) > 1: # check to make sure there's at least as many elements as you expect
print(line_lst[1])