将部分添加到现有字符串的正确方法是什么

我现在使用 python,我想知道这样做的正确方法。我正在尝试添加片段以制作完整的字符串,但我在字符串输出中得到了符号


def responseLibrary(days, hours, minutes, seconds):

global globalSeconds

response = globalSeconds, " seconds equals "


if days > 0:

    response += days, " days "

if hours > 0:

    response += hours, " hours "

if minutes > 0:

    response += minutes, " minutes "

if seconds > 0:

    response += seconds, " seconds "

return response

我得到的输出看起来像这样


(10, ' seconds equals ', 10, ' seconds ')


达令说
浏览 161回答 2
2回答

暮色呼如

最后,你可以使用return ''.join(map(str, response))发生的事情是当你说response = globalSeconds, " seconds equals "你正在创建一个tuple。当您使用 print 函数时,您不会传入由某种基于逗号的连接操作创建的单个字符串。您传入多个参数,并且打印函数会适当地处理它们。如果您想一直连接字符串,该+运算符允许字符串连接。.join()然而,使用而不是大量连接通常更有效。作为参考,此答案使用内置str.join()方法,记录在此处。它还使用此处记录的map()内置函数。他们正在做的事情基本上如下:在你的程序结束时,response是一个不同值的元组。并非所有这些值都是字符串(请注意,您从未将任何整数转换为其他类型)。内置.join()方法需要一个可迭代的字符串作为其输入。线路map(str, response)大致相同(str(x) for x in response)。现在我们有一个字符串表示的可迭代对象,我们想要连接在一起的值。该.join()方法获取所有这些字符串,并按照您的需要将它们连接成一个巨大的字符串。注意''开头的.join(). 这是我们在加入的每个字符串之间使用的分隔符。您可以轻松地使用空格或逗号或任何其他类似', '.join(...).

繁星淼淼

你不能用逗号连接字符串和整数。正如您的输出所示,这为您提供了一个元组。您需要将整数转换为字符串。一种方法是:response += str(seconds) + " seconds"另一种方法是使用字符串格式函数: response += "{} seconds".format(seconds)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python