Python中缺少必需的位置参数

2024-09-27 22:22:31 发布

您现在位置:Python中文网/ 问答频道 /正文

下面是我在代码中尝试做的一个例子。。。

def func():
x = int (input ('enter x: '))
return x

def func2():
y = int (input( 'enter y: '))
return y

def func3(x,y):
print(randomint(x,y))

def main():
func()
func2()
func3()

main()

我想知道的是,为什么我不能使用x和y变量,这些变量是我通过输入定义并在函数结束时返回的?当这个程序试图运行时,它会说函数缺少必需的参数。我知道,我对Python还不熟悉。

此外,我如何在创建的一个函数中使用在另一个单独函数中定义的变量?谢谢!


Tags: 函数代码inputreturn定义maindef例子
2条回答

您的变量只存在于函数中,func3无法获取x和y,但是您已经将x和y定义为参数。到目前为止你只是没有把它们传进去。以下应该可以。

def func():
    x = int (input ('enter x: '))
    return x

def func2():
    y = int (input( 'enter y: '))
    return y

def func3(x,y):
    print(randomint(x,y))

def main():
    x_val = func()
    y_val = func2()
    func3(x_val, y_val)

main()

你说你知道如何缩进,所以我不打算讨论这个问题,现在的问题是你需要在被捕获后捕获来自funcfunc2的返回值。

你可以这样做:

def func():
    x = int (input ('enter x: '))
    return x

def func2():
    y = int (input( 'enter y: '))
    return y

def func3(x,y): # there's two positional value so you will need to pass two values to it when calling
    print(randomint(x,y))

def main():
    x = func() # catch the x
    y = func2() # catch the y
    func3(x,y) # pass along x and y which acts as the two positional values
    # if you're lazy, you can directly do:
    # func3(func(), func2()) which passes the return values directly to func3

main()

另一种方法是使用global语句,但这不是适合您的情况的最佳方法。

只是一个提示:如果您使用的是random模块,则random整数由以下调用:random.randint(x,y)

相关问题 更多 >

    热门问题