ランダムにシャッフルされたリストの最初の要素が何であるかに基づいて値(1)を出力する簡単な、アルファ関数を作成しました。Python:単純な関数内から予期せぬ印刷値
以下のコードを見てみましょう:変数を作成して1に設定しています。その後、小さなリスト(1,2,3)を作成してリストをシャッフルしています。リストの最初の要素(シャッフル後)が1または2の場合、 'correct'の値を出力しますが、リストの最初の要素が3の場合は 'correct'を0に設定し、関数を再度実行します。 ifステートメントからわかるように、 'value'が0に設定されていると、印刷が実行される前に関数が再度実行されているため(chair())、これはまったく印刷されません。
これを実行すると、5つの値のうち1つを見つけることが予想されました。問題は、0値も印刷されていることです。これは非常にシンプルな機能のように思えますが、なぜこれが起こっているのか分からないのはちょっとでも愚かな気がします。何か案は?
def chair():
correct = 1
a = [1,2,3]
random.shuffle(a)
if a[0] == 3:
correct = 0
chair() #run function again without printing
print correct
for i in range(5):
chair()
パーフェクト。その小さな変化はまさに私が必要としていたものでした。ありがとうございました。 – Steve