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 shell 中运行时(函数来自 .py 文件),它返回一个 int 对象而不是一个元组!我究竟做错了什么?我试图让它变成一对值,而不是单个 int 对象。

4

2 回答 2

1

您已经返回了一对值。即使你不知何故破产了x,并且y在途中的某个地方遇到了这样荒谬的事情:

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

a(None, None)在该函数执行后仍会持有对元组的引用。所以你要返回一个由两个"something"组成的元组,唯一的问题是那些 "something" 是什么以及你如何存储它们。但是,您没有理由认为您的函数返回 an int,因为它没有。无论如何,使用您使用的语法,您的函数返回两种类型的元组。你甚至可以这样做return x,,这将返回一个单项元组。逗号可防止您仅返回int.

于 2013-09-12T03:59:09.263 回答
0

我的猜测是您的函数 swap() 可能将您的变量 y 设置为 None 并且您可能误解了返回的值。正如其他人所说,我看不出除了元组之外的任何东西作为回报。

于 2013-09-12T04:04:01.930 回答