2017-12-22 3 views
-5

아래의 코드에서 실수가 무엇입니까? 목록 변수 Jewels을 정의하는 위치는 어디입니까?python 이름 오류 : NameError : name 'Jewels'이 정의되지 않았습니다.

for jew in range(0,Total_Jewels): 
    Jewels[jew]=int(raw_input("Please Enter approx price for Jewel#"+str(jew+1))) 

오류가 무엇을 당신의 묻는 확인

Please Enter approx price for Jewel#111 --------------------------------------------------------------------------- NameError Traceback (most recent call last) in() 1 for jew in range(0,Total_Jewels): ----> 2 Jewels[jew]=int(raw_input("Please Enter approx price for Jewel#"+str(jew+1)))

NameError: name 'Jewels' is not defined

+2

을 사용할 수 있습니다; 당신이 포함하지 않은 코드. 더 많은 컨텍스트가 없으면 우리가 줄 수있는 유일한 대답은 "루프 내부보다 더 넓은 범위에 있습니다"입니다. 목록이 미리 채워질 것으로 예상되면 이전 데이터를 덮어 쓰는 것입니다. 기존 요소를 할당하는 대신 새 목록에 '추가'를 원할 수 있습니다. – Carcigenicate

+1

오류와 마찬가지로 '보석'을 정의하지 않았습니다. 이것은 공유하지 않은 코드의 다른 부분에서 발생합니다. –

+0

"Jewels []"는 필자의 이해가 파이썬의 다른 변수 유형과 같았 기 때문에 결코 목록으로 정의되지 않았지만 목록 변수는 명시 적으로 정의 할 필요가 없습니다. 지금 해결되었습니다. 감사합니다. – Niru

답변

0

당신은 이런 식으로 목록을 채울 수 없습니다. 빈 목록 인 Jewels = []으로 시작하기 때문에 Jewels[0]에 할당하려는 시도는 IndexError이됩니다. 대신 list.append 방법

jewels = [] 
for i in range(total_jewels): 
    jewels.append(raw_input('Please Enter approx price for Jewel #{}: '.format(i))) 

또는 코드의 나머지 부분에 따라 지능형리스트

jewels = [raw_input('Please Enter approx price for Jewel #{}: '.format(i)) for i in range(total_jewels)] 
+0

Thanks for explanation Patrick Haugh! – Niru

+0

나는 그 오류와 관련이 있는지 보지 못합니다. 또한 목록이 충분히 크면 목록을 채울 수 있습니다. –

0

코드가 어떻게 생겼는지 확인, 그렇게하지 않습니다.

아마 시도 :

prices = [] 
for j in range(Total_Jewels): 
    prices.append(input("Please enter approx price for Jewel#"+str(j+1))) 
관련 문제