将来自不同函数的两个变量传递给新函数

时间:2018-10-21 15:56:32

标签: python python-3.x

我一直在寻找可以帮助我解决问题的解决方案,但是找不到我能理解的任何简单或基本技术。如果您认为有任何有用的网站或帖子可以为我指明正确的方向,请发布它们。

我已经完成了两个功能相同但用途不同的功能,例如登录系统-每个用户一个功能。 在每个函数中,都有一个我想“传递”到新函数的变量(该变量与其他函数完全不同)。

我尝试使用return和global函数,但是它们不起作用,我认为我没有正确使用它们。下面是我的情况的一个简单示例:

def pizza():
   topping = input("fav topping: ")
def pizza1():
   topping1 = input("fav topping: ")
def something(topping,topping1):
   print("user1's fav topping is",topping)
   print("user1's fav topping is",topping1)
pizza()
pizza1()
something()

我希望“ topping”和“ topping1”进入“某物”功能。 这段代码不是我真正的编码情况,而是一个简单的版本,因此必须使用函数并传递这些变量

谢谢

3 个答案:

答案 0 :(得分:1)

您需要做的就是让您的函数返回一个值。然后使用从它返回的值来调用新函数。

def pizza():
   topping = input("fav topping: ")
   return topping

def pizza1():
   topping1 = input("fav topping: ")
   return topping1

def something(topping, topping1):
   print("user1's fav topping is",topping)
   print("user1's fav topping is",topping1)

val = pizza()
val1 = pizza1()
something(val, val1)

如果您想让pizza函数调用pizza1,然后让pizza1调用something,则只需将代码重构为:

def pizza():
   topping = input("fav topping: ")
   pizza1(topping)

def pizza1(prev_topping):
   topping = input("fav topping: ")
   something(prev_topping, topping)

def something(topping, topping1):
   print("user1's fav topping is",topping)
   print("user1's fav topping is",topping1)

pizza()

答案 1 :(得分:1)

您的函数不返回任何东西。如果您的目的是在函数返回时分配变量:

def pizza():
    return input("fav topping: ")
def pizza1():
    return input("fav topping: ")
def something(topping1,topping2):
    print("user1's fav topping is",topping)
    print("user1's fav topping is",topping1)

topping1 = pizza()
topping2 = pizza1()
something(topping1,topping2)

在函数中声明变量时,它仅位于局部空间中,而在全局空间中不可调用。下面的示例显示了将其声明为全局变量时发生的情况。

def pizza():
    global topping
    topping = input("fav topping: ")
def pizza1():
    global topping1
    topping1 = input("fav topping: ")
def something():
    print("user1's fav topping is",topping)
    print("user1's fav topping is",topping1)
pizza()
pizza1()
something()

>> fav topping: 1
fav topping: 2
user1's fav topping is 1
user1's fav topping is 2

一旦您将其声明为global,即使您未在函数中传递它们,函数something中的局部空间也可以将它们用作全局变量。 / p>

答案 2 :(得分:0)

要做的第一件事是:给静态变量命名

x = [0, 2, 2, 2, 0, 3, 3]
y = [1, 1, 1.5, 1, 1, 1.5, 1]
z = [0, 0, 2, 0, 0, 3, 0]

然后,当您调用该函数时,必须在()中写入要打印的变量。

static topping
static topping1

在最后一行代码中,您对程序说要打印变量a和b。