0

私がこのように書いたこの関数:

def simulate_turn(num_rolls, score, opponent_score):
    """This function takes in two scores and a number of die rolls and returns
    what the two scores would be if num_rolls many dice were rolled. This takes
    into account the swine swap, free bacon, and hog-wild."""
    x = score
    y = opponent_score
    x += take_turn(num_rolls,opponent_score,select_dice(score,opponent_score))
    if ifwillswap(x,y):
        swap(x,y)
    return x,y

インタラクティブな python シェル (関数は .py ファイルから取得されます) で実行すると、タプルではなく int オブジェクトが返されます! 私は何を間違っていますか?単一の int オブジェクトではなく、値のペアを変換しようとしています。

4

2 に答える 2

1

すでに値のペアを返しています。途中で壊れて、次のようなばかげたことがあったとしてもxy

def example():
    return None, None
a = example()

a(None, None)その関数の実行後もタプルへの参照を保持します。したがって、2つの「何か」のタプルを返しています。唯一の問題は、それらの「何か」とは何か、およびそれらをどのように保存しているかです。関数が返すと考える理由はありintませんが、そうではないからです。何があっても、使用した構文では、関数は 2 つの型のタプルを返します。あなたはただ行うことさえできreturn x,、それは1つのアイテムのタプルを返します. コンマは、. だけを返すことを防ぎますint

于 2013-09-12T03:59:09.263 に答える
0

私の推測では、関数 swap() が変数 y を None に設定している可能性があり、返された値を誤って解釈している可能性があります。他の人が言ったように、戻り値としてタプル以外を見る方法がわかりません。

于 2013-09-12T04:04:01.930 に答える