从一个函数调用变量到另一个函数(Python)



我首先要说的是,我确实查找了这个问题的答案,不幸的是,我只是无法理解它们,或者它们似乎不适合我。这当然取决于我而不是回答问题的人,所以我提前道歉。

因此,我几乎正在尝试调用用户从一个函数分配给另一个函数的变量,我将举一个例子:

def function_one():
    a = input("What is your name?")
    return a
def function_two():
    print("Nice to meet you, "a)
function_one()
function_two()

这当然是行不通的,我敢肯定这是归咎于我自己的愚蠢,起初我不确定为什么,因为我看到其他人说简单地返回变量,我做到了!

我还尝试从另一个函数调用变量,例如:

def function_two()
    a = function_one()

但我意识到这很愚蠢,因为我只是将该函数分配为 a,所以它不起作用。

我希望有一些见解,我知道这些不是你所期望的那种问题,但是是的......我一无所知。

我认为您要做的是获取用户输入,将其存储在变量中,然后使用该变量向用户打招呼:

def ask_for_users_name():
    name = input("What is your name?")
    return name
def greet_user(name):
    print("Nice to meet you, " + name)
users_name = ask_for_users_name()
greet_user(users_name)

需要注意的一件重要事情是,我必须使用 + 运算符将名称与字符串"很高兴认识你"连接起来。

编辑:

要回答评论中的问题,在这种情况下,您可以执行以下操作:

def ask_for_user_info():
    name = input("What is your name?")
    age = input("What is your age?")
    return name, age
user_name, user_age = ask_for_user_info()

最佳做法是使函数只做一件事,原因有很多,一个是函数的名称通常会替换任何需要内联注释的内容:

def ask_for_user_name():
    name = input("What is your name?")
    return name
def ask_for_user_age():
    age = input("What is your age?")
    return age

对于 ask_for_user_info(( 方法,从名称中无法立即清楚它到底在做什么。

编辑 2:

然后,您可以按以下任一顺序使用这两个函数:

age = ask_for_user_age()
name = ask_for_user_name()

name = ask_for_user_name()

age = ask_for_user_name()

你确实有它。 这应该有效。

def function_two():
    a = function_one()
    print('hi {}'.format(a))

然后

>>>function_two()

另一种方法是使用它:

 def ask_for_users_name():
      name = input("What is your name?")
      greet_user(name)
 def greet_user(user_name):
     print("Nice to meet you,"+user_name)
 ask_for_users_name()

您只需在最后调用 ask_for_users_name((。

编辑:

greet_user_(( 是一个 void 函数,这意味着它不返回任何内容。在这种情况下,它所做的只是接收传递给它的输入并打印它。如果要执行其他操作,可以向其传递其他参数,或保持原样。

版本1:

 def ask_for_users_name():
     name = input("What is your name?")
     age = int(input("What is your age? "))
     print("Your age is ", age)
     greet_user(name)
 def greet_user(user_name):
     print("Nice to meet you,"+user_name)
 ask_for_users_name()

在版本 1 中,我们仍然使用 greet_user(( 只打印一个东西,并在 ask_for_users_name(( 中执行另一个打印操作。

版本2:

def ask_for_users_name():
     name = input("What is your name?")
     age = int(input("What is your age? "))
     greet_user(name, age)
def greet_user(user_name, user_age):
     print("Nice to meet you,"+user_name)
     print("Your age is", user_age)
ask_for_users_name()

在版本 2 中,我们将 age 和 name 传递给 greet_user((,这反过来又打印出传递的变量。我希望这有所帮助。

最新更新