【问题标题】:define function with strings as parameter用字符串作为参数定义函数
【发布时间】:2018-05-17 18:07:45
【问题描述】:

为什么当我们定义一个以字符串为参数的函数时我们不需要引号,但是当我们使用它时却需要引号?谢谢!

例如,

def shout(word):
    shout_word = word + '!!!'

(这里我们没有'word'的引号)

shout_word('abd')

但是这里我们需要 '' 来表示 abd..

我已经在网上浏览了一些资料,但可能我的问题太详细或太基本,所以似乎没有人问过。感谢您的帮助!!学习python对我很重要!

【问题讨论】:

  • 定义函数的时候,把参数写成变量名。当你调用函数时,你传递一个值。效果就像一个作业; word = 'abd'
  • 为什么投反对票? Q很清楚。这是非常基础的,但对于 SO 来说毫无疑问太基础了。

标签: python user-defined-functions


【解决方案1】:

token 'word' 声明了一个喊叫函数的参数。此时,尚不清楚它是否是字符串 - 它只是一个变量名。它的类型将在您的代码尝试添加 '!!!' 时进行检查给它。 '!!!'是一个字符串文字,解释器将检查“word”的运行时类型是否支持将字符串添加到其中。

在学习任何编程语言时,了解变量名和变量字面量之间的区别很重要。

【讨论】:

  • 是的..你是对的,我需要更好地理解它。刚开始学习python。谢谢你的帮助!
【解决方案2】:

因为 word 没有在函数中明确定义为字符串,所以它只是一个变量。将 'abc' 传递给函数意味着 word 被赋值为 'abc'。

【讨论】:

    【解决方案3】:

    因为函数参数也是变量。如果将函数的字符串参数括在引号中,例如"word",那就不是参数了。

    【讨论】:

    • 是的...这是我使用 python 的第一周。非常感谢!
    【解决方案4】:

    通常,在编程语言中,每当我们定义一个方法时,我们都会使用参数名称作为占位符。这有助于我们概括问题,并允许我们的函数处理不同的数据。

    这里你有一个方法需要一个字符串,并使用变量word来表示。我们希望此方法适用于我们提供方法 shout_word() 的任何字符串,因此我们使用此变量名称进行泛化。

    每当您调用该方法时,例如当您执行 shout_word("abc") 时,"abc" 都会用引号引起来,因为我们将值传递给我们的参数 word时间>。

    Here is some more notation for you on method definitions in Python!

    【讨论】:

      【解决方案5】:

      首先,Word 不是字符串,它是一个名为“word”的变量。在第二种情况下,“abd”是一个字符串文字

      【讨论】:

      • 谢谢!!我在这里还是很新!谢谢你回答我的问题!
      最近更新 更多