SingPathは、複数のプログラミング言語内での進行状況を追跡するインタラクティブな問題セットWebサイトです。残念ながら、いくつかのバグがあります。最大のエラーは次のとおりです。
コードを返すのに時間がかかりすぎました。ソリューションが無限ループに陥っている可能性があります。もう一度やり直してください。
問題セットコードを実行すると、複数回表示されます。これで、問題セットの質問に答えながらバグを修正するために必要なのは、コードを再実行することだけです。
ただし、問題の作成者の中で、それは巨大な問題を作成します。基本的に、クリエーターでも機能するまでコードを実行できますが、これはテストの問題ではありません。この問題はproblem/solution
、送信ボタンがコードを再実行するために送信することに起因します。これは、2つの連続した正解を取得する必要があることを意味しますが、これはほぼ不可能です(私は1時間試しています)。問題セット内で続行するには問題の作成が必要であるという事実は、バグのある作成者にとってはかなり台無しになっています。
それで(最後に)ここに私の質問があります、どうすればクリエーターでこのエラーなしで次のコードを実行させることができますか?
コード:
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
ループバグを引き起こす可能性があります!私の側で何かできることがあれば(例外ステートメント?)私に知らせてください!