Python 3,将数据从一个函数传递到另一个函数

use*_*472 0 python function python-3.x

def main():
    uInput()
    calc()
def uInput():
    value1 = int(input('Please put in the first number'))
    value2 = int(input('Please put in your second number'))
    return value1
    return value2
def calc(value1,value2):    
    finalNumber = value1 + value2
    print (finalNumber)
main()
Run Code Online (Sandbox Code Playgroud)

我正在使用 python,并且正在尝试制作一个简单的计算器程序。我试图将输入值从 uInput 模块传递到 calc 模块。它一直说缺少两个必需的位置参数。你只能将一个变量从一个模块传递给另一个模块吗?

Ash*_*ary 6

函数在它遇到的第一个 return 语句处退出,因此return value2永远不会到达。要返回多个值,请使用 a tuple

return value1, value2     #returns a tuple
Run Code Online (Sandbox Code Playgroud)

将返回的值分配uInput()给内部的变量main

val1, val2 = uInput()  #Assign using sequence unpacking 
Run Code Online (Sandbox Code Playgroud)

将这些变量传递给calc

calc(val1, val2)       
Run Code Online (Sandbox Code Playgroud)

修正版:

def main():
    val1, val2 = uInput()
    calc(val1, val2)

def uInput():
    value1 = int(input('Please put in the first number'))
    value2 = int(input('Please put in your second number'))
    return value1, value2

def calc(value1,value2):    
    finalNumber = value1 + value2
    print (finalNumber)
main()
Run Code Online (Sandbox Code Playgroud)