我现在要使用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
答案 0 :(得分:0)
最后,您可以使用
return ''.join(map(str, response))
发生的事情是,当您说response = globalSeconds, " seconds equals "
时,您正在创建一个元组。使用打印功能时,您不会传递由某种基于逗号的联接操作创建的单个字符串。您传入了多个参数,并且print函数可以正确处理它们。
如果要一直连接字符串,则+
运算符允许字符串串联。通常,使用.join()
比使用大量串联更为有效。
作为参考,此答案使用内置的str.join()
方法documented here。它还使用documented here内置的map()
。他们在做什么基本上如下:
response
是一个具有不同值的元组。.join()
方法需要可迭代的字符串作为输入。map(str, response)
行与(str(x) for x in response)
大致相同。现在,我们有了一个可迭代的对象,该对象以字符串的形式表示要连接在一起的值。.join()
方法采用所有这些字符串,并根据需要将它们串联为一个巨型字符串。''
开头的.join()
。那是我们在连接的每个字符串之间使用的分隔符。您可以轻松地使用空格或逗号或', '.join(...)
之类的其他字词。答案 1 :(得分:0)
您不能使用逗号将字符串和整数连接在一起。如您的输出所示,这将给您一个元组。
您需要将整数转换为字符串。一种方法是:response += str(seconds) + " seconds"
另一种方法是使用字符串格式函数:response += "{} seconds".format(seconds)