【问题标题】:How do I combine string in a function and add characters? [duplicate]如何在函数中组合字符串并添加字符? [复制]
【发布时间】:2021-11-01 08:20:47
【问题描述】:

我需要这样做:

  • 创建名为exampleThree 的函数,该函数将具有三个输入参数。
  • 返回以...分隔元素的单个字符串

因此,例如,文本需要从:“我喜欢狗”--->“我...喜欢...狗”

这是我目前拥有的,但它不起作用。它告诉我 a b 和 c “必须是 str,而不是 int”

def exampleThree(a,b,c):
    return a + "..." + b + "..." + c

我可以在这方面获得帮助吗?谢谢。

【问题讨论】:

  • 你怎么称呼它的?你的函数是正确的,但你调用它不正确。
  • 最好是return '...'.join((a,b,c))
  • 正如错误告诉你的那样——函数需要字符串,而你传递的是整数。您是否尝试将其称为exampleThree("I", "like", "dogs"),就像您的示例中一样?
  • 用字符串而不是整数调用函数,因为错误消息告诉你
  • 只需使用str 扭曲变量:str(a) + "...." + str(b) + "..." + str(c)

标签: python string


【解决方案1】:

Python 不是一种强类型语言,因此无论您提供什么函数作为参数,都可能很容易输入错误。

S 你有两个选择:

  • 在函数签名中指定数据类型
my_func(a:str, b:str, c:str):
    return a + "..." + b + "..." + c
  • 将参数转换为str
my_func(a, b, c):
   return str(a) + "..." + str(b) + "..." + str(c)

如果您尝试投射对象,第二个选项可能会导致异常

【讨论】:

  • 第一个选项实际上没有任何效果,除非您通过像 mypy 这样的类型检查器运行代码。
【解决方案2】:
#a function
def  exampleThree(a,b,c):
    return f"{a}....{b}....{c}"
# printing
print(exampleThree(25,30,40))

#an output
25....30....40

【讨论】:

  • 欢迎来到 Stack Overflow,感谢您提供答案。您能否编辑您的答案以包括对您的代码的解释?这将有助于未来的读者更好地了解正在发生的事情,尤其是那些刚接触该语言并难以理解概念的社区成员。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-11-21
  • 1970-01-01
  • 1970-01-01
  • 2012-12-15
  • 1970-01-01
  • 1970-01-01
  • 2019-06-10
相关资源
最近更新 更多