Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将打印值保存到文本文件中_Python_Python 3.x - Fatal编程技术网

Python 将打印值保存到文本文件中

Python 将打印值保存到文本文件中,python,python-3.x,Python,Python 3.x,我有两个计划: def calculate1(): a4canon = (int(input('A4 paper (canon):')))*8.9 a4rainbow = (int(input('A4 paper (rainbow):')))*7.5 lruler = (int(input('Long ruler:')))*0.85 sruler = (int(input('Short ruler:')))*0.55 blue = (int(input(

我有两个计划:

def calculate1():

    a4canon = (int(input('A4 paper (canon):')))*8.9
    a4rainbow = (int(input('A4 paper (rainbow):')))*7.5
    lruler = (int(input('Long ruler:')))*0.85
    sruler = (int(input('Short ruler:')))*0.55
    blue = (int(input('Blue pen:')))*0.65
    red = (int(input('Red pen:')))*0.65
    black = (int(input('Black pen:')))*0.65
    pencil = (int(input('2B Pencil:')))*2.4

    total = a4canon + a4rainbow + lruler + sruler + blue + red + black + pencil 

    a4canon1 = str(a4canon)
    a4rainbow1 = str(a4rainbow)
    lruler1 = str(lruler)
    sruler1 = str(sruler)
    blue1 = str(blue)
    red1 = str(red)
    black1 = str(black)
    pencil1 = str(pencil)

    total1 = str(total)


    return('A4 paper (canon):',a4canon1)
    return('A4 paper (rainbow):',a4rainbow1)
    return('Long ruler :',lruler1)
    return('Short ruler:',sruler1)
    return('Blue pen:',blue1)
    return('Red pen:',red1)
    return('Black pen:',black1)
    return('Pencil:',pencil1)
    return('Total:',total1)
另一方面:

import calculate
def display1():
    file = open('sample.txt','w')
    file.write(calculate.calculate1())

display1()
问题是它打印的是:

TypeError: write() argument must be str, not tuple
虽然我将值更改为字符串,但我是否遗漏了一些内容,因为我希望它保存到文本文件中,如下所示:

A4 paper(canon):1 ~ 8.9
A4 paper(rainbow):1 ~ 7.5
Long ruler:1 ~ 0.85
Short ruler:1 ~ 0.55
Blue pen:1 ~ 0.65
red pen:1 ~ 0.65
Black pen:1 ~ 0.65
2B pencil:1~ 2.4
Total:22.149999999999995
请提供帮助和建议。谢谢

似乎当我使用

file.write(str(calculate.calculate1()))
它只保存:

('A4 paper (canon):', 8.9)

File.write接受字符串,但在您的示例中,它返回一个元组,因此您需要使用str()将元组转换为字符串,然后将其写入文件,而不是将元组写入文件

你可能想了解更多关于和


文件写入只接受字符串,这就是为什么会出现错误。所以当你回来的时候,你可以像这样回来

import calculate
def display1():
    file = open('sample.txt','w')
    lst=calculate.calculate1()
    for i in lst:
         file.write(" ".join(list(i)))

display1()
return(“A4纸(佳能):”+str(a4canon1))
将返回一个字符串,您可以将其用于file.write

或者在使用返回值时,可以将其转换为字符串

file.write(str(calculate.calculate1())

同样在您的定义中,您有多个return语句。在第一个return语句之后不会执行任何操作。删除所有return语句并返回字符串列表,而不是返回多个字符串

return[('A4纸(佳能):',a4canon1),('A4纸(彩虹):',a4rainbowl1),('Long标尺:',lruler1),('Short标尺:',sruler1),('Blue pen:',blue1),('Red pen:',black1),('Pencil:',pencill1),('Total:',total1)]

在捕获返回值时,会发生这样的变化

import calculate
def display1():
    file = open('sample.txt','w')
    lst=calculate.calculate1()
    for i in lst:
         file.write(" ".join(list(i)))

display1()
此外,不建议在函数定义内获取输入。你可能需要重做