当前位置:  开发笔记 > 编程语言 > 正文

将函数打印输出分配给字符串变量

如何解决《将函数打印输出分配给字符串变量》经验,为你挑选了1个好方法。

我有以下功能,循环通过两个列表,打印出一系列蔬菜,然后是水果.

def Selection():
    print("VEGETABLES FOR THE WEEK:\n")
    for veg in veg_selection:
        print(veg.upper())
    print("\n")
    print("FRUITS FOR THE WEEK:\n")
    for fruit in fruit_selection:
        print(fruit.upper())

所以结果可能如下:

VEGETABLES FOR THE WEEK:

BROCOLLI
PEAS
CARROTS
SWEET CORN
WHITE ONIONS


FRUITS FOR THE WEEK:

GRAPEFRUIT
CHERRIES
ORANGE
COCONUT
RASPBERRIES

我正在努力将函数的打印结果分配给包含格式化字符串的单个变量.我是否需要将结果保存为文本文件然后再次读取?我可以使用文本连接吗?我不确定如何处理函数中的for循环?任何帮助真的很感激.



1> Łukasz Rogal..:

解决方案之一是将所有中间字符串存储到容器中,然后将它们连接起来.引用文档:

string.join(words[, sep])将单词的列表或元组与插入的sep的插入连接起来.sep的默认值是单个空格字符.总是string.join(string.split(s, sep), sep)等于s.

示例代码如下所示:

import os

def selection():
    strings = []
    strings.append("VEGETABLES FOR THE WEEK:\n")
    for veg in veg_selection:
        strings.append(veg.upper())
    strings.append("\n")
    strings.append("FRUITS FOR THE WEEK:\n")
    for fruit in fruit_selection:
        strings.append(fruit.upper())
    return os.linesep.join(strings)

s = selection()  # s now contains output string, and nothing is printed
print(s)  # print whole string at once

os.linesep 是具有正确换行符的跨os常量.

用于分隔(或更确切地说,终止)当前平台上的行的字符串.这可能是单个字符,例如POSIX的'\n'或多个字符,例如Windows的'\ r \n'.在编写以文本模式打开的文件时,不要将os.linesep用作行终止符(默认值); 在所有平台上使用单个'\n'代替.

此外,半相关的问题:附加到字符串的好方法.

推荐阅读
农大军乐团_697
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有