如何在Python中模拟一系列用户输入

14 浏览
0 Comments

如何在Python中模拟一系列用户输入

假设我们有一个像这样的函数:

def function():
    while True:
        user_input = input("请输入一个数字:")
        if user_input == "0":
            print("结束")
            break
        print("这个数字是 " + user_input)

在main()函数中调用该函数:

function()

然后它会一直要求用户输入,直到输入的是"0"为止。

我想要做的是,有一种方法可以存储所有的输入,并自动将其传递给控制台。这样,我就不需要手动在控制台上输入它们了。

请注意,我希望该函数不接受参数,并且使用something_taken_as_input而不是将其作为参数传递。

something_taken_as_input = ["1","2","3","0"]
function()
# 请输入一个数字:1
# 请输入一个数字:2
# 请输入一个数字:3
# 请输入一个数字:0
# 结束
# 程序完成,无需手动输入!

0
0 Comments

如何在Python中模拟一系列用户输入

有时候我们需要在Python中模拟一系列的用户输入,来进行测试或者演示。下面是一个解决这个问题的方法。

我们可以将输入方法作为参数传递给函数。这样,我们可以这样做:

def function(inp_method):
    while True:
        user_input = inp_method("请输入一个数字:")
        if user_input == "0":
            print("结束")
            break
        print("输入的数字是:" + user_input)

如果你想要从用户获取输入,可以这样调用函数:

function(input)

或者,你可以定义一个包含想要输入的数据的类:

class input_data:
    def __init__(data):
        self.data = data
        self.count = 0
    def get(self, str = ""):
        if(self.count == len(self.data)):
            return 0
        else:
            count+=1
            x = self.data[count-1]

然后使用以下方式调用函数:

d = input_data(["1", "2", "3", "0"])
function(d.get)

基本上,你只需要通过函数的参数传递输入方法即可。这样,无论是从用户获取输入还是从预定义的数据中获取输入,都可以方便地模拟一系列的用户输入。

0