0
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()

私はpythonをいじっていて、簡単な電卓プログラムを作ろうとしています。入力値を uInput モジュールから calc モジュールに渡そうとしています。必要な2つの位置引数が欠落していると言い続けています。モジュールから別のモジュールに変数を 1 つだけ渡すことはできますか?

4

4 に答える 4

6

関数は最初に見つかった return ステートメントで終了するため、return value2到達することはありません。複数の値を返すには、次を使用しますtuple

return value1, value2     #returns a tuple

からの戻り値uInput()を 内の変数に割り当てmainます。

val1, val2 = uInput()  #Assign using sequence unpacking 

これらの変数を に渡しますcalc:

calc(val1, val2)       

修正版:

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()
于 2013-11-13T19:32:35.700 に答える
1

どの関数からでも一度に 2 つのものを返すことができますが、使用できる return ステートメントは 1 つだけです。これを使用すると、メイン関数で使用できるreturn x, ytuple が返されます。(x, y)

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

def main():
    val1, val2 = uInput() # unpack the tuple values into two variables
    calc(val1, val2)
于 2013-11-13T19:31:34.613 に答える