为了账号安全,请及时绑定邮箱和手机立即绑定

Python:不使用数字时如何将值分配为实际参数?

Python:不使用数字时如何将值分配为实际参数?

Go
繁华开满天机 2022-06-22 15:29:34
如果这是一个非常愚蠢的问题,我很抱歉;我是一名英语专业的学生,正在选修 COSC 课程(我知道这是愚蠢的决定),所以这一切对我来说都不容易。这是我要解决的问题:编写一个程序,接收一个包含消息的文件。消息可以是任意长度。您的程序将包含两个函数。第一个应该有一个处理文件内容的函数。第二个将获取第一个函数的输出,并将消息打印在一个星号框中。输入文件应该只是一个单行消息(参见附加的输入示例)。输出应采用该消息,将其拆分为两行,并将其置于框中(请参阅附加的输出示例)。这是我目前拥有的代码:    def func1(process_contents):        infile=open("october.txt", "r")       process_contents=print(infile.read())       return process_contents    def func2():       outfile=open("october_output.txt", "w")       print(func1(message), file=outfile)       outfile.close()(我还没有尝试创建星号框......我只是想让这些功能首先工作)。我知道我不能将另一个变量(即“消息”)分配给 func1 中的形式参数“process_contents”,我需要分配一个 VALUE 作为实际参数......但是因为我没有在这个问题中使用数字,我使用的价值是什么?
查看完整描述

2 回答

?
猛跑小猪

TA贡献1858条经验 获得超8个赞

print函数默认写入stdout,但不返回值。因此,您必须替换process_contents=print(infile.read())process_contents=infile.read(). 这会将返回的值分配给infile.read()变量process_contents

此外,我建议使用该语句来打开文件,就像python 手册给出的示例with也使用它一样。


查看完整回答
反对 回复 2022-06-22
?
喵喔喔

TA贡献1735条经验 获得超5个赞

您不一定需要在func1().


def func1():

    infile = open("october.txt", "r")

    process_contents = infile.read()

    return process_contents


def func2():

        message = func1()

        print("asterisks" + message + "box thingy")

虽然,您可以使用形参来概括函数,如下所示:


FILENAME = "october.txt" # or rather something like sys.argv[1]


def func1(FILENAME):

    infile = open(FILENAME, "r")

    process_contents = infile.read()

    return process_contents


def func2():

    message = func1(FILENAME)

    print("asterisks" + message + "box thingy")


查看完整回答
反对 回复 2022-06-22
  • 2 回答
  • 0 关注
  • 159 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号