我在哪里可以调用我的函数以便测试它?
Where can I call my function so I can test it?
我目前正在处理这段代码,我知道我必须调用该函数来测试它,但我不确定我在哪一行调用该函数。我想为我的第一个测试调用 sim_yahtzee(1,5),我怎么知道在所有这些代码行中在哪里调用它?谢谢
def sim_yahtzee(nrolls,n,sides=6):
first_roll = []
for i in range (n):
rn = random.randint(1,6)
first_roll.append(rn)
number_one = first_roll.count(1)
number_two = first_roll.count(2)
number_three = first_roll.count(3)
number_four = first_roll.count(4)
number_five = first_roll.count(5)
number_six = first_roll.count(6)
for i in range (nrolls):
if number_one > number_two and number_three and number_four and number_five and number_six:
keep = [1] * number_one
elif number_two > number_one and number_three and number_four and number_five and number_six:
keep = [2] * number_two
elif number_three > number_one and number_two and number_four and number_five and number_six:
keep = [3] * number_three
elif number_four > number_one and number_two and number_three and number_five and number_six:
keep = [4] * number_four
elif number_five > number_one and number_two and number_three and number_four and number_six:
keep = [5] * number_five
elif number_six >= number_one and number_two and number_three and number_four and number_five:
keep = [6] * number_six
elif number_five == number_four or number_three or number_two or number_one:
keep = [5] * number_five
elif number_four == number_three or number_two or number_one:
keep = [4] * number_four
elif number_three == number_two or number_one:
keep = [3] * number_three
elif number_two == number_one:
keep = [2] * number_two
reroll = []
for i in range (len(first_roll)-len(keep)):
rn = random.randint(1,6)
reroll.append(rn)
first_roll = (keep + reroll)
print (first_roll)
在 python 脚本中定义函数后,您总是需要调用它。在你的例子中,你可以用
来调用它
def sim_yahtzee(nrolls,n,sides=6):
first_roll = []
for i in range (n):
rn = random.randint(1,6)
first_roll.append(rn)
number_one = first_roll.count(1)
number_two = first_roll.count(2)
number_three = first_roll.count(3)
number_four = first_roll.count(4)
number_five = first_roll.count(5)
number_six = first_roll.count(6)
for i in range (nrolls):
if number_one > number_two and number_three and number_four and number_five and number_six:
keep = [1] * number_one
elif number_two > number_one and number_three and number_four and number_five and number_six:
keep = [2] * number_two
elif number_three > number_one and number_two and number_four and number_five and number_six:
keep = [3] * number_three
elif number_four > number_one and number_two and number_three and number_five and number_six:
keep = [4] * number_four
elif number_five > number_one and number_two and number_three and number_four and number_six:
keep = [5] * number_five
elif number_six >= number_one and number_two and number_three and number_four and number_five:
keep = [6] * number_six
elif number_five == number_four or number_three or number_two or number_one:
keep = [5] * number_five
elif number_four == number_three or number_two or number_one:
keep = [4] * number_four
elif number_three == number_two or number_one:
keep = [3] * number_three
elif number_two == number_one:
keep = [2] * number_two
reroll = []
for i in range (len(first_roll)-len(keep)):
rn = random.randint(1,6)
reroll.append(rn)
first_roll = (keep + reroll)
print (first_roll)
sim_yahtzee(1,5)
此外,我更改了缩进,我假设循环应该在函数内部。缩进级别替换了 python.
中的结束语句
确保您的 "for" 循环缩进正确!
您可以在定义函数后在任何地方调用函数,方法是键入函数名称及其参数作为单独的一行。为了接收函数的输出,您需要使用 "return" 语句来 return 变量,因为您在函数中初始化的任何变量都将在函数完成后消失。
考虑放置:
return first_roll
作为函数的最后一行,并使用
调用函数
print(sim_yahtzee(6,6,sides=6))
函数之外的第一个未缩进的行。这将打印 returned 变量,first_roll。
我目前正在处理这段代码,我知道我必须调用该函数来测试它,但我不确定我在哪一行调用该函数。我想为我的第一个测试调用 sim_yahtzee(1,5),我怎么知道在所有这些代码行中在哪里调用它?谢谢
def sim_yahtzee(nrolls,n,sides=6):
first_roll = []
for i in range (n):
rn = random.randint(1,6)
first_roll.append(rn)
number_one = first_roll.count(1)
number_two = first_roll.count(2)
number_three = first_roll.count(3)
number_four = first_roll.count(4)
number_five = first_roll.count(5)
number_six = first_roll.count(6)
for i in range (nrolls):
if number_one > number_two and number_three and number_four and number_five and number_six:
keep = [1] * number_one
elif number_two > number_one and number_three and number_four and number_five and number_six:
keep = [2] * number_two
elif number_three > number_one and number_two and number_four and number_five and number_six:
keep = [3] * number_three
elif number_four > number_one and number_two and number_three and number_five and number_six:
keep = [4] * number_four
elif number_five > number_one and number_two and number_three and number_four and number_six:
keep = [5] * number_five
elif number_six >= number_one and number_two and number_three and number_four and number_five:
keep = [6] * number_six
elif number_five == number_four or number_three or number_two or number_one:
keep = [5] * number_five
elif number_four == number_three or number_two or number_one:
keep = [4] * number_four
elif number_three == number_two or number_one:
keep = [3] * number_three
elif number_two == number_one:
keep = [2] * number_two
reroll = []
for i in range (len(first_roll)-len(keep)):
rn = random.randint(1,6)
reroll.append(rn)
first_roll = (keep + reroll)
print (first_roll)
在 python 脚本中定义函数后,您总是需要调用它。在你的例子中,你可以用
来调用它def sim_yahtzee(nrolls,n,sides=6):
first_roll = []
for i in range (n):
rn = random.randint(1,6)
first_roll.append(rn)
number_one = first_roll.count(1)
number_two = first_roll.count(2)
number_three = first_roll.count(3)
number_four = first_roll.count(4)
number_five = first_roll.count(5)
number_six = first_roll.count(6)
for i in range (nrolls):
if number_one > number_two and number_three and number_four and number_five and number_six:
keep = [1] * number_one
elif number_two > number_one and number_three and number_four and number_five and number_six:
keep = [2] * number_two
elif number_three > number_one and number_two and number_four and number_five and number_six:
keep = [3] * number_three
elif number_four > number_one and number_two and number_three and number_five and number_six:
keep = [4] * number_four
elif number_five > number_one and number_two and number_three and number_four and number_six:
keep = [5] * number_five
elif number_six >= number_one and number_two and number_three and number_four and number_five:
keep = [6] * number_six
elif number_five == number_four or number_three or number_two or number_one:
keep = [5] * number_five
elif number_four == number_three or number_two or number_one:
keep = [4] * number_four
elif number_three == number_two or number_one:
keep = [3] * number_three
elif number_two == number_one:
keep = [2] * number_two
reroll = []
for i in range (len(first_roll)-len(keep)):
rn = random.randint(1,6)
reroll.append(rn)
first_roll = (keep + reroll)
print (first_roll)
sim_yahtzee(1,5)
此外,我更改了缩进,我假设循环应该在函数内部。缩进级别替换了 python.
中的结束语句确保您的 "for" 循环缩进正确!
您可以在定义函数后在任何地方调用函数,方法是键入函数名称及其参数作为单独的一行。为了接收函数的输出,您需要使用 "return" 语句来 return 变量,因为您在函数中初始化的任何变量都将在函数完成后消失。
考虑放置:
return first_roll
作为函数的最后一行,并使用
调用函数print(sim_yahtzee(6,6,sides=6))
函数之外的第一个未缩进的行。这将打印 returned 变量,first_roll。