我有一个游戏,它使用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