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

时间:2017-03-29 19:04:02

标签: 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,所以它不起作用。

我很欣赏一些见解,我知道这些不是你期望的问题,但是......我很无能为力。

3 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:0)

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

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

然后

>>>function_two()

答案 2 :(得分:0)

另一种方法是使用它:

 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(),后者又打印出传递的变量。我希望这会有所帮助。