Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将return作为另一个函数的参数传递_Python - Fatal编程技术网

Python 将return作为另一个函数的参数传递

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

在下面的代码中,“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 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。