根据输入打印数组的值

时间:2013-07-25 10:39:54

标签: python python-3.x

我正在尝试根据用户输入打印列表值,即如果用户输入3,则仅打印元素1,2和3.如果用户输入5,则打印元素1,2,3,4和5我写了下面的代码,但它给了我错误:

var1 = [ '1', '2', '3', '4' , '5']
x = input('Enter the number of sites')
print('The values are', var1[1:x] )

此错误即将发生:

slice indices must be integers or None or have an __index__ method

感谢任何帮助。

1 个答案:

答案 0 :(得分:3)

在Python3中,input built-in function返回一个字符串,由于列表索引只能是整数,因此会收到错误消息。

要修复它,您应该将input函数的结果转换为整数,如下所示:

var1 = [ '1', '2', '3', '4' , '5']
x = int(input('Enter the number of sites'))
print('The values are', var1[1:x])

您可以将字符串格式化为逗号分隔,例如:

to_print = ', '.join(var[1: x]))
print('The values are', to_print)