2013-10-16 2 views
7

RPG 게임에서 사용할 인벤토리 프로그램을 만들려고합니다. 프로그램은 일을 추가 및 제거하고 목록에 추가 할 수 있어야합니다.TypeError : 목록에만 연결할 수 있습니다 (str이 아님)

inventory=["sword","potion","armour","bow"] 
print(inventory) 
print("\ncommands: use (remove) and pickup (add)") 
selection=input("choose a command [use/pickup]") 

if selection=="use": 
    print(inventory) 
    remove=input("What do you want to use? ") 
    inventory.remove(remove) 
    print(inventory) 

elif selection=="pickup": 
    print(inventory) 
    add=input("What do you want to pickup? ") 
    newinv=inventory+str(add) 
    print(newinv) 

내가 이것을 실행하고 나는이 오류 얻을까지 어떤 것을 선택하려고 :

Traceback (most recent call last): 
    File "H:/Year 10/Computing/A453/Python Programs/inventory.py", line 15, in <module> 
    newinv=inventory+str(add) 
TypeError: can only concatenate list (not "str") to list 

어느 한이에 대한 수정이 있습니까은 크게 될 것이다 이것은 내가 지금까지 무엇을 가지고

newinv = inventory.append(add) 
:

답변

8

나는 당신이 하나를 선 newinv=inventory+str(add)을 변경해야하므로, 귀하의 목록에 새 항목을 추가하면된다 싶은 생각 평가

지금하고있는 일은 목록을 파이썬에서 잘못된 연산 인 문자열로 연결하는 것입니다.

그러나 나는 당신이 원하는 것은 그 경우, 목록에서 항목을 추가하고 삭제하는 것입니다 생각하여/다른 블록은 할 필요가있는 경우 :

if selection=="use": 
    print(inventory) 
    remove=input("What do you want to use? ") 
    inventory.remove(remove) 
    print(inventory) 

elif selection=="pickup": 
    print(inventory) 
    add=input("What do you want to pickup? ") 
    inventory.append(add) 
    print(inventory) 

당신은 모든 새로운 재고 목록을 구축 할 필요가 없습니다 새 항목을 추가 할 때.

0

문자열에 항목을 추가하는 방법이 아닙니다. 이것은 :

newinv=inventory+str(add) 

목록과 문자열을 연결하려는 것입니다. 항목을 목록에 추가하려면 list.append() 메소드를 사용하십시오.

newinv = inventory.append(add) #newinv is the old inventory, with a new item. 

또는 조금 더 쉽게하려면 newinv 목록을 무시하십시오.

inventory.append(add) #adds a new item to inventory 
print(inventory) #prints the new inventory 

희망이 있습니다.

관련 문제