繁体   English   中英

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

[英]Calling a variable from one function to the other (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)

需要注意的重要一件事是,我必须使用+运算符将名称与字符串“ Nice to Meet you”相结合。

编辑:

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM