2013-07-25 13 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 함수의 결과를 변환해야합니다 :

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

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

당신은 정중하게 예를 들어, 쉼표로 구분되는 문자열을 포맷 할 수 있습니다

+2

빈 입력은 여기에 'ValueError'를 발생시킵니다. –

+0

@BurhanKhalid 편집 및 의견 주셔서 감사합니다;) –

+0

감사. 이것은 도움이되었습니다. –