SingPath 是一个交互式问题集网站,可跟踪您在多种编程语言中的进度。不幸的是,它有一些错误。最大的错误是:
您的代码返回时间过长。您的解决方案可能陷入无限循环。请再试一次。
运行问题集代码时出现多次。现在,在回答问题集问题时,要纠正错误,您只需重新运行代码即可。
但是,在问题创建者中,它会产生一个巨大的问题。本质上,您可以运行代码,直到它也可以在创建者中运行,这不是测试的问题。问题源于提交,problem/solution
因为提交按钮会重新运行代码。这意味着您需要获得几乎不可能获得的两个连续正确答案(我已经尝试了一个小时)。需要在问题集中继续创建问题这一事实对错误的创建者来说是非常糟糕的。
所以(最后)这是我的问题,我怎样才能让下面的代码在没有这个错误的情况下在创建者中运行?
代码:
import string
import random
# Takes a blank string then replaces it with 3 random letters/numbers.
def string3(s1):
s2 = ''
def randstring (size = 3, chars = string.ascii_lowercase + string.digits):
a = ''.join(random.choice(chars) for x in range(size))
return a
''' If the string brought in isnot equal to the string generated keep
rerunning the random string generator '''
while s1 != s2:
s2 = randstring()
return 'True'
示例函数调用:
>>> string3('abc')
'True'
>>> string3('a2d')
'True'
>>> string3('234')
'True'
代码的作用:
无限猴子定理指出
如果有足够的时间,假设一只猴子随机打字,作为其输出的一部分,几乎肯定会产生莎士比亚的所有戏剧。
创建一个函数,该函数string3
将随机生成 3 个字符的字符串,直到这些字符等于从函数接收到的字符串。提示:搜索随机字符串生成器以供参考。字符串中的所有字符都是小写的。
我是一名初学者程序员,我希望能发表一些评论,以便我可以理解更复杂的解决方案,尽管我将不胜感激任何帮助/建议!
另外,我已经通知了 SingPath 的支持人员该错误,但我想在今天尽可能多地练习!如果不可能在客户端修复错误,我完全理解!祝你好运!
重要编辑
我忘了提到无论代码中的循环如何,都会发生此错误。虽然我的程序对字符的不断随机分配非常紧张,但我知道这不是问题(它可能是一个问题,但不是问题 XD)。如果您不相信我,请尝试在这里制造问题:http: //singpath.appspot.com/
即使是简单的函数声明和返回,例如:
def add_one(n):
return n+1
可能导致循环错误!如果我可以做任何事情(例外声明?)请告诉我!