在另一个函数中调用返回函数中的变量,但第一个返回中的变量发生了更改



我有一个游戏,它使用21和27个数字作为核心值。我在函数num_ofNum中使用21作为默认参数,但在我的主python文件中,调用这些函数来玩我覆盖的游戏其中num_ofNumbs=27。

变量number_pool只是准备在deal_the_numbers函数中进行索引和处理的数字的随机列表。

def deal_the_numbers(Number_Pool, num_ofNumbs = 21): 

math = (num_ofNumbs//3)
print(math)


a, b, c = (Number_Pool[::3]), Number_Pool[1::3], Number_Pool[2::3]
a = a[0:math]
b = b[0:math]
c = c[0:math]
split_number_list=(a,b,c)
print(split_number_list)


return split_number_list

在这里,我希望列表中的前7个或9个数字分别变成b或c值。这在该函数中如所期望的那样工作,因为当选择27的游戏时,数学变量打印9。

output: 9

split_number_list也会根据需要返回

(['92', '45', '61', '88', '78', '66', '32', '12', '1'], ['99', '76', '71', '61', '90', '10', '44', '77', '13'], ['8', '4', '89', '98', '21, '65', '5', '14', '19'])

然而,当我在另一个函数中调用这个变量时,它并没有按照我的意愿返回前9个数字,而是返回列表中的7个数字,使游戏与21个数字的游戏相同。

def combine_num(split_number_list,card_column):

s = def deal_the_numbers(Number_Pool)
a,b,c = s
print("")
print("cards being dealt")
print(s)

然而当调用该函数时,其返回变量被定义为"0";s";,在CCD_ 2函数中曾经打印9的同一打印行现在打印7。变量";s";还为三个列表中的每一个打印七个数字,而不是所需的9个。

output: (['92', '45', '61', '88', '78', '66', '32'], ['99', '76', '71', '61', '90', '10', '44'], ['8', '4', '89', '98', '21, '65', '5'])

我的主要想法是使用可以覆盖在我的主python文件中的默认参数,这样num_ofnums=27,我就可以用27和21两个数字玩游戏了。任何想法。

很难在这里对您想要实现的目标进行逆向工程-下次,请尝试将问题隔离一点(可以想象的最简单的业务场景(。不过,我会试试看:

s = def deal_the_numbers(Number_Pool)

def实际上用于定义一个函数,而不是调用它。如果你想调用num_ofNumbs=27的函数,只需将其传递给函数:

s = deal_the_numbers(Number_Pool, 27)

如果省略第二个参数,将使用默认值(21(。

这里大致解释如下:https://www.w3schools.com/python/python_functions.asp

最新更新