2017-04-14 54 views
-2

我想使用文本文件和用户输入进行计算,我想要求用户输入一个减号,然后我想从我的号码要使用的文本文件,并从用户给出的编号中减去该文件,并将总和保存在原始编号所在的同一文本文件中。问题是我不知道如何做到这一点,例如我的文本文件中有数字13,比如说用户输入4,总和将是9,我希望这9被保存在同一个文本文件中数字13,但我不知道如何做到这一点。我试过使用file.write函数,但没有成功。如何使用文本文件进行计算并将总和保存在同一文本文件中

我也不太确定如何比较if/else语句或while语句中的文本文件的值。

这是我迄今为止所做的,我做了道歉,它可能没有任何意义,我只是需要它像我希望它的工作。

number = int(input('Please enter the number you would like to minus')) 
d = open("numberfile.txt","r+")   
d.write(int(d.read()) - int(number)) 
d.close() 

每当我跑这一点,说写的参数必须是STR不是整数,但是当我改变它为str它说,操作 - 不支持。

+0

您需要的数学表达式的结果转换回一个字符串:'STR(INT(d.read()) - 数字)' – jonrsharpe

+0

还不行,我不断收到错误不受支持操作数 - 对于str和int –

回答

0

你应该总是打开的文件与with因为这种处理outmatic文件关闭等

你应该尝试,如果用户和输入文件的输入是可转换到int

import sys 

input = input('Please enter the number you would like to minus\n') 
try: 
    number = int(input) 
except ValueError as e: 
    print('Error: ' + str(e)) 
    print('Input not a integer, but ' + str(type(input))) 
    sys.exit(1) 

io_file = "numberfile.txt" 
with open(io_file,"r") as f: 
    input_from_file = f.read() 

try: 
    number_from_file = int(input_from_file) 
except ValueError as e: 
    print('Error: ' + str(e)) 
    print('Input not a integer, but ' + str(type(input_from_file))) 
    sys.exit(1) 

result = number_from_file - number 
with open(io_file,"w") as f: 
    f.write(str(result)) 
相关问题