【问题标题】:How to call a function from another one with optional third parameter?如何使用可选的第三个参数从另一个函数调用函数?
【发布时间】:2014-08-02 09:07:43
【问题描述】:

我正在向this tutorial 学习 python。我正在尝试解决第三个练习(在 7.16 下。练习,this page)。如果有人可以帮助我并提供一些提示,因为这不是我不知道如何做,而是我不确定我得到了我实际上必须做什么(“如何做”不是问题,问题是“做什么做”)。

这是我到目前为止的代码(来自第二个练习,因为这两个练习是链接的):

def count_letters(string, letter):
    count = 0
    for char in string:
        if char == letter:
            count+=1
    print count

【问题讨论】:

  • 向我们展示您目前拥有的代码。
  • 您是否阅读了练习链接到的Optional parameters section?练习 2 中的 count_letters 函数是什么样的?请在您的问题中加入您自己的努力。
  • 我现在已经包含了它。正如我所说,一切都很完美。我的问题是我不明白在第三个练习中我必须做什么(其他练习我完全理解并且我做得很好)。
  • 问题是要求您提供一个迭代解决方案,将搜索的起始位置向上移动到字符串,直到字符串用完。在不编写代码的情况下,这就是我所能提供的尽可能多的帮助。请注意,许多字符串搜索函数将(通常是可选的)起始索引作为参数。

标签: python string parameter-passing


【解决方案1】:

可选参数是您可以提供或省略的参数,在后一种情况下,分配了一个默认值。

鉴于http://openbookproject.net/thinkcs/python/english2e/ch07.html#optional-parameters 中的第二个发现

def find(strng, ch, start=0):

start 是一个可选参数。如果您调用find 喜欢

find('foobar', 'o')

start 被隐式设置为 0,因此find 开始在索引 0 处查找,因此在该字符串的开头,以防您像这样调用它

find('foobar', 'o', 3)

我们会使用start = 3,并尝试在索引 3 处开始查找字母“o”(但失败)。


练习 7.16.3 只是想让你从 0 开始查找,获取第一个匹配项的索引,使用该索引找出一个新值以继续搜索,再次查找...并重复并计算匹配项,直到查找失败。

【讨论】:

    【解决方案2】:

    第三个​​可选参数指的是string.find方法的start参数,允许你指定搜索的起始索引。

    【讨论】:

      猜你喜欢
      • 2020-03-09
      • 2020-06-14
      • 1970-01-01
      • 1970-01-01
      • 2022-11-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多