2013-07-25 3 views
-2

Я пытаюсь распечатать значения списка в соответствии с пользовательским вводом, т. Е. Если пользовательские входы 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 

Любая помощь приветствуется.

ответ

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) 
+2

Следует отметить, что пустой ввод вызовет здесь значение ValueError. –

+0

@BurhanKhalid спасибо за редактирование и комментарий;) –

+0

Спасибо. Это помогло. –

Смежные вопросы