给定一个字符串,返回子字符串长度2在该字符串中出现的次数计数,并作为该字符串的最后2个字符,因此“hixxxhi”产生1(我们不计算结束子字符串)。
last2('hixxhi') → 1
last2('xaxxaxaxx') → 1
last2('axxxaaxx') → 2
我在其中一个网站上发现了这个问题(https://codingbat.com/prob/p145834).
网站上对上述问题的回答如下:
def last2(str):
# Screen out too-short string case.
if len(str) < 2:
return 0
# last 2 chars, can be written as str[-2:]
last2 = str[len(str)-2:]
count = 0
# Check each substring length 2 starting at i
for i in range(len(str)-2):
sub = str[i:i+2]
if sub == last2:
count = count + 1
return count
我对下面提到的代码行有疑问
last2 = str[len(str)-2:]
现在,我知道这段代码正在提取字符串“str”的最后两个字母。我感到困惑的是变量名。正如您所看到的,变量名与函数名相同。那么,此行是否再次调用函数并更新变量“str”的值??
def last2(str):
if len(str) == 0:
return 0
last_two = str[-2::]
count = 0
for i in range(len(str)):
if last_two == str[i :i + 2]:
count += 1
return count-1
这是我第一次得到正确的答案。官方的答案更好,但这一个可能会让你不那么困惑。
def last2(str):
. . .
这将创建一个名为str
的参数,该参数为内置的str
类*
提供阴影。在此函数中,str
引用str
参数,而不是str
内置类。
但这是一个糟糕的做法。不要将变量命名为与现有内置变量相同的名称。这会导致类似的混乱情况,并导致类似的问题。
更好的名称应该是描述字符串的用途,而不仅仅是一个通用的、无意义的str
。
*
内置的str
实际上是一个类,而不是一个普通函数str(x)
是对str
类的构造函数的调用。
本文向大家介绍Python3 中sorted() 函数的用法,包括了Python3 中sorted() 函数的用法的使用技巧和注意事项,需要的朋友参考一下 描述 sorted() 函数对所有可迭代的对象进行排序操作。 语法 sorted(iterable, key=None, reverse=False) iterable – 可迭代对象。 key – 主要是用来进行比较的元素,只有一个参数,具
问题内容: 如何在声明中的另一个函数中调用一个函数? app.js bla.js 我正在尝试从函数内部访问函数,并且得到: TypeError:对象#没有方法’foo’ 如果我更改为仅得到: ReferenceError:未定义foo 问题答案: 更改为
问题内容: 我有以下函数,可用于从我的代码中调用Lambda函数。 但是,当我尝试在Lambda函数中使用它时,出现以下错误: 如何从Lambda函数中调用Lambda函数? 我的功能: 问题答案: 使用每个Lambda中都提供的,从另一个Lambda函数中调用Lambda函数非常简单。 我建议首先从 简单的 事情开始。 这是lambda内调用的“ Hello World”: 使用包含一个参数的调
函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。 函数能提高应用的模块性,和代码的重复利用率。你已经知道Python提供了许多内建函数,比如print()。但你也可以自己创建函数,这被叫做用户自定义函数。 定义一个函数 你可以定义一个由自己想要功能的函数,以下是简单的规则: 函数代码块以 def 关键词开头,后接函数标识符名称和圆括号 ()。 任何传入参数和自变量必须放在圆括号中
这是我在编写java时从未考虑过的,因为我使用这个模式时没有任何问题: 这样做效果很好,因为重写的函数不依赖于任何未初始化的数据,但是它们对于每个派生的都是唯一的(因此需要抽象)。这在科特林也有效,但它仍然给出了警告。 那么在Java/Kotlin中这种做法是不是很糟糕呢?如果有,我该如何改进?是否可以在kotlin中实现而不被警告在构造函数中使用非final函数? 一个可能的解决方案是将行移动到
问题内容: 是否可以从Go调用静态对象(.so)文件?我一直在搜寻Google,我不断提出我可以做到的主张 但是尝试这样做会出现错误 并搜索Godocs,但在syscall包中找不到对此功能的引用。是否可以加载库并调用其函数? 问题答案: 在POSIX平台上,您可以用来调用dlopen和朋友: