Python 创建一个随机数的函数

Python 创建一个随机数的函数,python,tkinter,Python,Tkinter,Tkinter允许您将功能分配给如下按钮: but = Button(master,text="Press Here",command=press_B1).pack() 其中,press_B1是一个已定义的函数 我必须取一个包含n个元素的数组,为每个元素创建一个按钮,如果你按下第一个按钮,它将打印数组的第一个元素。 这很简单,如果我有一个定义的元素数量,但与未定义的元素,我不知道如何做到这一点 如果我没有很好地解释我想做什么: arr = ["a","b","c"] #random numbe

Tkinter允许您将功能分配给如下按钮:

but = Button(master,text="Press Here",command=press_B1).pack()
其中,press_B1是一个已定义的函数

我必须取一个包含n个元素的数组,为每个元素创建一个按钮,如果你按下第一个按钮,它将打印数组的第一个元素。 这很简单,如果我有一个定义的元素数量,但与未定义的元素,我不知道如何做到这一点

如果我没有很好地解释我想做什么:

arr = ["a","b","c"] #random number of elements
for i in range(len(array)):
    but = Button(master,text="Press Here",command=?).pack()        

最后我应该有3个按钮,如果我按下第一个按钮,python应该打印“a”

给定您的示例,如果您需要
print
语句(Python2.x),您可能可以在循环中使用函数定义

或者,您可以使用
lambda

import sys
arr = ["a","b","c"] #random number of elements
for i in range(len(arr)):
    lam = lambda val=arr[i]: sys.stdout.write("%s\n"%val)
    but = Button(None,text="Press Here",command=lam).pack()

可能会有帮助。但我不知道传递给函数的是什么,因为它取决于我使用的按钮pressed@Ermans:您可以尝试作为第一步传入
arr[i]
。不起作用,它会在for循环后打印'i'的值,这是最后一个元素的索引两种解决方案都不起作用,它们只打印数组的最后一个元素。我正在使用Python 2。7@Ermans-你是对的,我忘了需要使用默认值,更新后应该可以工作了,非常感谢。
import sys
arr = ["a","b","c"] #random number of elements
for i in range(len(arr)):
    lam = lambda val=arr[i]: sys.stdout.write("%s\n"%val)
    but = Button(None,text="Press Here",command=lam).pack()