我可能只是以错误的方式解决这个问题,但在第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)
答案 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()