假设我有下面的函数,它要求2个数字并将它们相加。
def sum():
a = int(input('Enter the first number: '))
b = int(input('Enter the second number: '))
return a + b
我还有两个变量:
first_number = 2
second_number = 4
考虑到我不能复制粘贴变量的值或更改函数和变量,我想将这些变量的值填充到sum
函数中。因此,我试图通过创建一个类似input_values
的函数来实现这一点,该函数可以将函数和变量作为参数,并在输入变量值后返回输入函数的输出作为参数。或者甚至有可能。请帮忙。结果函数应该定义如下:
def input_values(func,var1, var2):
#The computation should be held here.
应该这样称呼:
input_values(func=sum(), var1=first_number,var2=second_number)
再次指定,input_values
应遵循以下算法。
- 启动赋予它的函数(在这种情况下,它是
sum
函数( - 当
sum
函数要求输入用户的第一个值时,请在其中填充var1
的值,然后以某种方式继续 - 同样,当它要求输入另一个数字时,在其中输入
var2
的值,然后继续 - 执行给定函数(
sum
(时,返回其值
您可以尝试以下操作:引用
安装:
pip install pexpect
然后简单地尝试这个片段
import pexpect
first_number = 2
second_number = 4
child = pexpect.spawn('your_script.py')
child.expect('Enter the first number:.*')
child.sendline(first_number)
child.expect('Enter the second number:.*')
child.sendline(second_number)
确保调用源代码中的函数
first_number = 2
second_number = 4
def sum():
a = int(input('Enter the first number: '))
b = int(input('Enter the second number: '))
return a + b
sum()
如果我误解了你的问题,我很抱歉,但这是你想要实现的吗?
def input_values():
try:
a = int(input('Enter the first number: '))
b = int(input('Enter the second number: '))
except(ValueError) as e:
print(f'{str(e)}. Please only input integers.')
input_values()
return sum_numbers(a, b)
def sum_numbers(a, b):
try:
print(f'The sum of your two numbers is: {a + b}')
except(ArithmeticError) as e:
print(f'{str(e)}.')
if __name__ == "__main__":
input_values()
请注意,我已经包含了一些简单的错误处理,以防止不必要的输入。您需要对此进行扩展,以确保正确处理所有用户输入。