我知道这可能是一个愚蠢的问题,但我似乎无法真正做到这一点。
我正在尝试这样做:
f = open("txtfiles/c.txt", "r")
c = f.read()
int(c)
ca = float(input("Enter Cash to Add: "))
int(ca)
cn= c+ca
print (cn)
我试图说它们都是浮点数,因此可以正确添加它们因为我需要用户能够添加小数,但是当我做的时候,我得到它 TypeError:无法将'float'对象隐式转换为str
我在互联网上搜索过,我看到这个错误出现了,但实际上似乎没有任何帮助。
对不起noob问题,但任何建议将不胜感激。
答案 0 :(得分:4)
执行int(c)
时,这将从字符串c
生成一个整数,但您不会将其分配给任何内容。在您的情况下,c
仍然是一个字符串。将该行更改为:
c = int(c)
更好的是,既然你想要添加小数,为什么不使用浮点数并跳过整数转换呢?
f = open("txtfiles/c.txt", "r")
c = float(f.read())
ca = float(input("Enter Cash to Add: "))
cn = c + ca
print cn
答案 1 :(得分:1)
怎么样
with open("txtfiles/c.txt", "rU") as f:
cn=float(f.read())+float(raw_input("Enter Cash to Add: "))
print(cn)
使用with
会在阻止退出时自动关闭您的文件,因此您不会意外地将其保持打开状态。使用'rU'
作为文件模式将为您处理newline madness。