我是Python的初学者,我正在尝试制作一个小程序来记录一定金额的变化。我可以从文件(Amount.txt)中获取数据,但不能添加或减去它。程序将Amount.txt中的数字识别为字符串,而不是实际数字。我尝试使用int()命令,但我不知道将该命令放在何处,甚至不知道是否需要它。当我使用int()命令时,会发出一条错误消息,声明“TypeError:不受支持的操作数类型(S) for +:'int‘和’str‘”,如何解决这个问题?
def add(x, y):
return x + y
def money(xy):
f = open("Amount.txt", "r").read()
newamount = add(f, xy)
f = open("Amount.txt", "w").write(newamount)
f.close
while True:
dollars = open("Amount.txt", "r").read()
print("Current Updated Total: ($" + dollars + ")")
num = input("Transition: ")
money(num)我试图让程序要求用户提供一个数字,其中它将增加的总金额,然后重写Amount.txt,以包含新的总和。例如,如果总数为5,用户键入5,则新的总数将为10。Amount.txt还将包含数字10而不是5。然而,实际结果如下:总计为5,用户将键入5,新的总计将为55。我怎么才能解决这个问题?
发布于 2019-06-07 20:02:45
假设Amount.txt包含一个整数,例如,42,使用int()将字符串强制转换为int,正如您所提到的:
f = open("Amount.txt", "r").read()
f = int(f)您还需要多次打开文件,在以不同的模式重新打开文件之前关闭它可能不是个好主意。完整脚本:
def add(x, y):
return x + y
def money(xy):
fh = open("Amount.txt", "r")
f = int(fh.read())
fh.close()
newamount = add(f, xy)
fh = open("Amount.txt", "w")
fh.write(str(newamount))
fh.close()
while True:
fh = open("Amount.txt", "r")
dollars = int(fh.read())
fh.close()
print("Current Updated Total: (${0})".format(dollars))
num = input("Transition: ")
money(num)https://stackoverflow.com/questions/56500517
复制相似问题