代码可能是错误的我只是用它来说明我的观点(但随意指出任何错误)我需要知道如何调用我定义为用户定义函数中的输入的变量。目前我的错误是"全球名称'名称'未定义"
import time
def createIdentity():
print ("Please Enter your details below")
time.sleep(1)
name = input("What is your name?")
time.sleep(1)
age = input("How old are you?")
time.sleep(1)
gender = input("Are you male or female?")
def recallIdentity():
print("Your name is " + str(name) + "you are " + str(age) + "And you are a " + str(gender) + "!")
createIdentity()
recallIdentity()
答案 0 :(得分:0)
您需要返回createIdentity中输入的值,然后将返回的值传递给recallIdentity。在一个函数中定义的变量名称不与在不同函数中具有相同名称的变量相同的变量。
我会用字典来做,因此:
import time
def createIdentity():
user = dict()
print ("Please Enter your details below")
time.sleep(1)
user['name'] = input("What is your name?")
time.sleep(1)
user['age'] = input("How old are you?")
time.sleep(1)
user['gender'] = input("Are you male or female?")
return user
def recallIdentity(user_out):
print("Your name is " + user_out['name'] + "you are " + user_out['age'] + "And you are a " + user_out['gender'] + "!")
user_dict = createIdentity()
recallIdentity(user_dict)
答案 1 :(得分:0)
默认情况下,函数完全是自包含的。您必须计算变量,或者将它们作为参数传递,或者从其他函数返回它们(另一种形式的计算)。
但是,有全局变量之类的东西。使用全局变量,您可以在一个函数中设置它们,在另一个函数中访问它们,并且值将会延续。
在python中,你必须告诉python变量在每个函数中是全局的,你将它用作全局函数。
例如:
def f():
x = 1 # NOT global
def g():
global x
x = 1 # Global x.
def h():
print("X is %d" % x) # NOT a global x
def i():
global x
print("X is %d" % x) # Global x.
在您的示例中,我相信您需要全局行为 - g()和i()函数。