如何在Python中模拟一系列用户输入
假设我们有这样一个函数如何在Python中模拟一系列用户输入,python,io,Python,Io,假设我们有这样一个函数 def function(): while True: user_input = input("enter a number: ") if user_input == "0": print("finish") break print("the number is " + user_input) 在main()中,我们调用函数 function() 然后它将请求用户
def function():
while True:
user_input = input("enter a number: ")
if user_input == "0":
print("finish")
break
print("the number is " + user_input)
在main()中,我们调用函数
function()
然后它将请求用户输入,直到得到一个“0”。
我想做的是让某个东西能够存储所有输入,并自动将其提供给控制台。因此,我不需要在控制台中手动键入它们
请注意,我希望函数不接受参数,使用something\u作为输入
,而不将其作为参数传递
something_taken_as_input = ["1","2","3","0"]
function()
# enter a number: 1
# enter a number: 2
# enter a number: 3
# enter a number: 0
# finish
# all done by the program, no manually typing!
一个有趣的方法是将输入方法传递给函数 这样,您可以执行以下操作:
def function(inp_method):
while True:
user_input = inp_method("enter a number: ")
if user_input == "0":
print("finish")
break
print("the number is " + 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)
基本上,您只是通过函数的参数传递方法。一个有趣的方法是将输入方法传递给函数 这样,您可以执行以下操作:
def function(inp_method):
while True:
user_input = inp_method("enter a number: ")
if user_input == "0":
print("finish")
break
print("the number is " + 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)
基本上,您只是通过函数的参数传递方法。从文件
python script.py
获取输入。您甚至可以将结果保存在文件python script.pyresult.text
中,这样您就可以将此文件与具有预期结果的文件进行比较。当函数get value作为参数,而其他函数仅从用户处获取值并使用此值运行第一个函数时,这是很好的。通过这种方式,您可以使用列表、文件、sys.args或数据库中的数据测试第一个函数,而无需手动执行。从文件python script.py
获取输入。您甚至可以将结果保存在文件python script.pyresult.text
中,这样您就可以将此文件与具有预期结果的文件进行比较。当函数get value作为参数,而其他函数仅从用户处获取值并使用此值运行第一个函数时,这是很好的。通过这种方式,您可以使用列表、文件、sys.args或数据库中的数据测试第一个函数,而无需手动执行。