如何用变量填充input()函数



假设我有下面的函数,它要求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应遵循以下算法。

  1. 启动赋予它的函数(在这种情况下,它是sum函数(
  2. sum函数要求输入用户的第一个值时,请在其中填充var1的值,然后以某种方式继续
  3. 同样,当它要求输入另一个数字时,在其中输入var2的值,然后继续
  4. 执行给定函数(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()

请注意,我已经包含了一些简单的错误处理,以防止不必要的输入。您需要对此进行扩展,以确保正确处理所有用户输入。

最新更新