Python 将return作为另一个函数的参数传递
在下面的代码中,“roll_counts”被用作第一个函数的返回值,然后用作第二个函数的参数。我的问题是,如果我将第二个函数参数中的roll_counts更改为ABC,并将其保留在第一个函数中,代码仍然可以正常工作。我知道圆括号中的滚动计数=6,但如何计算?为什么当我 我是python和编程新手,提前感谢Python 将return作为另一个函数的参数传递,python,Python,在下面的代码中,“roll_counts”被用作第一个函数的返回值,然后用作第二个函数的参数。我的问题是,如果我将第二个函数参数中的roll_counts更改为ABC,并将其保留在第一个函数中,代码仍然可以正常工作。我知道圆括号中的滚动计数=6,但如何计算?为什么当我 我是python和编程新手,提前感谢 import random as rd def simulate_dice_rolls(N): roll_counts = [0,0,0,0,0,0] for i in ra
import random as rd
def simulate_dice_rolls(N):
roll_counts = [0,0,0,0,0,0]
for i in range(N):
roll = rd.choice([1,2,3,4,5,6])
index = roll - 1
roll_counts[index] = roll_counts[index] + 1
return roll_counts
def show_roll_data(roll_counts):
number_of_sides_on_die = len(roll_counts)
for i in range(number_of_sides_on_die):
number_of_rolls = roll_counts[i]
number_on_die = i+1
print(number_on_die, "came up", number_of_rolls, "times")
roll_data = simulate_dice_rolls(1000)
show_roll_data(roll_data)
show\u roll\u data(roll\u counts)
中的roll\u counts
是一个参数的名称,可在show\u roll\u data
功能的整个范围内访问。它的值是从调用show\u roll\u data(roll\u data)
中的roll\u data
传入的,与simulate\u dice\u rolls
中定义的同名局部变量无关。这就是为什么你可以将show\u roll\u data
中的roll\u counts
重命名为任何东西,它仍然可以工作。blhsing的答案是正确的。
但在承认这个答案之前,您需要了解变量范围。
python中有全局变量和局部变量。
局部变量绑定在函数中。
若函数中的局部变量和全局变量相同,则使用局部变量时不受全局变量的影响。
因为RoopyLo计数是SimultAxDeCixRoad的本地变量,所以不需要考虑SuffLoLyDATA中的ROLL子句计数。< /P>您的缩进级别被弄乱了。请改正我还有一个困惑。如果我可以将show_roll_数据中的roll_计数重命名为任何值,那么它如何得到值6?我真的想了解代码是如何连接的。我认为
roll\u counts
永远不会得到6的值,因为它是一个包含6项的列表。它从函数调用show\u roll\u data(roll\u data)
中获取值,因此roll\u data
的值成为函数show\u roll\u data
中的roll\u counts
的roll\u counts的值。非常感谢您的帮助,如果我在show\u roll\u data(roll\u counts)中的第二行代码之后打印侧数它将给我一个6的值。当我在骰子上使用边数时,它是有意义的。但是如果我把roll_counts重命名为ABC,那么它不应该给我一个6的值为什么不应该呢?参数的名称无关紧要。参数的值来自函数调用传入的任何内容,因此roll\u counts
的值将成为您选择为show\u roll\u data
命名的任何参数的值。谢谢您,非常感谢,如果我没有意义,请原谅我。我明白你的意思。我通过1000来模拟掷骰子掷骰子(),然后我通过模拟掷骰子掷骰子(1000)来显示掷骰子掷骰子数据,现在它如何计算len(abc)=6,你能解释一下show(掷骰子掷骰子)数据如何考虑len(abc)=len len(掷骰子掷骰子计数),因为你通过模拟掷骰子掷骰子(1000)作为show(掷骰子掷骰子)数据的参数,len(掷骰子计数)是6。模拟骰子掷骰(1000)=[A、B、C、D、E、F]对吗?通过[A,B,C,D,E,F]将滚动数据显示为滚动计数,因为滚动数据的参数是“滚动计数”。如果将def show_roll_计数(roll_计数)更改为def show_roll_计数(abc),则len(abc)将返回6。