如何在Python中模拟一系列用户输入
如何在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 # 结束 # 程序完成,无需手动输入!
如何在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)
基本上,你只需要通过函数的参数传递输入方法即可。这样,无论是从用户获取输入还是从预定义的数据中获取输入,都可以方便地模拟一系列的用户输入。