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

时间:2018-09-21 03:47:43

标签: python

我现在要使用python,我想知道正确的方法。我正在尝试添加片段以形成完整的字符串,但在字符串输出中出现符号

200

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

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

2 个答案:

答案 0 :(得分:0)

最后,您可以使用

return ''.join(map(str, response))

发生的事情是,当您说response = globalSeconds, " seconds equals "时,您正在创建一个元组。使用打印功能时,您不会传递由某种基于逗号的联接操作创建的单个字符串。您传入了多个参数,并且print函数可以正确处理它们。

如果要一直连接字符串,则+运算符允许字符串串联。通常,使用.join()比使用大量串联更为有效。

作为参考,此答案使用内置的str.join()方法documented here。它还使用documented here内置的map()。他们在做什么基本上如下:

  1. 在程序结束时,response是一个具有不同值的元组
  2. 并非所有这些值都是字符串(请注意,您从未将任何整数转换为其他类型)。
  3. 内置的.join()方法需要可迭代的字符串作为输入。
  4. map(str, response)行与(str(x) for x in response)大致相同。现在,我们有了一个可迭代的对象,该对象以字符串的形式表示要连接在一起的值。
  5. .join()方法采用所有这些字符串,并根据需要将它们串联为一个巨型字符串。
  6. 请注意''开头的.join()。那是我们在连接的每个字符串之间使用的分隔符。您可以轻松地使用空格或逗号或', '.join(...)之类的其他字词。

答案 1 :(得分:0)

您不能使用逗号将字符串和整数连接在一起。如您的输出所示,这将给您一个元组。

您需要将整数转换为字符串。一种方法是:response += str(seconds) + " seconds"

另一种方法是使用字符串格式函数:response += "{} seconds".format(seconds)