2017-02-24 50 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

你所期望的' (int(glory) - = 1'做什么? –

+0

从荣耀中取出1 – FynFTW

+0

int(glory)用参数glory调用函数int,它可能会返回一个整数然后你试图做一些像'10 - = 1',这没有任何意义 –

回答

1

你必须要考虑的唯一的事情是荣耀INT之前移除支架和更改荣耀语法

glory = int(glory) - 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

不能分配函数调用,因为你只是以不正确的方式给函数输入。每当你在=运算符的左边写一个函数,并赋值给它,它会给出这个错误,例如:a = 3; int(a)= 4; –

+1

现在有效。非常感谢:) – FynFTW

+0

虽然这是正确的,但我觉得在每次迭代中都会把荣耀投射到一个整数上感觉很奇怪。为什么不在开始时只做一次? – bouletta

相关问题