我已经尝试过搜索并尝试人们为他人制作的建议,但它不适合我,这是我的代码:
def CreateAccount():
FirstName = input('What is your first name?: ')
SecondName = input('What is your second name?: ')
Age = input('How old are you?: ')
AreaLive = input("What area do you live in?: ")
return FirstName, SecondName, Age, AreaLive
def DisplayAccountInfo(FirstName,SecondName,Age,AreaLive):
print("Your Firstname is",FirstName)
print("Your Secondname is",SecondName)
print("You are",Age," years old")
print("You live in the",AreaLive," area")
return
def ConfirmAccountF():
ConfirmAccount = input("Do you have an account? y,n; ")
if ConfirmAccount == "n":
CreateAccount()
else: #ConfirmAccount -- 'y'
DisplayAccountInfo()
while True:
ConfirmAccountF()
所以它现在应该无限期地运行,但我想要它做的是传递来自' CreateAccount'进入' DisplayAccountInfo'。
当我按 n 以外的任何内容时,按“确认帐户”'我知道变量是未定义的。
如果我在' DisplayAccountInfo()'中手动设置它然后它不会抛出任何错误。
这只是我在搞乱和试图理解python,如果有人可以提供帮助那就太棒了。
答案 0 :(得分:0)
DisplayAccountInfo(*CreateAccount())
这样做会获取CreateAccount
返回的四个字符串的元组,并将它们转换为四个参数,作为单独的参数传递给DisplayAccountInfo
。如果您省略了*
运算符并且只调用了DisplayAccountInfo(CreateAccount())
,那么会将单个元组参数传递给DisplayAccountInfo
,从而导致TypeError
异常(因为DisplayAccountInfo
期待四个论点,而不是一个。
当然,如果您还需要保存从CreateAccount
返回的字符串以供日后使用,则需要在调用CreateAccount
和DisplayAccountInfo
之间执行此操作。
答案 1 :(得分:0)
您在CreateAccount()
上声明的变量无法从外部通过其名称加入。要将信息传递给另一个函数,您需要先存储其值:
first_name, second_name, age, area = "", "", "", ""
def ConfirmAccountF():
ConfirmAccount = input("Do you have an account? y,n; ")
if ConfirmAccount == "n":
first_name, second_name, age, area = CreateAccount()
else: #ConfirmAccount -- 'y'
DisplayAccountInfo(first_name, second_name, age, area)