简单的功能错误

时间:2010-11-06 21:33:04

标签: python

代码:

date=int(raw_input("Date:"))
ammount=int(raw_input("Ammount:"))
desc=str(raw_input("Description:"))
account=str(raw_input("Account:"))

def addEntry(date, ammount, desc, account):
    transact=open("transactions.txt", "w")
    transact.write(date, ammount, desc, account)
    transact.close()

addEntry(date, ammount, desc, account)

给出

Traceback (most recent call last):
  File "C:\tbank.py", line 11, in <module>
    addEntry(date, ammount, desc, account)
  File "C:\tbank.py", line 8, in addEntry
    transact.write(date, ammount, desc, account)
TypeError: function takes exactly 1 argument (4 given)

我怎样才能让它发挥作用?

3 个答案:

答案 0 :(得分:1)

date=int(raw_input("Date:"))
ammount=int(raw_input("Ammount:"))
desc=str(raw_input("Description:"))
account=str(raw_input("Account:"))

def addEntry(date, ammount, desc, account):
    transact=open("transactions.txt", "w")
    transact.write('%s, %s, %s , %s' % (date, ammount, desc, account))
    transact.close()

addEntry(date, ammount, desc, account)

答案 1 :(得分:0)

您正在打开要写入的文件。它需要一个字符串作为参数。

transact.write("your string")

因为您所做的只是写入文件。你可以避免转换。 raw_input返回一个字符串。

date=raw_input("Date:")
amount =raw_input("Ammount:")
desc=raw_input("Description:")
account=raw_input("Account:")

在将其写入文件

之前,您可以将它们全部添加为一个字符串

答案 2 :(得分:0)

正如其他人所说,你必须传递write一个字符串参数。还有另一种方法可以将内容写入应该提及的开放文件:print的特殊形式

print >>transact, date, amount, desc, account

这会指示打印输出到紧跟在'&gt;&gt;'之后的文件 它的行为与print通常的行为完全相同,因此它会写出由空格分隔的所有值,并在末尾添加换行符(可以通过添加尾随逗号来抑制)。