2017-02-24 6 views
0

"glory"변수에서 1을 빼려면 변수가 정수 여야합니다. 그것을 정수로 바꿀 때 나는 단지 "함수를 호출 할 수 없다"라고 받는다.- = : 'str'및 'int'에 대해 호출하거나 지원되지 않는 피연산자 유형에 함수를 할당 할 수 없습니다.

import sys 

glory = input("Glory charge: ") 
glory_prev = glory 
print(glory_prev) 
pouch = 28 
run_num = 0 
nat_price = input("Nat price: ") 

while True: 
    run = input("You've done " + (str(run_num)) + " runs: ") 
    if run == "a": 
     (int(glory) -= 1 
     pouch -= 1 
     if glory == 0: 
      print("New glory needed") 
      glory = glory_prev 
     if pouch == 0: 
      print("Repair pouch") 
      pouch = 28 

    elif run == "q": 
     sys.exit 
    else: 
     continue 

감사합니다.

+0

처럼 될 것

glory = int(glory) - 1 

에 그 영광 구문을 영광의 INT 전에 브래킷을 제거하고 변경하는 것입니다 (int (glory) - = 1') –

+0

영광을 멀리하십시오 – FynFTW

+0

'int (glory)'는'glory' 인수로'int' 함수를 호출합니다. 아마도 정수를 반환 할 것입니다. '10 - = 1'과 같은 일을하십시오. 아무런 의미가 없습니다. –

답변

1

당신이 고려해야 할 유일한 것은 '그래서 코드는 당신이 기대 이것이

import sys 

glory = input("Glory charge: ") 
glory_prev = glory 
print(glory_prev) 
pouch = 28 
run_num = 0 
nat_price = input("Nat price: ") 

while True: 
    run = input("You've done " + (str(run_num)) + " runs: ") 
    if run == "a": 
     glory = glory - 1 
     pouch -= 1 
     if glory == 0: 
      print("New glory needed") 
      glory = glory_prev 
     if pouch == 0: 
      print("Repair pouch") 
      pouch = 28 

    elif run == "q": 
     sys.exit 
    else: 
     continue 
+0

cant는 함수를 부적절하게 입력했기 때문에 호출 할 수 없다. = 연산자의 왼쪽에 함수를 작성하고 값을 지정하면 ex : a = 3; int (a) = 4;와 같은 오류가 발생합니다. –

+1

이제 작동합니다. 고마워요. – FynFTW

+0

이것이 올바른 동안, 매 반복마다 int에 영광을 던지기가 너무 이상합니다. 왜 처음에는 한 번하지 않습니까? – bouletta