如何在字符串中减去2个整数

时间:2017-02-20 18:31:42

标签: python python-3.5

我可能只是以错误的方式解决这个问题,但在第2行我试图在打印字符串中减去2个用户输入。

顺便说一句,这只是一个nim sum游戏,用户选择金额并先行,然后再玩电脑。

def setup(startamt, userturn):
    print(str("there are " + startamt - userturn + " balls left"))

def main():
    startamt = input("How many balls do you want to start with?(15 or more) ")
    userturn = input("How many balls will you take?(1-4) ")
    setup(startamt, userturn)

3 个答案:

答案 0 :(得分:2)

第一个问题是input()返回一个字符串(str)对象,因此要进行计算,需要将它们转换为整数(int())或浮点数({{ 1}})数字。

由于您使用的是3.6,因此您可以使用文字字符串插值。例如:

float()

前面的startamt = "52" userturn = "9" print(f"there are {str(int(startamt) - int(userturn))} balls left") 表示我们正在使用插值,这是在f内完成的。

答案 1 :(得分:0)

在第二行中,startamt - userturn每个都被评估为字符串。

您可以这样做:

print("there are " + int(startamt) - int(userturn) + " balls left"))

或使用更多Pythonic的字符串格式:

print("there are {} balls left".format(int(startamt) - int(userturn)))

答案 2 :(得分:0)

这似乎有效

def setup(startamt, userturn):

    print("there are", str((int(startamt) - int(userturn))), "balls left"

def main():
    startamt = input("How many balls do you want to start with?(15 or more) ")
    userturn = input("How many balls will you take?(1-4) ")
    setup(startamt, userturn)


main()